oracle动态表名问题?

QAZXSW5814 2011-01-26 02:36:45
CREATE OR REPLACE PROCEDURE DONGTAITABLENAME(tablename in varchar2, cur out sys_refcursor) AS
v_sql varchar2(200);
BEGIN
v_sql:='select sal from'||tablename;
open cur for v_sql;
END DONGTAITABLENAME;
在JAVA 中调用提示
java.sql.SQLException: Invalid column index
at oracle.jdbc.driver.OracleCallableStatement.registerOutParameterInternal(OracleCallableStatement.java:124)
at oracle.jdbc.driver.OracleCallableStatement.registerOutParameter(OracleCallableStatement.java:300)
at oracle.jdbc.driver.OracleCallableStatement.registerOutParameter(OracleCallableStatement.java:389)
at oracle.jdbc.driver.OracleCallableStatementWrapper.registerOutParameter(OracleCallableStatementWrapper.java:1568)
at ArrayCopyDemo.main(ArrayCopyDemo.java:26)
这个是怎么回事呢
...全文
306 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
心中的彩虹 2011-01-26
  • 打赏
  • 举报
回复
[Quote=引用楼主 qazxsw5814 的回复:]
CREATE OR REPLACE PROCEDURE DONGTAITABLENAME(tablename in varchar2, cur out sys_refcursor) AS
v_sql varchar2(200);
BEGIN
v_sql:='select sal from'||tablename;
open cur for v_sql;
END DONGTAIT……
[/Quote]

SQLException: Invalid column index
仔细看你调用的表与检索 的列名的所属关系

v_sql:='select sal from '||tablename;


QKForex 2011-01-26
  • 打赏
  • 举报
回复
这样试试呢

CREATE OR REPLACE PROCEDURE DONGTAITABLENAME(tablename in varchar2, cur out sys_refcursor) AS
v_sql varchar2(200);
BEGIN
v_sql:='select sal from'||tablename;
open cur for replace(v_sql,'''');
END DONGTAITABLENAME;

  • 打赏
  • 举报
回复
[Quote=引用 1 楼 iihero 的回复:]
你的问题应该出在第二个参数的注册上。
要显式的使用OracleCallableStatement
stmt = c.prepareCall("{ call DONGTAITABLENAME(?,?)}");
stmt.setString(1, "whatever");
stmt.registerOutParameter(2, OracleTypes.CURSOR);
stmt.execu……
[/Quote]
你的过程写的没错的,估计就是这个可能
iihero_ 2011-01-26
  • 打赏
  • 举报
回复
你的问题应该出在第二个参数的注册上。
要显式的使用OracleCallableStatement
stmt = c.prepareCall("{ call DONGTAITABLENAME(?,?)}");
stmt.setString(1, "whatever");
stmt.registerOutParameter(2, OracleTypes.CURSOR);
stmt.execute();
then resultSet = (ResultSet)stmt.getObject(2);

17,078

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧