Re : SQL - impossible d'insérer plusieurs commandes dans une instruction préparéeCher Ron, je n'ai pas fait ça jusqu'à présent, mais ici vous demandez une nouvelle requête sql pour deux tables, je suppose, il ne peut pas gérer cela. As-tu essayé d'exécuter sql à la place ?
Une autre possibilité serait l'union entre les deux requêtes pour n'en avoir qu'une seule. Mais cela nécessite exactement les mêmes colonnes dans le même ordre.
Re : SQL - impossible d'insérer plusieurs commandes dans une instruction préparéej'obtiens la même erreur si je l'essaye en utilisant le script suivant:
// 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" );
le problème peut être similaire à cette discussion:
https://community.jmp.com/t5/Discussions/SQL-query-to-ODBC-datasource-SQL-server-with-temporary-tables/td-p/457582
mais la solution n'est pas exactement applicable au redshift.
Re : SQL - impossible d'insérer plusieurs commandes dans une instruction préparéeGénéralement, vous ne pouvez pas exécuter deux instructions SQL avec un seul appel à EXECUTE SQL.Les deux déclarations sont les mêmes; peut-être montriez-vous juste un exemple?
Pourquoi essayez-vous d'exécuter deux instructions SQL à la fois ?EXECUTE SQL renvoie un ensemble de données pour chaque instruction SQL.
Pourquoi ne pas simplement exécuter deux commandes EXECUTE SQL ?
Re : SQL - impossible d'insérer plusieurs commandes dans une instruction préparéetu as raison @pmroz , c'était juste un exemple de deux déclarations.
parfois j'ai besoin de deux instructions pour créer un sous-échantillon (table temporaire) ou définir une fonction.
dans la plupart des cas, je parviens à utiliser l'instruction "With" au lieu d'une table temporaire, mais pas toujours. en particulier lorsque l'utilisation des instructions "With" nécessite des sous-requêtes très complexes qui ne sont pas autorisées. .
Re : SQL - impossible d'insérer plusieurs commandes dans une instruction préparéeCette approche pourrait aider :
Appelez une procédure PL/SQL qui effectue la requête super complexe et crée une table temporaire.
Sélectionnez ensuite * dans la table temporaire.
Voici un code qui fait quelque chose comme ça :
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 - impossible d'insérer plusieurs commandes dans une instruction préparéemerci beaucoup @pmroz
diviser les deux instructions en instructions Execute SQL distinctes fonctionne parfaitement.
SQL - impossible d'insérer plusieurs commandes dans une instruction préparéechers membres du forum,
lors de l'utilisation de jmp pour interroger amazon redshift, j'ai besoin d'envoyer deux instructions ensemble, mais pour une raison quelconque, j'obtiens une erreur indiquant:
malheureusement, ma requête est très élaborée et ne fonctionne pas avec une simple instruction "Où" pour chaque table séparée.
si quelqu'un a une idée de la façon de résoudre ce problème, ce serait utile.
Merci

Modélisation statistique avancéeÉtudes de consommation et de marchéAccès aux donnéesConception d'expériencesPersonnalisation de masse