一句话太少
分类: DB2/Informix
2007-06-21 10:02:26
2、INFORMIX Client-SDK setNet32 客户端联接设置
执行cd $INFORMIXDIR/etc
vi sqlhosts打开 sqlhosts 文件 参照其内容设置 informix setnet32 信息。必要时可以通过打开 /etc/services 文件查看端口。
导出、导入表数据命令为unload、load。命令执行环境在 dbaccess 的数据库操作环境下。导出命令格式:unload to filename.unl select * from T_table导出表T_table 中数据到 filename.unl 文件。导入命令格式load from filename.unl insert into T_table导入文件 filename.unl 的内容到 T_table 表中。导入大表时建议用dbload
5、INFORMIX中怎么从现有的数据库生成建库脚本dbschema -d dbname -t tabname -ss不用-ss的话,只能看到表的列的信息,至于表的一些存储信息就看不到了,如表是放在那个dbs上,extend size,next size,lock mode 等等
用dbschema工具导出Informix数据库的结构
(1)导出数据库中所有的表结构到文件db.sql
$>dbschema -d your_database -t all db.sql
(2)导出数据库中所有的存储过程到文件db.sql
$>dbschema -d your_database -f all db.sql
(3)导出数据库中的所有对象(包含表,存储过程,触发器。。。)到文件db.sql
$>dbschema -d your_database db.sql
(4)导出数据库中一个表的结构到文件db.sql
$>dbschema -d your_database_name -t your_table_name db.sql
(5)导出一个存储过程定义到文件db.sql
$>dbschema -d your_database_name -f your_procedure_name db.sql
(6)如果导出更多的表的信息(EXTENT...)
$>dbschema -d your_database_name -ss db.sql
(7)导出数据库中对用户或角色的授权信息
$>dbschema -d your_database_name -p all
$>dbschema -d your_database_name -r all
(8)导出数据库中的同义词
$>dbschema -d your_database_name -s all
缺省情况下,字符串常量必须写在一行里面。也就是说,不能在引用字符串中加入换行符。然而,可以用下面两种方法覆盖缺省情况:要在所有会话的引用字符串中允许使用换行符,要把 ONCONFIG 文件中的 ALLOW_NEWLINE 参数设成 1。
要在当前会话的引用字符串中允许使用换行符,可以执行内置函数 IFX_ALLOW_NEWLINE。
这就对当前会话启用了带引号字符串中的换行符:EXECUTE PROCEDURE IFX_ALLOW_NEWLINE('T')
如果输入 't' 作为这个函数的参数,在会话中允许引用字符串包含换行符。如果输入 'f' 作为这个函数的参数,在会话中不允许引用字符串包含换行符。如果没有对会话启用带引号字符串中的换行符,则以下语句无效并返回错误:SELECT 'The quick brown fox
jumped over the old gray fence'
FROM customer
WHERE customer_num = 101
然而,如果允许在会话的引用字符串中使用换行符,那么前面例子中的语句就是合法的并且能成功执行。例子:create table xx (
a char(20)
);Table created.insert into xx values ('a
b');282: Found a quote for which there is no matching quote.
Error in line 1
Near character position 24execute procedure ifx_allow_newline('t');Routine executed.insert into xx values ('a
b');1 row(s) inserted.select * from xx;
aa
b1 row(s) retrieved.update xx set a = 'xx'
where a = 'a
b';1 row(s) updated.select * from xx;
axx1 row(s) retrieved.
QUOTE:Script command is started on Wed Nov 21 13:53:56 BEIST 2007.
/tmp>cat | dbaccess xdbtest
Database selected.
select * from xyz;
x
aa
bb
xyz
x
y
4 row(s) retrieved.
select * from xyz where x matches '*
*';
282: Found a quote for which there is no matching quote.
Error in line 1
Near character position 35
------ pay attention to this setting !!!!
execute procedure ifx_allow_newline('t');
Routine executed.
select * from xyz where x matches '*
*';
x
aa
bb
x
y
3 row(s) retrieved.
select * from xyz where x not matches '*
*';
x
xyz
1 row(s) retrieved.
select * from xyz where x like '%
%';
x
aa
bb
x
y
3 row(s) retrieved.
select * from xyz where x not like '%
%';
x
xyz
1 row(s) retrieved.
select count(*) from xyz where x matches '*
*';
(count(*))
3
1 row(s) retrieved.
select count(*) from xyz where x not like '%
%';
(count(*))
1
1 row(s) retrieved.
select count(*) from xyz;
(count(*))
4
1 row(s) retrieved.
select first 1 dbinfo ('version', 'full') from systables;
(constant)
Informix Dynamic Server Version 9.30.F
1 row(s) retrieved.
!uname -a
AIX p6701l1 2 5 0032EC4C4C00
!onstat -
Informix Dynamic Server Version 9.30.FC3 -- On-Line -- Up 17 days 09:38:33 -- 246544 Kbytes
^D
Database closed.
/tmp>
Script command is complete on Wed Nov 21 14:03:57 BEIST 2007.7、修改数据库名称databasedbaccess 环境执行rename database dbname to dbname1注意不要打开dbname执行时可以用cat |dbaccess8、锁表begin worklock tablein exclusive mode; 9、区分表中相同记录方法任何表都有一个Rowid字段,可以用select Rowid,* from TableName ;通过Rowid区分相同记录。
10、修改锁方式
1. 用命令: oncheck –pt database:tablename 查看目标表的锁方式;
2. 如果确定用alter table tablename lock mode (row) 来转换为行锁;