Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在JDBC中执行没有参数的存储过程?_Java_Jdbc - Fatal编程技术网

Java 如何在JDBC中执行没有参数的存储过程?

Java 如何在JDBC中执行没有参数的存储过程?,java,jdbc,Java,Jdbc,我正在尝试执行一个没有输入变量的存储过程,例如: String sql2 = "{call vivek}" ; System.out.println(sql2); System.out.println("Executing procedure without parameters"); stmt = conn.createStatement(); stmt.executeQuery(sql2); 但这是一个错误: syntax error at or near "{" Posi

我正在尝试执行一个没有输入变量的存储过程,例如:

 String  sql2 = "{call vivek}" ;
 System.out.println(sql2);
 System.out.println("Executing procedure without parameters");
 stmt = conn.createStatement();
 stmt.executeQuery(sql2);
但这是一个错误:

syntax error at or near "{"
  Position: 1
我正试图用谷歌搜索它,但什么也找不到。我该怎么做?顺便说一句,它不适用于callablestatement也未测试:

CallableStatement cs = null;
cs = conn.prepareCall("{call vivek}");
cs.executeQuery();

谢谢大家的帮助,但下面的代码对我有用:

sql2 += "{exec "+ proc_name2 +"}" ;
cstmt = conn.prepareCall(sql2);
cstmt.executeUpdate();

顺便说一下,这里cstmt是CallableStatement对象。我使用的是Postgresql数据库,因此上面的代码对我有效

找不到存储过程?我将解释当你得到这个错误时它意味着什么。假设我们的代码是这样的:

String sp="{call GetUnitReferenceMap}";
stmt=conn.prepareCall(sp);
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
currencyMap.put(rs.getString(1).trim(), rs.getString(2).trim());
我有4个数据库(sample1、sample2、sample3),但是
stmt
将搜索位置
master
(默认数据库),然后我们将得到一个异常

我们应该提供DB名称,然后问题将得到解决::

String sp="{call sample1..GetUnitReferenceMap}";

这类似于调用没有参数的函数

CallableStatement cat = null;
con = YourConnectionClass.getConnection();
cst = con.prepareCall("{call YOUR_PROCEDURE_NAME()}");
cst.executeQuery();

好吧,你需要让它发挥作用,威尔·凯勒声明。显示您当时使用的代码。