【发布时间】:2017-01-02 09:46:39
【问题描述】:
我是 PL/SQL Oracle 的新手。我习惯于使用 JDBC 框架和标准 SQL。
例如下一个PL/SQL:
IF EXISTS (SELECT * FROM Table1 WHERE Column1=’SomeValue’)
UPDATE Table1 SET (…) WHERE Column1=’SomeValue’
ELSE
INSERT INTO Table1 VALUES (…)
这句话必须从oracle中的存储过程中执行,所以你必须在数据库中创建一个过程并调用它,但为什么我不能像“select”语句那样将这句话发送到数据库并且没有执行必须先创建一个存储过程?
【问题讨论】:
-
您实际上并不需要 PL/SQL,您可以使用
MERGE。或者使用匿名 PL/SQL 块。不需要存储过程。 -
我知道,谢谢。我的意思是为什么我不能像选择语句一样向数据库发送 pl/sql。
-
因为您要求它执行一个不完整的 PL/SQL 块。至少,您需要将其转换为有效的匿名 PL/SQL 块:
begin <insert_pl_sql_code_here> end; -
您没有向我们展示您的实际代码,因此我们无法说明它失败的原因。
标签: java stored-procedures jdbc plsql