使用IBM DB2例程简化迁移的步骤
2008-09-03 16:27:48 来源:WEB开发网清单1. 过程truncate_TABLE的签名 >>--truncate_TABLE--(--schema_name--,--table_name--)--------><
VARchar(130)类型的参数schema_name指定模式,用以在其中找到表。如果模式名外加了双引号,就将其看成定界名称(混合大小写的和特殊的字符)。如果模式名为 空 ,即未指定模式,那么则要查阅CURRENT SCHEMA专用寄存器来确定所要使用的模式。VARchar(130)类型的参数table_name指定将被清除的表的未限定名称。加上显式或隐式定义的模式名就可惟一地识别出表。如果表名外加了双引号,就将其看成定界名称(混合大小写的和特殊的字符)。
如果输入参数schema_name为空,则由该过程的逻辑来确定默认模式。否则,就删除现有模式名上的双引号,或者将未加引号的模式名转换为大写体。对于表名同样如此,比如最后表名上的双引号会被删除,或者未加引号的表名会被转换为大写体。接着,我们通过查询DB2目录视图SYSCAT.TABLES来证实该表是否存在。现在就可以启动导入了。先准备好必要的参数,其中使用的文件是/dev/null(Windows上的NUL文件),因为它总是存在并且不包含任何内容,也就是可用作数据源的空文件。同样,/dev/null(Windows上的NUL文件)将用于进行导入所需的消息文件。如果成功地启动了导入,该过程就会成功返回。如果碰到错误,则与消息文本一起返回SQLSTATE以指示错误。清单2演示了过程truncate_TABLE的执行。可以在“下载”小节中找到该脚本(truncate_example.db2)的源代码。
/*createandinsertsomevaluesintothetabletab1*/
createTABLEtab1(col1INTEGERNOTNULLPRIMARYKEY,col2VARchar(15))
DB20000ITheSQLcommandcompletedsuccessfully.
insertINTOtab1VALUES(1,’somedata’),(2,NULL)
DB20000ITheSQLcommandcompletedsuccessfully.
/*verifythecurrentcontentsoftabletab1*/
select*FROMtab1
COL1COL2
--------------------------
somedata
-
record(s)selected.
/*CallthetruncatestoredprocedurefortheDB2INST1schema,andthetabletab1*/
CALLtruncate(’DB2INST1’,’tab1’)
ReturnStatus=0
/*Verifythatthetablecontentshavebeentruncated.*/
select*FROMtab1
COL1COL2
--------------------------
record(s)selected.
/*insertsomenewvaluesintothetab1table*/
insertINTOtab1VALUES(2,’somenewdata’),(3,NULL)
DB20000ITheSQLcommandcompletedsuccessfully.
select*FROMtab1
COL1COL2
--------------------------
somenewdata
-
record(s)selected.
/*CallthetruncateprocedurewithaNULLschema*/
CALLtruncate(NULL,’tab1’)
ReturnStatus=0
/*Verifythatthetablecontentshavebeentruncated.*/
select*FROMtab1
COL1COL2
--------------------------
record(s)selected.
Sybase的host_name函数
更多精彩
赞助商链接