私は、次のエラーを取得しています:01735. 00000 - "無効なALTER TABLEオプション"
- 00000 - "missing right parenthesis"
私は私の手順を実行したとき:
CREATE OR REPLACE PROCEDURE ALTER_TABLE_COLUMN_NOT_NULL(
var_tabname IN VARCHAR2,
var_clname IN VARCHAR2,
var_defvalue IN VARCHAR2)
IS
l_isnull VARCHAR2(1);
BEGIN
SELECT isnull INTO l_isnull FROM USER_TAB_COLUMNS
WHERE TABLE_NAME = var_tabname AND COLUMN_NAME = var_clname;
IF l_isnull = 'Y' THEN
EXECUTE IMMEDIATE 'ALTER TABLE ' || var_tabname ||
' MODIFY COLUMN (' || var_clname ||
' DEFAULT ' || var_defvalue || ' NOT NULL)';
END IF;
END;
私はエラーに応じていることを知っている、右をカッコがありません。私はそれを書き直す方法はたくさんありましたが、それを修正することはできません。
私は次のように私の手順を実行しています:コンパイルエラーは、実行時エラーになるため、動的SQLを書く
BEGIN
ALTER_TABLE_COLUMN_NOT_NULL('FIRSTNAME', 'PRICE', '-');
END;
書か 'var_tabname'、の値を行いますことを確認するためにクエリを印刷' var_clname'または 'var_defvalue'は、彼らはいけないものが含まれていますか? – JonK
私は私の質問を編集しました、多分私は間違った方法で手続きを呼び出していますか? – NoName123
あなたのコードが 'MODIFY_COLUMN_NOT_NULL'という名前のプロシージャを呼び出そうとしているときに、なぜあなたは' ALTER_TABLE_COLUMN_NOT_NULL'という名前のプロシージャを表示しますか? – Andreas