Re: SQL - 準備済みステートメントに複数のコマンドを挿入することはできません親愛なるロン、私は今のところこれを行っていませんが、ここで 2 つのテーブルに対して新しい SQL クエリを要求しています。おそらく、それは処理できません。 代わりに sql を実行してみましたか?
他の可能性は、両方のクエリを結合して 1 つだけにすることです。 ただし、これにはまったく同じ列が同じ順序で必要です。
Re: SQL - 準備済みステートメントに複数のコマンドを挿入することはできません次のスクリプトを使用して試してみると、同じエラーが発生します。
// connect to database - open data base
DBConnection = Create Database Connection(
"ODBC:DSN=database-project;EPWD=.....;");
sql_events =
"\[
select * from "public"."logs" "t1";
select * from "public"."logs" "t1";
]\"
dt1 = execute sql ( DBConnection, eval insert ( sql_events , "¤") , "Events from logs" );
この問題は、次のディスカッションに似ている可能性があります。
https://community.jmp.com/t5/Discussions/SQL-query-to-ODBC-datasource-SQL-server-with-temporary-tables/td-p/457582
しかし、そこにある解決策は赤方偏移に正確に適用できるわけではありません。
Re: SQL - 準備済みステートメントに複数のコマンドを挿入することはできません通常、EXECUTE SQL の 1 回の呼び出しで 2 つの SQL ステートメントを実行することはできません。どちらのステートメントも同じです。おそらくあなたはただ例を示していたのですか?
一度に 2 つの SQL ステートメントを実行しようとしているのはなぜですか?EXECUTE SQL は、SQL ステートメントごとにデータセットを返します。
2 つの EXECUTE SQL コマンドを実行するだけではどうですか?
Re: SQL - 準備済みステートメントに複数のコマンドを挿入することはできませんあなたが正しいです@pmroz 、これは 2 つのステートメントの単なる例です。
サブサンプル (一時テーブル) を作成したり、関数を定義したりするために、2 つのステートメントが必要になることがあります。
ほとんどの場合、一時テーブルの代わりに「With」ステートメントを使用できますが、常にではありません。特に "With" ステートメントを使用すると、許可されていない非常に複雑なサブクエリが必要になります。 .
Re: SQL - 準備済みステートメントに複数のコマンドを挿入することはできませんこのアプローチが役立つ場合があります。
超複雑なクエリを実行する PL/SQL プロシージャを呼び出し、一時テーブルを作成します。
次に、一時テーブルから * を選択します。
そのようなことを行うコードを次に示します。
event_sql = evalinsert(
"DECLARE
l_proc_name VARCHAR2 (100) := 'Get_Reference_PTs';
l_user_SID NUMBER := SYS_CONTEXT('USERENV', 'SID');
l_user_name VARCHAR2 (30) := UPPER(SYS_CONTEXT('USERENV', 'OS_USER'));
BEGIN
INSERT INTO quality_attrib (SID, OS_USER, Completion_Time, Progress_Text)
VALUES (l_user_SID, l_user_name, SYSTIMESTAMP, 'START Get_Reference_PTs');
COMMIT;
INSERT INTO Ref_PT_List (SID, OS_USER, PT_Name)
(SELECT DISTINCT l_user_SID, l_user_name, mu.pt_name
FROM info ci,
drug cd,
reaction cr,
meddra_uta mu,
WHERE cd.case_id = ci.case_id
AND cr.case_id = ci.case_id
AND cr.reported_meddra_uta_id = mu.meddra_uta_id
AND cd.cdd_generic_id = rd.cdd_generic_id
AND ci.report_type_code_id = 8
AND rd.calendar_id = ^one_calendar_id^
AND cd.drug_character_code_id IN (31, 32)
^pt_clause^
^date_clause^
^event_type_clause^
);
COMMIT;
INSERT INTO quality_attrib (SID, OS_USER, Completion_Time, Progress_Text)
VALUES (l_user_SID, l_user_name, SYSTIMESTAMP, 'END Get_Reference_PTs');
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
log_error_message(SQLCODE, SQLERRM, l_proc_name);
END; ");
Execute SQL(dbc, event_sql);
Execute SQL(dbc, "select * from ref_pt_list");Re: SQL - プリペアドステートメントに複数のコマンドを挿入できないどうもありがとうございます@pmroz
2 つのステートメントを別々の SQL 実行ステートメントに分割すると、完璧に機能します。
SQL - 準備されたステートメントに複数のコマンドを挿入できませんフォーラムの親愛なるメンバーの皆様、
jmp を使用して Amazon Redshift にクエリを実行する場合、2 つのステートメントを一緒に送信する必要がありますが、何らかの理由で次のようなエラーが発生します。
残念ながら、私のクエリは非常に複雑で、個別のテーブルごとに「Where」ステートメントだけでは機能しません。
誰かがこの問題を克服する方法を知っているなら、それは役立つでしょう。
ありがとう

高度な統計モデリング消費者および市場調査データアクセス実験計画法マスカスタマイゼーション