1. 程式人生 > >oracle儲存過程報"無效的列索引"的錯誤

oracle儲存過程報"無效的列索引"的錯誤

      因為是新手上路,所以犯的錯誤也很簡單,所以就貼一小部分相關的程式碼了.

final String sql = "{call pkg_bd_interface.sp_bd_interface(?,?,?)}";
CallableStatement call;
call = this.getSession().connection().prepareCall(sql);
call.setObject(1, jsonMap.get("list"));
call.setObject(2, jsonMap.get("clientIp"));
call.registerOutParameter(3, java.sql.Types.NUMERIC);

    在報這個錯後,檢查了儲存過程,是正常的.然後又浪費了一個多小時的時間檢查相關的檔案配置等.終於找到了錯誤.\

原來是把call.setObject(1, jsonMap.get("list"));
call.setObject(2, jsonMap.get("clientIp"))

               call.registerOutParameter(3, java.sql.Types.NUMERIC);

;的下標1,2,3寫成了0,1,2 

因為第一次用儲存過程,不太熟悉,犯了個低階錯誤,記下來.

相關推薦

oracle儲存過程"無效索引"的錯誤

      因為是新手上路,所以犯的錯誤也很簡單,所以就貼一小部分相關的程式碼了. final String sql = "{call pkg_bd_interface.sp_bd_interface(?,?,?)}";CallableStatement call;call

oracle 儲存過程 無效字元

lv_sql:='   insert into ETL_SUCESS_AMOUNT   select SEQ_OS_ETL_AMOUNTID.NEXTVAL AS AMOUNTID,1,AMOUNT_DATA,AMOUNT_HOUR,   serviceid,porta

Oracle儲存過程ORA-20000的錯誤

在輸出時,控制輸出結果的緩衝大小由DBMS_OUTPUT.ENABLE控制,buffer size預設為20000,每行最大的限制是32k,後面的一個例子是用來說明儲存過程是在快取了所有資料後才將結果返回。所以當我們使用遊標進行輸出時,如果結果很多,將會超過這個值報ORA-2

Oracle 編譯儲存過程錯: 表或檢視不存在問題分析與解決

今天遇到一個問題,自己寫了一個很簡單的儲存過程,編譯的時候,報錯: 表或檢視不存在;      但是:表確實是存在,單獨拿出來查詢,一點問題也沒有。      經過幾番查詢,找到了問題所在: 查詢表的許可權不夠; 解決方案:

Oracle儲存過程跨使用者執行查詢

在Oracle中,在USERA下編寫一個儲存過程,該儲存過程中引用了另一個使用者USERB下的表或檢視物件。編譯該儲存過程,出現編譯錯誤。報ORA-00942: table or view does not exist。 但是該表或檢視的確在USERB下存在,而且已經授予了

ORACLE 儲存過程的建立以及ORA-06502:PL/SQL:數字或值錯誤的解決方法

建立四個儲存過程,分別是簡單不帶引數的儲存過程、帶兩個輸入引數IN的儲存過程、帶一個輸入引數IN,一個輸出引數OUT的儲存過程和帶兩個輸入輸出引數IN OUT的儲存過程。 建立一張全域性臨時emp表 CREATE GLOBAL TEMPORARY TAB

Oracle 儲存過程錯誤之PLS-00201: 必須宣告識別符號

錯誤: ORA-06550: 第 1 行, 第 7 列:  PLS-00201: 必須宣告識別符號'ZUO.PROCE_TEST' ORA-06550: 第 1 行, 第 7 列: PL/SQL: Statement ignored 解決方法: (1)使用者UserName

oracle儲存過程中使用execute immediate執行sqlora-01031許可權不足的問題

--問題描述: 使用者在儲存過程中呼叫execute immediate 執行 create table語句報錯 ORA-01031, 並且反映直接執行該語句無報錯。--原因根據問題可以發現使用者確實有create table的許可權,查詢dba_role_privs 和 d

oracle-儲存過程提示ORA-01031: 許可權不足錯誤解決

方法1:就這個儲存過程來說,CREATE TABLE想使用CREATE ANY TABLE許可權,而CREATE ANY TABLE許可權來自DBA角色,預設情況下,雖然在會話環境中可見,但在儲存過程中不可見(無效)。所以根據上面的第一條規則,可以顯示地將CREATE ANY TABLE許可權授予cog就可以

oracle 無效索引

出現這個問題的原因     罪魁禍首是   ? "select * from INDEX_MOCK im where im.gmt_modify > ? and im.gmt_modify <? and  rownum <= ?  order by im

JDBC連線執行MySQL儲存過程空指標或許可權錯誤

 最近使用root使用者編寫了幾個儲存過程,但是使用普通使用者通過JDBC連線執行卻報錯: java.lang.NullPointerException...... 或 java.sql.SQLException: User does not have access to m

ORACLE儲存過程執行“ora-00942表或檢視不存在”、“ORA-01031:許可權不足”的解決方式

目錄: 一、案例 二、思索過程 三、解決方案 四、後記 正文 一、案例: 在userA使用者下書寫儲存過程如下: create or replace procedure sp_test is v_str1 varchar2(1000); begi

Oracle儲存過程的簡單舉例

一、建立測試資料 --建立測試資料: create table person(編號 number(10),姓名 varchar2(20),密碼 varchar2(20)); insert into person values(1,'xzw','888'); select * from p

Oracle儲存過程例項分析總結(程式碼)

1.儲存過程結構 1.1 第一個儲存過程 ? 1 2 3 4

java面試問題:oracle儲存過程(procedure)和函式(function)的區別

oracle儲存過程(procedure)和函式(function)的區別 儲存過程 函式 用於在資料庫中完成特定的操作或者任務(如插入、刪除等) 用於特定的資料(如選擇)

Oracle儲存過程基礎內容

1 基本語法 1.1 無參無變數 create or replace procedure firstPro as begin dbms_output.put_line('hello word, my name is stored procedure'); end;

oracle 儲存過程 例項 迴圈 給查詢賦值 遊標取值

CREATE OR REPLACE PROCEDURE p_updete_gs is     --僅供參考   i_jdid varchar(32);   i_ryid varchar(32);   cursor cur is --

C#呼叫ORACLE儲存過程返回結果集

Oracle中scott使用者下建立儲存過程: (注:從9i開始有了sys_refcursor這種型別,在以前的Oracle版本中需要使用REF CURSOR,並且還需放在一個程式包中) create or replace procedure sp_getdept (result

Oracle儲存過程學習筆記(一)

SQL是一種語言! 一、先看一部分基礎: 也可參考該文章:https://www.cnblogs.com/Singleorb/p/6217268.html; 1、語法  CREATE OR REPLACE PROCEDURE 儲存過程名字     (      引數1 IN NUMBER,