IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置: 首頁數(shù)據(jù)庫Oracle → oracle存儲過程中的select語句

oracle存儲過程中的select語句

時間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(0)

  先看下這個存儲過程:

  create or replace procedure pro_test

  is

  begin

  select * from t_test;

  end pro_test;

  這個存儲過程正確嗎?

  昨天因?yàn)檫@個,耽誤了好久(在一個存儲過程中用了select語句,但既沒有用游標(biāo)也沒有用into).

  在存儲過程(oracle數(shù)據(jù)庫)中如果用了select語句,要么使用"select into 變量"語句要么使用游標(biāo),oracle不支持單獨(dú)的select語句(如表述有誤請指出).

  select into 比較簡單,但是如果返回的是一個結(jié)果集就無法滿足要求了.

  游標(biāo)分Cursor型游標(biāo)和SYS_REFCURSOR型游標(biāo)兩種

  Cursor型游標(biāo)--不能用于參數(shù)傳遞

  create or replace procedure pro_test() is

  cusor_1 Cursor is select 字段名 from 表名 where 條件;

  (或者

  select class_name into cursor_2 from class where ...;

  cursor的另一種用法,需要寫在begin和end之間)

  begin

  select class_name into cursor_2 from class where ...;

  可以使用

  for xxx in cursor

  loop

  ....

  end loop; --對Cursor進(jìn)行遍歷

  end pro_test;

  SYS_REFCURSOR型游標(biāo)

  create or replace procedure pro_test(rsCursor out SYS_REFCURSOR) is

  cursor SYS_REFCURSOR;

  name varhcar(20);

  begin

  open cursor for

  select name from student where ...; --使用open來打開進(jìn)行賦值

  --遍歷

  loop

  fetch cursor into name --fetch into來打開遍歷的每條數(shù)據(jù)

  exit when cursor%NOTFOUND; --未找到記錄信息

  dbms_output.putline(xxxx);

  end loop;

  rsCursor := cursor;

  end pro_test;

關(guān)鍵詞標(biāo)簽:oracle,select語句

相關(guān)閱讀

文章評論
發(fā)表評論

熱門文章 Oracle中使用alter table來增加,刪除,修改列的語法 Oracle中使用alter table來增加,刪除,修改列的語法 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 誤刪Oracle數(shù)據(jù)庫實(shí)例的控制文件 誤刪Oracle數(shù)據(jù)庫實(shí)例的控制文件 為UNIX服務(wù)器設(shè)置Oracle全文檢索 為UNIX服務(wù)器設(shè)置Oracle全文檢索

相關(guān)下載

    人氣排行 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 Oracle中使用alter table來增加,刪除,修改列的語法 ORACLE SQL 判斷字符串是否為數(shù)字的語句 ORACLE和SQL語法區(qū)別歸納(1) oracle grant 授權(quán)語句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數(shù)據(jù)處理 Oracle刪除表的幾種方法