Re: SQL - 준비된 명령문에 여러 명령을 삽입할 수 없습니다.친애하는 Ron, 지금까지는 이 작업을 수행하지 않았지만 여기서 두 테이블에 대한 새 SQL 쿼리를 요청하고 있습니다. 제 생각에는 처리할 수 없습니다. 대신 SQL을 실행해 보셨습니까?
다른 가능성은 두 쿼리 사이에 하나의 쿼리만 결합하는 것입니다. 그러나 이것은 동일한 순서로 정확히 동일한 열을 필요로 합니다.
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
그러나 거기에 있는 솔루션은 redshift에 정확히 적용할 수 없습니다.
Re: SQL - 준비된 명령문에 여러 명령을 삽입할 수 없습니다.일반적으로 EXECUTE SQL에 대한 한 번의 호출로 두 개의 SQL 문을 실행할 수 없습니다.두 진술은 동일합니다. 아마도 당신은 단지 예를 보여주고 있었습니까?
왜 한 번에 두 개의 SQL 문을 실행하려고 합니까?EXECUTE SQL은 각 SQL 문에 대한 데이터 세트를 반환합니다.
두 개의 EXECUTE SQL 명령을 실행하지 않는 이유는 무엇입니까?
Re: SQL - 준비된 명령문에 여러 명령을 삽입할 수 없습니다.당신이 맞아요 @pmroz , 그것은 두 진술의 예일뿐입니다.
때때로 하위 샘플(임시 테이블)을 만들거나 함수를 정의하기 위해 두 개의 명령문이 필요합니다.
대부분의 경우 임시 테이블 대신 "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
두 문을 별도의 SQL 실행 문으로 분할하면 완벽하게 작동합니다.
SQL - 준비된 명령문에 여러 명령을 삽입할 수 없습니다.친애하는 포럼 회원 여러분,
jmp를 사용하여 amazon redshift를 쿼리할 때 두 개의 명령문을 함께 보내야 하지만 어떤 이유로 다음과 같은 오류가 발생합니다.
불행하게도 내 쿼리는 매우 정교하며 각각의 별도 테이블에 대한 "Where" 문으로는 작동하지 않습니다.
누구든지 이 문제를 극복하는 방법을 알고 있다면 도움이 될 것입니다.
감사해요

고급 통계 모델링소비자 및 시장 조사데이터 접근실험 설계대량 맞춤화