使用java中的值执行匿名pl / sql块文件

时间:2014-03-18 09:17:21

标签: java sql oracle plsql

我在sql文件中有一个匿名的pl / sql块,我想在Java中执行并为其赋值。我的sql块看起来像这样

    DECLARE

            someInput1 NUMBER(1);

            someInput2 NUMBER(2);

            someString1 VARCHAR(100);

    BEGIN

            someInput1 := ‘&1’;

            someInput2 := ‘&2’;

            --get name in table A

            BEGIN

                    SELECT a.value INTO someString1

                    FROM TABLE_A a

                    WHERE a.id = someInput1;               

            END;



            UPDATE TABLE_B b

            SET b.someStringRow = someString1

            WHERE b.someIntRow = someInput2;

            COMMIT;

    END;

    /

    exit;

我打算做的是将sql文件加载到Java String中,将'& 1'更改为?1并将其作为CallableStatement执行。但是,我正在

    PLS-00103: Encountered the symbol “” when expecting one of the following
    begin function package pragma procedure subtype us <an identifier> <a double quoted delimited identifier> form current cursor

DECLARE部分中的行发生错误

我的方法是否是可接受的解决方案,如果是,我的方法可能出错?

我的问题还有其他更好的解决方案吗?感谢

1 个答案:

答案 0 :(得分:-1)

您必须删除引号,并将&1替换为:1,您应该没问题,同样,您需要删除'/'exit;并且它们相关联到sqlplus而不是直接pl/sql