以下(高度人为和简化的)示例在 SQLDeveloper 中运行良好,但在通过 OCI 运行时会导致 ORA-01008 错误。
declare
CURRENT_LINE_ID NUMBER := 120;
TARGETVAR NUMBER;
begin
SELECT 1 INTO TARGETVAR FROM DUAL WHERE 120 = :CURRENT_LINE_ID;
end;
有什么方法可以重组它,以便在 OCI 中满足绑定变量?
我尝试了一些替换变量(再次在 SQL Developer 中工作),但 DEFINE 在 OCI 中似乎完全无效。
DEFINE MYSUBST = 120;
DECLARE
TARGETVAR NUMBER;
BEGIN
SELECT 1 INTO TARGETVAR FROM DUAL WHERE 120 = &MYSUBST;
END;