Betreff: SQL - Es können nicht mehrere Befehle in eine vorbereitete Anweisung eingefügt werdenLieber Ron, ich habe das bisher nicht gemacht, aber hier fragen Sie eine neue SQL-Abfrage für zwei Tabellen, ich nehme an, es kann damit nicht umgehen. Haben Sie stattdessen versucht, sql auszuführen?
Eine andere Möglichkeit wäre die Vereinigung zwischen beiden Abfragen, um nur eine zu haben. Dies erfordert jedoch genau dieselben Spalten in derselben Reihenfolge.
Betreff: SQL - Es können nicht mehrere Befehle in eine vorbereitete Anweisung eingefügt werdenIch bekomme den gleichen Fehler, wenn ich es mit dem folgenden Skript versuche:
// 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" );
Das Problem könnte dieser Diskussion ähneln:
https://community.jmp.com/t5/Discussions/SQL-query-to-ODBC-datasource-SQL-server-with-temporary-tables/td-p/457582
aber die Lösung dort ist nicht genau auf die Rotverschiebung anwendbar.
Betreff: SQL - Es können nicht mehrere Befehle in eine vorbereitete Anweisung eingefügt werdenIm Allgemeinen können Sie nicht zwei SQL-Anweisungen mit einem Aufruf von EXECUTE SQL ausführen.Beide Aussagen sind gleich; Vielleicht hast du nur ein Beispiel gezeigt?
Warum versuchen Sie, zwei SQL-Anweisungen gleichzeitig auszuführen?EXECUTE SQL gibt eine Datenmenge für jede SQL-Anweisung zurück.
Warum nicht einfach zwei EXECUTE SQL-Befehle ausführen?
Betreff: SQL - Es können nicht mehrere Befehle in eine vorbereitete Anweisung eingefügt werdendu hast Recht @pmroz , es war nur ein Beispiel für zwei Aussagen.
Manchmal benötige ich zwei Anweisungen, um eine Unterstichprobe (temporäre Tabelle) zu erstellen oder eine Funktion zu definieren.
In den meisten Fällen schaffe ich es, die "With"-Anweisung anstelle einer temporären Tabelle zu verwenden, aber nicht immer. insbesondere bei Verwendung der "With"-Anweisungen sind sehr komplexe Unterabfragen erforderlich, die nicht zulässig sind. .
Betreff: SQL - Es können nicht mehrere Befehle in eine vorbereitete Anweisung eingefügt werdenDieser Ansatz könnte helfen:
Rufen Sie eine PL/SQL-Prozedur auf, die die superkomplexe Abfrage durchführt und eine temporäre Tabelle erstellt.
Wählen Sie dann * aus der temporären Tabelle aus.
Hier ist ein Code, der so etwas tut:
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");Betreff: SQL – es können nicht mehrere Befehle in die vorbereitete Anweisung eingefügt werdenVielen Dank @pmroz
Die Aufteilung der beiden Anweisungen in separate Execute SQL-Anweisungen funktioniert perfekt.
SQL – es können nicht mehrere Befehle in eine vorbereitete Anweisung eingefügt werdenLiebe Mitglieder des Forums,
Wenn ich JMP verwende, um Amazon Redshift abzufragen, muss ich zwei Anweisungen zusammen senden, aber aus irgendeinem Grund erhalte ich die Fehlermeldung:
Leider ist meine Abfrage sehr aufwändig und funktioniert nicht nur mit einer „Where“-Anweisung für jede einzelne Tabelle.
Wenn jemand eine Idee hat, wie man dieses Problem lösen kann, wäre es hilfreich.
Danke

Erweiterte statistische ModellierungVerbraucher- und MarktforschungDatenzugriffVersuchsplanungMassenanpassung