這是我的Java代碼:
public class Data{
Connection con = null;
Record record = null;
public ResultSet getTableInfo(String tableName, String wheStr, String orderField, String orderMethod, int page, int items)
{
this.record = new Record();
ResultSet rs = null;
try
{
DbConnection1 bConnection1=new DbConnection1();
con= bConnection1.initConn1();
CallableStatement cs =getCon().prepareCall("{call gzagritemp.datamanage.getTableInfo(?,?,?,?,?,?,?,?,?)}");
cs.setString(1, tableName);
cs.setString(2, wheStr);
cs.setString(3, orderField);
cs.setString(4, orderMethod);
cs.setInt(5, page);
cs.setInt(6, items);
cs.registerOutParameter(7, 4);
cs.registerOutParameter(8, 4);
cs.registerOutParameter(9, -10);
cs.execute();
this.record.setAllItems(cs.getInt(7));
this.record.setPges(cs.getInt(8));
rs = (ResultSet)cs.getObject(9);
} catch (Exception e) {
e.printStackTrace();
}
return rs;
}
public Connection getCon()
{
return this.con;
}
}
這是例外資訊:
ORA-06550: 第 1 行, 第 7 列:
PLS-00201: 必須宣告識別符號 'GZAGRITEMP.DATAMANAGE'
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored
這是資料庫存盤程序的表格屬性:
uj5u.com熱心網友回復:
gzagritemp.datamanage.getTableInfo這個是你存盤程序的名字嗎 ?
最前面是 用戶名,中間是包名,最后是程序名 ?
uj5u.com熱心網友回復:
DATAMANAGE是個包體嗎,你JDBC連接的用戶是GZAGRITEMP嗎uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
直接呼叫呢? 是否可能沒授權,執行存盤程序的權限uj5u.com熱心網友回復:
這個怎么授權呢?uj5u.com熱心網友回復:
grant execute on GZAGRITEMP.DATAMANAGE to GZNYZY
uj5u.com熱心網友回復:
我試試 3Quj5u.com熱心網友回復:
授權可能需要管理員賬戶,不是隨便什么賬戶都有權限授權uj5u.com熱心網友回復:
先確認三者的物件型別及屬主再確認是否有對應權限
select object_type,object_name,owner from dba_objects where lower(object_name) in ('gzagritemp','datamanage','gettableinfo');
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/113615.html
標籤:開發
