对于PLSQL中的相同错误,有很多解决方案。我在PLSQL中没有遇到这个问题,但是在SQL中。这发生在一个版本的oracle中,而不是在另一个版本中。
我已经创建了一个表create table test(id number(10), empid number(10))
现在当我插入数据时
SQL> insert into test(id,empid) values (1, &empid)
2 /
SP2-0552: Bind variable "EMPID" not declared.
SQL>
数据库安装的详细信息是
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
PL/SQL Release 12.2.0.1.0 - Production
CORE 12.2.0.1.0 Production
TNS for 64-bit Windows: Version 12.2.0.1.0 - Production
NLSRTL Version 12.2.0.1.0 - Production
现在相同的查询可以正常工作,并且正在将数据插入
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
CORE 11.2.0.4.0 Production
TNS for 64-bit Windows: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production
编辑: 我没有在任何地方进行任何“定义”。它也发生在新的会话中。此12c版本先前是从11g更新的。定义节目
SQL> define
DEFINE _DATE = "06-AUG-18" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "mydbname" (CHAR)
DEFINE _USER = "myusername" (CHAR)
DEFINE _PRIVILEGE = "" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1101000600" (CHAR)
DEFINE _EDITOR = "Notepad" (CHAR)
DEFINE _O_VERSION = "Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production" (CHAR)
DEFINE _O_RELEASE = "1202000100" (CHAR)
DEFINE 1 = "to" (CHAR)
DEFINE 2 = "be" (CHAR)
DEFINE 3 = "pathToMyInstallation\product\11.1.0\client_1\sqlplus\admin\glogin.sql" (CHAR)
SQL>