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