1. 程式人生 > >oracle 儲存過程 輸出結果和正常查詢不一樣

oracle 儲存過程 輸出結果和正常查詢不一樣

我的專案是一個學校的教務系統的專案,有很多人蔘與過,因此有很多前人的坑

今天儲存過程裡就一條查詢語句,帶一個返回值,輸出的結果始終和單條查詢語句正常查詢的結果不一樣

儲存過程:

CREATE OR REPLACE PROCEDURE PROC( result in out number,
   Sin varchar2,
   Gin number
  )
  as 
  begin
     select count(ST) into result from TABLE
       where  to_number(substr(CR,0,4))=G
         and substr(CR,5,3)=S;
  end;

     select count(ST) into result from TABLE
       where  to_number(substr(CR,0,4))=XXX
         and substr(CR,5,3)=XXX;

結果傳參一樣,跟進去引數也沒問題,就是結果一直不對

改了返回值的引數名等等方法;

最後發現是傳入的引數 S,G是TABLE的欄位名

所以傳不傳參都一樣,是自己欄位之間比較,根本沒有用到引數值,

最後把S,G換成不一樣的引數名就好啦~

相關推薦

oracle 儲存過程 輸出結果正常查詢一樣

我的專案是一個學校的教務系統的專案,有很多人蔘與過,因此有很多前人的坑 今天儲存過程裡就一條查詢語句,帶一個返回值,輸出的結果始終和單條查詢語句正常查詢的結果不一樣 儲存過程: CREATE OR REPLACE PROCEDURE PROC( result in out

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

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

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

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

oracle 儲存過程返回結果集 (轉載)

好久沒上來了, 難道今天工作時間稍有空閒, 研究了一下oracle儲存過程返回結果集.        配合oracle臨時表, 使用儲存過程來返回結果集的資料讀取方式可以解決海量資料表與其他表的連線問題. 在儲存過程中先根據過濾條件從海量資料表中選出符合條件的記錄並存放到臨

oracle儲存過程中isas 的使用

在儲存過程(PROCEDURE)和函式(FUNCTION)中兩者都可以使用,但是有區別:使用IS 將無法使用除錯模式除錯該儲存過程(函式) 在檢視(VIEW)中只能用AS不能用IS; 在遊標(CURSO

Oracle儲存過程書寫規範技巧

Ø        變數名全部採用小寫,區域性變數名使用“v_”開頭,輸入引數以“i_開頭,輸出引數以“o_”開頭,輸入輸出引數用io_開頭。所有輸入引數必須顯示宣告 Ø        遊標的命名:遊標統一用字尾 “_cur” 命名 Ø        使用命名的常量以避免硬編碼,使用常量包,

mybatis呼叫Oracle儲存過程返回結果

在開發中,有時需要關聯幾張表來進行一些複雜的計算,此時可採用建立一張臨時表,將每次的資料計算後先存入臨時表,然後通過Oracle的遊標返回。 在mybatis中的呼叫如下: //呼叫語法格式,需要構造一個resultMap,用來接收返回的結果集 <select id

oracle儲存過程中isas的區別

create or replace procedure imp_person_medical(v_t_table_name varchar2,v_result out varchar2) as /*

sql(join中on與where區別) / NVL函式 / oracle儲存過程中isas區別 / JAVA呼叫資料庫儲存過程

left join :左連線,返回左表中所有的記錄以及右表中連線欄位相等的記錄。 right join :右連線,返回右表中所有的記錄以及左表中連線欄位相等的記錄。 inner join: 內連線,又叫等值連線,只返回兩個表中連線欄位相等的行。 full join:外連線,返回兩個表中的行:left jo

oracle 儲存過程返回 結果集 table形式

--sys_refcursor 和 cursor 優缺點比較優點比較優點一:sys_refcursor,可以在儲存過程中作為引數返回一個table格式的結構集(我把他認為是table型別,容易理解,其實是一個遊標集), cursor 只能用在儲存過程,函式,包等的實現體中,不

SSM-Mybatis呼叫Oracle儲存過程返回結果集(遊標)示例

1.建立一個包 此處建立一個包,是為了建立儲存過程時,用遊標作為out輸出引數時宣告為遊標型別用的. --建立一個包 create or replace package types as type empListCursor is ref cursor

Oracle儲存過程ORA-00942: 表或檢視存在問題解決

今天在寫儲存過程的時候,發現一個很詭異的問題,儲存過程裡就一個最簡單的SELECT動態SQL語句。編寫完成以後,執行這個儲存過程,總是提示ORA-00942: table or view does

Oracle儲存過程能返回一個select查詢結果集嗎

使用儲存過程,想返回一個像下面圖的結果集。 這個在PL/SQL裡面能實現嗎?因為經常要使用很多聯合、多表等查詢。而且條件也不同,所以想做個儲存過程來儲存起來,省得以後每次查詢都要重新編寫SQL。剛剛使用Oracle不多久,每次的返回結果都是在輸出裡面顯示,但是在這裡面是沒有

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

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

Oracle 儲存過程中傳送郵件,並支援使用者驗證 中文標題內容

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

oracle儲存過程查詢到的值更新到別的表

create or replace procedure update_nst_t_Clime2 as cursor c_db is select * from NST_T_FRAME f

ORACLE儲存過程變數名表字段名相同

1.事件概述 今天再寫儲存過程使用變數沒注意到問題,導致SQL執行緩慢,找了許久才發現哪裡有問題。 2.發現問題 在儲存過程中執行下圖sql需要20秒左右,執行計劃發現走了全表掃描,而在儲存過程中相同的SQL不會有問題。 然後我單獨把SQL拿出來跑,將變數名替換成真實資料,1秒

Oracle 儲存過程 \ 遊標簡單定義使用

-- Created on 2018/10/12 by 32580 declare -- 定義變數 變數賦值方式為: 變數名 := 值 i INTEGER ; sqls varchar2(500); user_id varchar2(36); l

Oracle 儲存過程、函式的建立呼叫

一、Oracle 建立和呼叫儲存過程 1、基本語法 create or replace procedure update_emp_sal (Name in out type, Name in out type, ... ) is begin end update_emp_

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

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