插入存储过程必须返回包含所有要上载列的结果集,这些列在 CREATE PUBLICATION 语句中定义,按 CREATE TABLE 语句中声明的顺序列出。
使用下面的查询,可获得名为 T1 的表中的列创建顺序:
SELECT column.name FROM SYSTAB JOIN SYSTABCOL WHERE table_name = 't1' ORDER BY column_id |
有关如何定义插入存储过程的详细说明,请参见脚本式上载示例。
下面的示例创建一个名为 t1 的表和一个名为 p1 的发布。发布指定 WITH SCRIPTED UPLOAD 并将存储过程 t1_insert 注册为插入过程。在 t1_insert 存储过程的定义中,结果集包含所有在 CREATE PUBLICATION 语句中列出的列,并按在 CREATE TABLE 语句中声明的顺序列出。
CREATE TABLE t1( //The column ordering is taken from here pk integer primary key, c1 char( 30), c2, float, c3 double ); CREATE PROCEDURE t1_insert () RESULT( pk integer, c1 char(30), c3 double ) begin ... end CREATE PUBLICATION WITH SCRIPTED UPLOAD p1( // Order of columns here is ignored TABLE t1( c3, pk, c1 ) USING ( PROCEDURE t1_insert FOR UPLOAD INSERT ) ) |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |