jdbc调用存储过程为什么语句不能加分号
发布网友
发布时间:2022-04-08 02:18
我来回答
共3个回答
热心网友
时间:2022-04-08 03:47
如果你在程序里面写sql,就不要加分号,在程序里面编译器会把分号当做sql本身的一部分,所以会报错 如果是在查询工具里面(比如plsql),这个时候可以加上分号,在工具里面分号是个分隔符,看到分号就标志着本条sql语句结束了; 当然不加也可以,在工具里面看不到分号就认为本条sql没有结束。 比如:你写了两条sql,但是没有用分号隔开,此时,工具会当做一条来执行,只不过会报错而已。
热心网友
时间:2022-04-08 05:05
jdbc中对于执行存储过程支持是通过CallableStatement接口来实现的,该接口的实现类实例来调用并执行存储过程。“public interface CallableStatementextends PreparedStatement”。Connection类提供了创建CallableStatement对象的方法以调用数据库存储过程。//CallableStatement prepareCall(String sql) throws SQLException。//注意:调用存储过的字符串参数格式为形如:"{call p_Register(?,?,?)}",1、注意大括号,2、注意使用call来调用存储过程,3、存储过程参数使用括号括起来,4、同样支持占位符"?",5、语句后没有分号。追问想问为什么没有,但是发送不是存储过程的语句就可以,就是存储过程不行呢
热心网友
时间:2022-04-08 06:40
conn.prepareCall("{call sp_get_goods_by_id(?)}");
cs.setObject(1, uid); //uid应该是BigInteger吧,字符串与bigint类型不匹配追问不是可变的,就是直接发送了一条静态的语句过去,可是不是存储过程的为什么可以加,到存储过程就不可以了
jdbc调用存储过程为什么语句不能加分号
如果你在程序里面写sql,就不要加分号,在程序里面编译器会把分号当做sql本身的一部分,所以会报错 如果是在查询工具里面(比如plsql),这个时候可以加上分号,在工具里面分号是个分隔符,看到分号就标志着本条sql语句结束了; 当然不加也可以,在工具里面看不到分号就认为本条sql没有结束。 比如...
mysql存储过程一定要加DELIMITER $啊,为什么我的一加上就报错。You hav...
不加的话, 默认是分号结束 而你的存储过程中, 一般是有分号的,从而导致编译出错.你是不是 编译一次以后, 没有恢复默认值呀?
为什么MySQL的存储过程的书写这么麻烦?DELIMITER 这种字符有什么作用...
其实就是告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了。默认情况下,delimiter是分号;。在命令行客户端中,如果有一行命令以分号结束,那么回车后,mysql将会执行该命令。如输入下面的语句 mysql> select * from test_table;然后回车,那么MySQL将立即执行该语句。但有时候,不希望MySQL这...
怎么使用存储过程
储过程的调用语句,从而极大地提高了程序的可移植性。 2.存储过程能够实现快速的执行速度 如果某一操作包含大量的Transaction-SQL 代码,,或分别被多次执行,那么存储过程要比批处理 的 执行速度快很多,因为存储过程是预编译的,在首次运行一个存储过程时,查询优化器对其进 行分析优 化,并给出最终被存在系统表...
JDBC中的Statement和PreparedStatement的区别
在同一行内,续行符后面不能加注释。续行符也不能把变量名和属性名分隔在两行中。一行有一个Visual Basic语句,不用像C语言那样,一条语句后面要加一个分号作为语句的终结符,但是也可以把两个或几个语句放在同一行,只是要用冒号把它们分开。但是,为了便于阅读,最好还是一行放一个语句。
oracle 存储过程 执行、调用不成功 求高手指导?
1)存储过程创建有语法错误,编译应该不能通过。明显的 update students set STUDENT_AGE = 10 后面少了分号(;),因此调用不成功没有什么奇怪的。2)没有出入参的存储过程执行通过exec update_students;来实现的,也可以 begin update_students;end;/ 来执行 ...
oracle SQL语句中怎么样调用存储过程?
过程 存储过程是一个PL/SQL程序块,接受零个或多个参数作为输入(INPUT)或输出(OUTPUT)、或既作输入又作输出(INOUT),与函数不同,存储过程没有返回值,存储过程不能由SQL语句直接使用,只能通过EXECUT命令或PL/SQL程序块内部调用,定义存储过程的语法如下:PROCEDURE name [(parameter[,parameter,...])...
Java遇上SPL:架构优势和开发效率,一个不放过
SQL中任何一个 SELECT 语句都会产生一个新的数据结构,在代码中可以随意添加删除字段,而不必事先定义结构(类)。Java 这类语言则不行,在代码编译阶段就要把用到的结构(类)都定义好,原则上不能在执行过程中动态产生新的结构。5 解释型语言 从前面几条的分析,我们已经可以得到结论:Java 本身并不适合用作结构化数据...
asp.net如何防止sql注入
因为preparedStatement中可以不包含数据,只包含操作,这样就不需要用数据来拼接SQL。 java如何防sql攻击? java防SQL注入,最简单的办法是杜绝SQL拼接,SQL注入攻击能得逞是因为在原有SQL语句中加入了新的逻辑,如果使用PreparedStatement来代替Statement来执行SQL语句,其后只是输入参数,SQL注入攻击手段将无效,这是因为PreparedStatem...