1

SQL ステートメントに苦労していますが、これの正しい構文が見つかりません。

teamdeveloper 6.1でプログラミングしていて、関数を使用していますSqlPrepareAndExecute(...)

私がしようとしているのは、一連の値を挿入することです。mysql では次のようになります。

INSERT INTO supportContacts
    (type, details)
VALUES
    ('Email', 'admin@sqlfiddle.com'),
    ('Twitter', '@sqlfiddle');

SqlTalk を使用すると、これを行うことができます...

INSERT INTO SYSADM.FOOBAR VALUES(:1,:2,:3,:4,:5,:6,:7,:8,:9,:10,:11,:12,:13)
\
$datatypes CHARACTER,NUMERIC,NUMERIC,NUMERIC,NUMERIC,NUMERIC,NUMERIC,NUMERIC,NUMERIC,NUMERIC,NUMERIC,NUMERIC,NUMERIC
"01",0,0,0,0,0,0,0,0,0,0,0,0
"02",0,0,0,0,0,0,0,0,0,0,0,0
"03",0,0,0,0,0,0,0,0,0,0,0,0
"04",0,0,0,0,0,0,0,0,0,0,0,0
"05",0,0,0,0,0,0,0,0,0,0,0,0
"06",0,0,0,0,0,0,0,0,0,0,0,0
"07",0,0,0,0,0,0,0,0,0,0,0,0
"08",0,0,0,0,0,0,0,0,0,0,0,0
/

変数を入力して TD 6.1 の SqlExecute 関数で使用すると、両方のボットが機能しません。

Statement not ended properlyまたはのようなエラーが常に発生しInvalid constantます。

また、次のような値を入れようとしました:

('01',0,0,0,0,0,0,0,0,0,0,0,0),
('02',0,0,0,0,0,0,0,0,0,0,0,0),
('03',0,0,0,0,0,0,0,0,0,0,0,0), ...

エラー...

私は何を間違っていますか?

編集(私が今まで試したこと):


1を試す

これで全部


トライ2

"INSERT INTO SYSADM.FOOBAR VALUES(:1,:2,:3,:4,:5,:6,:7,:8,:9,:10,:11,:12,:13)
\
$datatypes CHARACTER,NUMERIC,NUMERIC,NUMERIC,NUMERIC,NUMERIC,NUMERIC,NUMERIC,NUMERIC,NUMERIC,NUMERIC,NUMERIC,NUMERIC
'01',0,0,0,0,0,0,0,0,0,0,0,0
'02',0,0,0,0,0,0,0,0,0,0,0,0"

言うだけSQL command not properly ended


トライ 3

のせいかもしれないと思いました\。実際にはエスケープ文字なので、次のようにエスケープしました

"INSERT INTO SYSADM.FOOBAR VALUES(:1,:2,:3,:4,:5,:6,:7,:8,:9,:10,:11,:12,:13)
\\
$datatypes....

無効な文字と表示されるようになりました


4を試す

"INSERT INTO SYSADM.FOOBAR VALUES(:1,:2,:3,:4,:5,:6,:7,:8,:9,:10,:11,:12,:13)
\
$da...
\'01\',0,0,0,0,0,0,0,0,0,0,0,0
\'02\',0,0,0,0,0,0,0,0,0,0,0,0"

こちらも失敗!:)

4

3 に答える 3

0

これは単にサンプル クエリが原因である可能性がありますが、TD でデータバインディングがどのように機能するかを知っているかどうかはわかりません。

INSERT INTO SYSADM.FOOBAR VALUES(:var1,:var2,:var3)

ここで、var1、var2、var3 は、SqlExecute/SqlPrepareAndExecute を呼び出す関数で表示される変数です。

于 2014-12-30T21:30:11.530 に答える
0

ソース データはデータベース テーブルにありますか? 次に、INSERT SELECT ステートメントを使用できます。

このような:

INSERT INTO SYSADM.FOOBAR (COL1, COL2, COL3) SELECT COL1, COL2, COL3 FROM SOURCE_DATA

編集:

または、次を使用できます。

Call SqlPrepareAndExecute( hSql, '
INSERT INTO FOOBAR VALUES(:1,:2,:3,:4,:5,:6,:7,:8,:9,:10,:11,:12,:13)
select \'01\',0,0,0,0,0,0,0,0,0,0,0,0 from dual union all
select \'02\',0,0,0,0,0,0,0,0,0,0,0,0 from dual union all
select \'03\',0,0,0,0,0,0,0,0,0,0,0,0 from dual union all
select \'04\',0,0,0,0,0,0,0,0,0,0,0,0 from dual union all
select \'05\',0,0,0,0,0,0,0,0,0,0,0,0 from dual union all
select \'06\',0,0,0,0,0,0,0,0,0,0,0,0 from dual union all
select \'07\',0,0,0,0,0,0,0,0,0,0,0,0 from dual union all
select \'08\',0,0,0,0,0,0,0,0,0,0,0,0 from dual ' )
于 2014-12-31T10:10:58.843 に答える