PL/SQL 내에서 테이블을 만들려고합니다PL/SQL 내에서 테이블 만들기?
어떻게 구현할 수 있습니까?
킵 점점
오류 보고서 :
ORA-00933 : 여기
내가
DECLARE
station_id_ms1 NUMBER :=10347;
realtime_start DATE :=to_date('2012-01-01 00:00:00','YYYY-DD-MM HH24:MI:SS');
realtime_end DATE :=to_date('2012-07-01 00:00:00','YYYY-DD-MM HH24:MI:SS');
BEGIN
EXECUTE IMMEDIATE ('
CREATE TABLE new_table_name
AS
SELECT
((realtime - to_date(''01-JAN-1970'',''DD-MON-YYYY'')) * (86400)) AS realtime_ms1,
magnetic_ms_id,
ADC_value_pp_2_mgntc_fld_amp(ch2_value,ch2_gain_value,magnetic_ms_id,2) AS B_x_ms1,
ADC_value_pp_2_mgntc_fld_amp(ch1_value,ch1_gain_value,magnetic_ms_id,1) AS B_y_ms1,
real_nanosecs2*4/3*360/20e6 AS phase_x_ms1,
real_nanosecs1*4/3*360/20e6 AS phase_y_ms1
FROM
raw_mag
WHERE
magnetic_ms_id = '||station_id_ms1||'
AND realtime > '||realtime_start||'
AND realtime < '||realtime_end||'
AND ch1_tune_value = 0
AND realtime < pkg_timezone.change_timezone(gettime,''CET'',''UTC'')
');
END;
에 오류가있는 코드는 "SQL 명령이 제대로 종료되지"
왜 '실행 즉시'입니까? 그냥 테이블을 만듭니다. – vulkanino
@vulkanino : EXECUTE IMMEDIATE없이 PL/SQL 내부에서 DDL 문을 실행할 수 없기 때문에. – Benoit
@Benoit - 그냥 질문을 구걸. 왜 PL/SQL인가? 왜 테이블을 만드는 것이 아닌가? 그것이 합법적 인 시나리오가 있지만이 접근법이 잘못되었거나 틀린 경우가 많습니다. – APC