这两个页面的状态绑定变量必须是“合法的Oracle标识符” 我找到的文档没有具体说明点可以 是法定标识符的一部分。我能够在 中使用一个点名作为绑定变量名称,但看起来它不是 不推荐。
PAGES具有BIND变量命名约定 (这些页陈述绑定变量必须是合法的标识符):
我在这个页面上找不到任何东西,说点是合法的 标识符的一部分(E.G.表或绑定变量名称),但在数据库链接中除外。 即使$和#是合法的,他们甚至不被推荐,所以“。” 可能会工作,但显然不推荐(甚至没有提到作为合法的 此页)
绑定变量名称必须对应于项目名称。 绑定变量名称不区分大小写。 绑定变量名称不能超过30个字符(即,它们必须是有效的Oracle标识符)。
我知道,一个有效的Oracle IDENTIFER(基于ORACLE的定义一个合法的标识符 )不能以数字, 开始,可以有一些特殊字符,如$和。但是如果有 特殊字符,标识符必须用双引号。
我能得到一个标识符以点处于困境 变量的工作,但我不得不把双引号来绑定 变量时绑定变量曾在一个句点。
create or replace function F0416B
RETURN VARCHAR2
is
V_STMT VARCHAR2(1999);
V_RESULT VARCHAR2(1999);
BEGIN
V_STMT := 'INSERT INTO TEST0411(FIELD1, FIELD2) VALUES (:"A.1" , :"A.2")';
EXECUTE IMMEDIATE V_STMT USING 'AS201', 'AS202';
RETURN 'INSERT-OK';
COMMIT;
EXCEPTION
WHEN OTHERS THEN RETURN SQLERRM;
END;
这可以工作,但根据上述文件中绑定变量或其他对象的名称一段/点
是不合法的/推荐...
这是对句子Oracle架构对象命名页面是
告诉我:
不带引号的标识符可以从databa只包含字母数字字符se字符集和下划线(_),美元符号($)和井号(#)。数据库链接也可以包含句点(。)和“at”符号(@)。 Oracle强烈建议您不要在非引用标识符中使用$和#。