我在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部分中的行发生错误
我的方法是否是可接受的解决方案,如果是,我的方法可能出错?
我的问题还有其他更好的解决方案吗?感谢
答案 0 :(得分:-1)
您必须删除引号,并将&1
替换为:1
,您应该没问题,同样,您需要删除'/'
和exit;
并且它们相关联到sqlplus
而不是直接pl/sql