-2
私は18行でエラーPLS-00103は、次のいずれかを期待したときにシンボルが発生しました:
ERRORを削除することはできません:PLS-00103を:記号 "=" の 1を期待して発生しました次のように一定の例外 テーブルLONG_ダブルREF char型のタイムスタンプ間隔日
マイ手順NCHARバイナリ国語キャラクタ:
CREATE OR REPLACE PROCEDURE create_schedule(id IN VARCHAR2,ac1st IN ARCHAR2,ac2nd IN VARCHAR2,ac3rd IN VARCHAR2 ,sleeper IN VARCHAR2)
AS
BEGIN
DECLARE
query_str VARCHAR2(512);
ac1 VARCHAR2(10);
ac2 VARCHAR2(10);
ac3 VARCHAR2(10);
slp VARCHAR2(10);
ac1 := 'ac1st'||id;
ac2 := 'ac2nd'||id;
ac3 := 'ac3rd'||id;
slp := 'sleeper'||id;
query_str := 'alter table schedule
add(:1 number default (:2) not null ,
:3 number default (:4) not null ,
:5 number default (:6) not null ,
:7 number default (:8) not null )';
EXECUTE IMMEDIATE query_str using ac1,ac1st,ac2,ac2nd,ac3,ac3rd,slp,sleeper ;
commit;
END create_schedule ;
/
あなたは、動的DDL文のバインド変数を使用することはできません:あなたは、いくつかのミス(
ARCHAR2
パラメータ、BEGIN
の位置、不要なDECLARE
)を持っています。しかし、なぜ列をテーブルに追加しているのですか?スケジュールを追加すると、テーブル構造を変更するのではなく、新しい行が作成されるはずです。それは本当に悪いデータモデルのように見えます。 –