亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 5182 | 回復(fù): 2
打印 上一主題 下一主題

[求助] oracle存儲過程參數(shù)傳遞問題 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2013-06-28 11:01 |只看該作者 |倒序瀏覽
為什么換了寫法就不能輸出值了?
過程1:
create or replace procedure pro_sel_totall(v_lingyu in varchar2,v_department in varchar2,n out number) is
begin
  select count(*) into n from xuqiu_201301 t where t.xlingyu=v_lingyu and t.xdepartment=v_department;
end;

過程2:
create or replace procedure pro_tt as
a varchar2(222);
b varchar2(222);
c number;
begin
  a:='信用卡';
  b:='信用卡-信息技術(shù)部';
  pro_sel_totall(a,b,c);
  dbms_output.put_line(c);
end;
執(zhí)行過程2,正確輸出結(jié)果。

過程3:
create or replace procedure pro_tt2 as
a varchar2(222);
b varchar2(222);
c number;
begin
  select t.xly_name into a from xyewu t where t.xid=27;
  select t.xdep_name into b from xdepartment t where t.xid=10;
  pro_sel_totall(a,b,c);
  dbms_output.put_line(c);
end;
上面兩個sql語句,得到的a和b的值,是跟過程2的一樣的,只是換種形式,執(zhí)行過程3,顯示卻是0,為什么?

跪等大神解答!!

論壇徽章:
0
2 [報告]
發(fā)表于 2013-06-28 12:42 |只看該作者
http://zhidao.baidu.com/question ... o#answer-1412219232   
還是百度給力,已解決。

論壇徽章:
0
3 [報告]
發(fā)表于 2013-06-28 12:51 |只看該作者
本帖最后由 linux_kaige 于 2013-06-28 16:54 編輯

原過程如下,只因為字段長度不一致,測試錯誤了。

create or replace procedure pro_cursor_cao as
j number;
n number;
v_name1 xyewu.xly_name%type;
v_name2 xdepartment.xdep_name%type;
cursor cur_yewu is select t.xly_name from xyewu t;
cursor cur_depart is select t.xdep_name from xdepartment t;
begin
  select count(*) into j from xuqiu_201301;
  dbms_output.put_line(j);---------輸出我的任務(wù)清單的任務(wù)數(shù)。
    open cur_yewu;
    loop
      fetch cur_yewu into v_name1;
      exit when cur_yewu%notfound;
      begin
      open cur_depart;
      loop
        fetch cur_depart into v_name2;
        exit when cur_depart%notfound;
        /*select count(*) into n from xuqiu_201301 t where t.xlingyu=v_name1 and t.xdepartment=v_name2;
        if n!=0 then
        dbms_output.put(v_name1||chr(9));
        dbms_output.put(v_name2||chr(9));
        dbms_output.put_line(n||chr(9));
        end if;
       這樣可以輸出我要的結(jié)果
       */
      pro_sel_totall(v_name1,v_name2,n);
      if n!=0 then dbms_output.put_line(v_name1||v_name2||n);end if;
      end loop;
      close cur_depart;
      end;
      dbms_output.put_line('');  
    end loop;
    close cur_yewu;
end;
--http://zhidao.baidu.com/question/309819829.html  參數(shù)傳遞

/*
如何恢復(fù)一個“短時間”內(nèi)被“修改”或“刪除”的存儲過程  現(xiàn)象描述:某日通過PL/SQL Developer修改qdgl@lyzw下的存儲過程LF_HDPT,修改完成后,執(zhí)行編譯,然后關(guān)閉腳本修改窗口(在關(guān)閉窗口前后都未進(jìn)行腳本保存)。隨后在執(zhí)行存儲過程時發(fā)現(xiàn)腳本修改有誤,誤刪除了原有存儲過程沒有問題的幾段代碼,而手頭電腦又沒有備份腳本,問了相關(guān)人員也沒有備份。那如何恢復(fù)腳本呢?  原理分析:oracle里所有的存儲過程的源代碼都是存在dba_source里,而edit或drop某個存儲過程的時候,oracle這里肯定要去dba_source里把相關(guān)的源代碼給edit或delete掉,并且這些代碼都會存儲在系統(tǒng)快照中一段時間,那么直接flashback query就可以了
問題處理:鑒于最近一次執(zhí)行存儲過程LF_HDPT的編譯時間在“2009-09-23 17:02:00”左右,用sys用戶登陸,執(zhí)行如下的查詢:
SELECT TEXT    FROM DBA_SOURCE AS OF TIMESTAMP TO_TIMESTAMP(
'2009-09-23 17:01:00', 'YYYY-MM-DD HH24:MI:SS')  WHERE OWNER = 'QDGL'    AND NAME = 'LF_HDPT'  ORDER
BY LINE;  然后把相應(yīng)的代碼導(dǎo)出到excel,找回需要的代碼就行了。
*/
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP