Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » Mobile Link - クライアント管理 » Mobile Link 用 SQL Anywhere クライアント » スクリプト化されたアップロード » スクリプト化されたアップロードのストアド・プロシージャの定義

 

挿入用ストアド・プロシージャの定義

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