我正在使用 TOAD 在我拥有的模式中创建一个包。我的包使用另一个模式的表。
该包有一个使用游标的过程。当我创建包时,出现编译错误:
正文 509 30 PL/SQL: ORA-00904: : 无效标识符
该错误指向游标的选择正在使用的表,并且该表位于其他架构中。
如果我直接在 TOAD 中运行查询,它会完美运行,我是 Oracle 新手,我不明白为什么会出现此错误。为什么我会收到此错误?
我有一个 Cursor 从脚本中获取数据:
OPEN myCursor FOR
SELECT value1 AS Value1,
myPackage.function1 (value1, :myId) AS Result1,
myPackage.function2 (value1, :myId) AS Result2,
myPackage.function3 (value1, :myId) AS Result3
FROM mySchema.myTable
WHERE tpk = :myPk
USING myId, myId, myID
Run Code Online (Sandbox Code Playgroud)
如您所见,我使用了myId变量 3 次,并且必须在 using 语句中将其传递 3 次才能使其工作。我在任何地方都找不到它,但是有没有办法只传递myId变量一次?