gpt4 book ai didi

java - 语法错误: Encountered "BEGIN"

转载 作者:行者123 更新时间:2023-12-01 10:13:39 31 4
gpt4 key购买 nike

这是我第一次在 derby 查询中创建存储过程。我正在尝试创建一个程序。当我尝试运行查询时,出现错误 Encountered "BEGIN"

代码

CREATE PROCEDURE show_name(IN USERNAME VARCHAR(50), IN PASSWORD VARCHAR(50))

BEGIN
SELECT * FROM LISTNAME
END

错误

Error code -1, SQL state 42X01: Syntax error: Encountered "BEGIN" at line 3, column 1.

如何消除这个错误?我对 Derby 战中的创建程序有点困惑。

最佳答案

正如问题评论中提到的,Apache Derby 存储过程的实现是 Java(public static)方法。请参阅 Apache Derby Wiki 文章 DerbySQLRoutines ,特别是创建过程部分,其中包含如何创建存储过程的简单示例。

以下摘录自链接的 Wiki 文章。

SQL 创建过程:

CREATE PROCEDURE DRS2(DP1 INTEGER, DP2 INTEGER)
PARAMETER STYLE JAVA
LANGUAGE JAVA
READS SQL DATA
DYNAMIC RESULT SETS 2
EXTERNAL NAME 'org.apache.derbyTesting.functionTests.util.ProcedureTest.selectRows'

作为过程实现的静态 Java 方法:

public static void selectRows(int         p1,
int p2,
ResultSet[] data1,
ResultSet[] data2)
throws SQLException
{
Connection conn = DriverManager.getConnection("jdbc:default:connection");
PreparedStatement ps1 = conn.prepareStatement("select * from t1 where i = ?");
ps1.setInt(1, p1);
data1[0] = ps1.executeQuery();

PreparedStatement ps2 = conn.prepareStatement("select * from t1 where i >= ?");
ps2.setInt(1, p2);
data2[0] = ps2.executeQuery();

conn.close();
}

请注意,try-with-resources 子句优于显示的显式 conn.close()

<小时/>

如果链接中断,我会搜索“Apache Derby 存储过程”。

关于java - 语法错误: Encountered "BEGIN",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36025987/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com