0

我找不到任何禁止在“更改会话”中使用绑定变量的 Oracle 文档,但它不起作用:

declare
savedecim char(2);
begin
savedecim := ',.';
EXECUTE IMMEDIATE 'DECLARE foo char(2); BEGIN foo := :1; END;' using savedecim; -- works
EXECUTE IMMEDIATE 'ALTER session SET NLS_NUMERIC_CHARACTERS = '',.'''; -- works
EXECUTE IMMEDIATE 'ALTER session SET NLS_NUMERIC_CHARACTERS = :1' using savedecim; -- ORA-00922: missing or invalid option
null;
end;
/
4

1 回答 1

2

DDL 语句中不允许绑定变量。因此错误。

根据汤姆凯特的说法,

“顺便说一句,DDL 不在共享池中,因此,绑定变量 = 不用于 DDL,因为它不可共享。”

于 2013-10-18T12:11:24.530 回答