挿入用のストアド・プロシージャは、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 |