PL/SQL 數組的使用

来源:https://www.cnblogs.com/Jimc/archive/2018/08/27/9541900.html
-Advertisement-
Play Games

一、固定數組 1、在模式(schema)級創建VARRAY類型 語法: 其中, varray_type_name是一個有效的屬性名稱; n是varray中元素的數量(最大值); element_type是數組元素的數據類型。 可以使用ALTER TYPE語句更改變數的最大大小。 實例: 備註:在Or ...


一、固定數組

1、在模式(schema)級創建VARRAY類型

語法:

CREATE OR REPLACE TYPE varray_type_name IS VARRAY(n) OF <element_type>

其中,

  • varray_type_name是一個有效的屬性名稱;
  • nvarray中元素的數量(最大值);
  • element_type是數組元素的數據類型。

可以使用ALTER TYPE語句更改變數的最大大小。

實例:

CREATE OR REPLACE TYPE namesarray IS VARRAY(3) OF VARCHAR2(10); 

備註:在Oracle中,一個用戶就是一個Schema,表都是建立在Schema中的,也可以理解為每個用戶擁有不同的表。一個用戶想訪問另外一個用戶,也就是另外一個schema的表的時候,可以用 username.tablename的形式來訪問。

 

2、在PL/SQL塊中創建VARRAY類型

語法:

TYPE varray_type_name IS VARRAY(n) OF <element_type>

實例:

DECLARE 
   TYPE namesarray IS VARRAY(5) OF VARCHAR2(10); 
   TYPE gradesarray IS VARRAY(5) OF INTEGER; 
   names namesarray; 
   marks gradesarray; 
   total INTEGER; 
BEGIN 
   names := namesarray('Kavita', 'Pritam', 'Ayan', 'Rishav', 'Aziz'); 
   marks := gradesarray(98, 97, 78, 87, 92); 
   total := names.count; 
   dbms_output.put_line('總共有 '|| total || ' 名學生'); 
   FOR i IN 1 .. total LOOP 
      dbms_output.put_line('姓名: ' || names(i) || ' 成績: ' || marks(i)); 
   END LOOP; 
END;

結果:
總共有 5 名學生
姓名: Kavita 成績: 98
姓名: Pritam 成績: 97
姓名: Ayan 成績: 78
姓名: Rishav 成績: 87
姓名: Aziz 成績: 92

註意:

  • 在Oracle環境中,varrays的起始索引始終為1
  • 可以使用varray類型的構造方法初始化varray元素,該方法與varray具有相同的名稱;
  • varrays是一維數組
  • varray在聲明時自動為NULL,並且必須在引用元素之前初始化它。

二、可變數組

DECLARE 
  TYPE ORG_TABLE_TYPE IS TABLE OF VARCHAR2(25)
  INDEX BY BINARY_INTEGER;
  V_ORG_TABLE ORG_TABLE_TYPE;
BEGIN
  V_ORG_TABLE(1) := '1';
  V_ORG_TABLE(2) := '2';
  V_ORG_TABLE(3) := '3';
  V_ORG_TABLE(4) := '4';
  V_ORG_TABLE(5) := '5';
  FOR i IN V_ORG_TABLE.first .. V_ORG_TABLE.last LOOP
    dbms_output.put_line(V_ORG_TABLE(i));
  END LOOP;
END;

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Oracle 11g行欄位拼接WMSYS.WM_CONCAT問題Not A LOB 一、問題出現 項目中的某個查詢需要將表中某個欄位不重覆地拼接起來,百度得到該函數 ,以及 函數,前者只能使用逗號' '連接,後者可以定製連接符。 但由於listagg不能直接在參數中使用 去重,因此採用 函數。 SQ ...
  • 開發中肯定會用到Oracle的觸發器,本文進行詳細講解。 這裡實例中用到的主要是Oracle中scott用戶下的emp以及dept表,數據如下 一、觸發器概念 1、概念: 觸發器的本質是一個存儲過程,顧名思義發生特定事件時Oracle會執行觸發器中的代碼。 細分它的組成可以分為3個部分:第一部分在什 ...
  • 面向程式員的資料庫訪問性能優化法則 特別說明: 1、 本文只是面對資料庫應用開發的程式員,不適合專業DBA,DBA在資料庫性能優化方面需要瞭解更多的知識; 2、 本文許多示例及概念是基於Oracle資料庫描述,對於其它關係型資料庫也可以參考,但許多觀點不適合於KV資料庫或記憶體資料庫或者是基於SSD技 ...
  • RDBMS 方言 DB2 org.hibernate.dialect.DB2Dialect DB2 AS/400 org.hibernate.dialect.DB2400Dialect DB2 OS390 org.hibernate.dialect.DB2390Dialect PostgreSQL ...
  • 最近在學習怎麼安裝Centos,在Centos6.9版本安裝Oracle資料庫。參考了網路上很多文章,終於可以不報錯的完成安裝了,在這裡記錄一下 一、需要用到的安裝文件 Centos6.9 ps:光碟1用來安裝,光碟2用來安裝一些依賴包。 鏈接:https://pan.baidu.com/s/1hg ...
  • 一. GoldenGate 概述 GoldenGate現在是業內成熟的數據容災與複製產品;GoldenGate是一種基於日誌的結構化數據複製方式,它通過解析源資料庫線上日誌或歸檔日誌獲得數據的增刪改變化(數據量只有日誌的四分之一左右),再將這些變化應用到目標資料庫,實現源資料庫與目標資料庫同步、雙活 ...
  • -- 2 **************************************************** -- 最簡單的查詢語句 -- 2.1 -- 使用 select 語句查詢表中的數據 -- SELECT * FROM table_name use pubs -- 切換當前資料庫 se ...
  • Date:20180827 Monday 目前市場hadoop主流版本是2.7.x系列,下麵我們就以hadoop-2.7.3為例進行安裝 安裝前準備: 1.操作系統:cetos(6和7) 2.java版本:1.8 3.需要插件:wget, vim, openssh, ntpd 一.示列演示: 現在有 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...