校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁(yè) > 知識(shí)庫(kù) > oracle 存儲(chǔ)過(guò)程返回 結(jié)果集 table形式的案例

oracle 存儲(chǔ)過(guò)程返回 結(jié)果集 table形式的案例

熱門(mén)標(biāo)簽:地圖標(biāo)注坐標(biāo)圖標(biāo) 鶴壁電話機(jī)器人價(jià)格 地圖標(biāo)注效果的制作 手機(jī)地圖標(biāo)注門(mén)店 安陽(yáng)企業(yè)電銷(xiāo)機(jī)器人供應(yīng)商 網(wǎng)貸外呼系統(tǒng)合法嗎 電銷(xiāo)套路機(jī)器人 杭州網(wǎng)絡(luò)外呼系統(tǒng)運(yùn)營(yíng)商 汽車(chē)4s店百度地圖標(biāo)注店

--sys_refcursor 和 cursor 優(yōu)缺點(diǎn)比較

優(yōu)點(diǎn)比較

優(yōu)點(diǎn)一:

sys_refcursor,可以在存儲(chǔ)過(guò)程中作為參數(shù)返回一個(gè)table格式的結(jié)構(gòu)集(我把他認(rèn)為是table類型,容易理解,其實(shí)是一個(gè)游標(biāo)集), cursor 只能用在存儲(chǔ)過(guò)程,函數(shù),包等的實(shí)現(xiàn)體中,不能做參數(shù)使用。

優(yōu)點(diǎn)二:

sys_refcursor 這東西可以使用在包中做參數(shù),進(jìn)行數(shù)據(jù)庫(kù)面向?qū)ο箝_(kāi)放。哈哈。我喜歡。cursor就不能。

create or replace procedure p_test(p_cur out sys_refcursor) 
as 
begin 
   open p_cur for select * from emp; 
end p_test; 
declare
p_cur sys_refcursor;
i emp%rowtype;
begin
 p_test(p_cur);
 loop fetch p_cur 
  into i;
  exit when p_cur%notfound;
  DBMS_OUTPUT.PUT_LINE('---'||i.ename||'---'||i.empno);
  end loop;
  close p_cur;
end;

補(bǔ)充:Oracle存儲(chǔ)過(guò)程返回select * from table結(jié)果

1.首先建立一個(gè)包

create or replace package LogOperation is
 type listLog is ref cursor;
 procedure PCenterExamine_sel(listCenterExamine out listlog,testlist out listLog,numpage in decimal);
end;

2.建立包中的主體

create or replace package body LogOperation is
 procedure PCenterExamine_sel
 (
  listCenterExamine out listlog,
  testlist out listlog,
  numpage in decimal
 ) 
 as
 begin
  open listCenterExamine for select * from Log_CenterExamine;
  open testlist for select * from Log_CenterExamine;
 end;
end;

3.在程序中調(diào)用存儲(chǔ)過(guò)程的值

public static DataSet RunProcedureGetDataSet(string storedProcName, OracleParameter[] parameters)
    {
      string connectionString ="192.168.1.1/db";
      using (OracleConnection connection = new OracleConnection(connectionString))
      {
        DataSet dataSet = new DataSet();
        connection.Open();
        OracleDataAdapter sqlDA = new OracleDataAdapter();
        sqlDA.SelectCommand = BuildQueryCommand(connection, storedProcName, parameters);
        sqlDA.Fill(dataSet, "dt");
        connection.Close();
        return dataSet;
      }
    }
private static OracleCommand BuildQueryCommand(OracleConnection connection, string storedProcName, IDataParameter[] parameters)
    {
      OracleCommand command = new OracleCommand(storedProcName, connection);
      command.CommandType = CommandType.StoredProcedure;
      foreach (OracleParameter parameter in parameters)
      {
        command.Parameters.Add(parameter);
      }
      return command;
    }

4.有幾個(gè)out的ref cursor,變量ds中就用幾個(gè)DataTable。并且輸入?yún)?shù) indecimal也不會(huì)受影響,并且可以參加存儲(chǔ)過(guò)程的運(yùn)算

OracleParameter[] paramDic = { 
          new OracleParameter("listCenterExamine",OracleType.Cursor),
          new OracleParameter("testlist",OracleType.Cursor),
          new OracleParameter("numpage",OracleType.Int32)};
        paramDic[0].Direction = ParameterDirection.Output;
        paramDic[1].Direction = ParameterDirection.Output;
        paramDic[2].Value = 1;
        ds = Model.OracleHelper.RunProcedureGetDataSet("LogOperation.PCenterExamine_sel", paramDic);

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • oracle通過(guò)存儲(chǔ)過(guò)程上傳list保存功能
  • 解決PL/SQL修改Oracle存儲(chǔ)過(guò)程編譯就卡死的問(wèn)題
  • 關(guān)于Oracle存儲(chǔ)過(guò)程和調(diào)度器實(shí)現(xiàn)自動(dòng)對(duì)數(shù)據(jù)庫(kù)過(guò)期數(shù)據(jù)清除的問(wèn)題
  • Oracle如何批量將表中字段名全轉(zhuǎn)換為大寫(xiě)(利用簡(jiǎn)單存儲(chǔ)過(guò)程)
  • Spring boot調(diào)用Oracle存儲(chǔ)過(guò)程的兩種方式及完整代碼
  • oracle調(diào)試存儲(chǔ)過(guò)程的過(guò)程詳解
  • Oracle如何使用PL/SQL調(diào)試存儲(chǔ)過(guò)程
  • Oracle存儲(chǔ)過(guò)程案例詳解

標(biāo)簽:泰安 柳州 南陽(yáng) 銀川 酒泉 河源 梧州 焦作

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《oracle 存儲(chǔ)過(guò)程返回 結(jié)果集 table形式的案例》,本文關(guān)鍵詞  oracle,存儲(chǔ),過(guò)程,返回,結(jié)果,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《oracle 存儲(chǔ)過(guò)程返回 結(jié)果集 table形式的案例》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于oracle 存儲(chǔ)過(guò)程返回 結(jié)果集 table形式的案例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 维西| 弋阳县| 沽源县| 仙游县| 固镇县| 丘北县| 都江堰市| 新晃| 双城市| 谢通门县| 通州市| 漳浦县| 屯门区| 绥江县| 汶上县| 梁平县| 海城市| 赤城县| 依兰县| 湘阴县| 陆丰市| 淳化县| 宣恩县| 洮南市| 中阳县| 神木县| 钟祥市| 南靖县| 清原| 如皋市| 望江县| 内丘县| 垫江县| 大荔县| 涿州市| 阜平县| 思南县| 乐东| 民和| 忻州市| 清水河县|