tableName in varchar2;
v_sql varchar(1000);
--1,失败
v_sql:='select count(*) from'||tableName;
execute immediate v_sql into myRows; --找不到关键字FROM
--java运行时会提示:找不到from关键字;
--2,直接把表名book放进去就可以成功
v_sql:='select count(*) from book';
execute immediate v_sql into myRows;
是在java中调用的,1失败,2能成功。
求解。
tableName in varchar2;
tableName 已经在Java代码中传递进来了
cs = conn.prepareCall("{call pages_pro(?,?,?,?,?,?)}");
cs.setString(1,"book");
cs.setInt(2, 5);
cs.setInt(3, 1);
cs.registerOutParameter(4, oracle.jdbc.OracleTypes.INTEGER);
cs.registerOutParameter(5, oracle.jdbc.OracleTypes.INTEGER);
cs.registerOutParameter(6, oracle.jdbc.OracleTypes.CURSOR);
cs.execute();
Oracle pl/sql编程的execute immediate问题
答案:1 悬赏:80 手机版
解决时间 2021-03-15 15:25
- 提问者网友:锁深秋
- 2021-03-15 10:41
最佳答案
- 五星知识达人网友:撞了怀
- 2021-03-15 12:00
呵呵,经鉴定,1失败的原因是from 后面没有空格,你就'||拼接了表名最后执行的sql就是
'select count(*) frombook',所以会报找不到from关键字。欢迎追问。
'select count(*) frombook',所以会报找不到from关键字。欢迎追问。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯