中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么使用CONSTANT變量與INDEX BY數組

發布時間:2021-11-08 16:25:21 來源:億速云 閱讀:210 作者:iii 欄目:關系型數據庫

這篇文章主要介紹“怎么使用CONSTANT變量與INDEX BY數組”,在日常操作中,相信很多人在怎么使用CONSTANT變量與INDEX BY數組問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么使用CONSTANT變量與INDEX BY數組”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

我創建了如下包頭:

CREATE OR REPLACE PACKAGE plch_pkg
   AUTHID DEFINER
IS
   TYPE names_t IS TABLE OF VARCHAR2 (20)
                      INDEX BY PLS_INTEGER;
END plch_pkg;
/

哪些選項在執行之后會顯示"3"?

(A)

DECLARE
   l_names   CONSTANT plch_pkg.names_t
      := plch_pkg.names_t ('Horton', 'Hears', 'A Who') ;
BEGIN
   DBMS_OUTPUT.put_line (l_names.COUNT);
END;
/
SQL> DECLARE
  2     l_names   CONSTANT plch_pkg.names_t
  3        := plch_pkg.names_t ('Horton', 'Hears', 'A Who') ;
  4  BEGIN
  5     DBMS_OUTPUT.put_line (l_names.COUNT);
  6  END;
  7  /
DECLARE
   l_names   CONSTANT plch_pkg.names_t
      := plch_pkg.names_t ('Horton', 'Hears', 'A Who') ;
BEGIN
   DBMS_OUTPUT.put_line (l_names.COUNT);
END;
ORA-06550: 第 3 行, 第 10 列: 
PLS-00222: 在此范圍中不存在名為 'NAMES_T' 的函數
ORA-06550: 第 2 行, 第 14 列: 
PL/SQL: Item ignored
ORA-06550: 第 5 行, 第 26 列: 
PLS-00320: 此表達式的類型聲明不完整或格式不正確
ORA-06550: 第 5 行, 第 4 列: 
PL/SQL: Statement ignored
SQL>

(B)

DECLARE
   l_names   CONSTANT plch_pkg.names_t
                         := plch_pkg.names_t () ;
BEGIN
   l_names (1) := 'Horton';
   l_names (2) := 'Hears';
   l_names (3) := 'A Who';
   DBMS_OUTPUT.put_line (l_names.COUNT);
END;
/
SQL> DECLARE
  2     l_names   CONSTANT plch_pkg.names_t
  3                           := plch_pkg.names_t () ;
  4  BEGIN
  5     l_names (1) := 'Horton';
  6     l_names (2) := 'Hears';
  7     l_names (3) := 'A Who';
  8     DBMS_OUTPUT.put_line (l_names.COUNT);
  9  END;
 10  /
DECLARE
   l_names   CONSTANT plch_pkg.names_t
                         := plch_pkg.names_t () ;
BEGIN
   l_names (1) := 'Horton';
   l_names (2) := 'Hears';
   l_names (3) := 'A Who';
   DBMS_OUTPUT.put_line (l_names.COUNT);
END;
ORA-06550: 第 3 行, 第 29 列: 
PLS-00222: 在此范圍中不存在名為 'NAMES_T' 的函數
ORA-06550: 第 2 行, 第 14 列: 
PL/SQL: Item ignored
ORA-06550: 第 5 行, 第 4 列: 
PLS-00320: 此表達式的類型聲明不完整或格式不正確
ORA-06550: 第 5 行, 第 4 列: 
PL/SQL: Statement ignored
ORA-06550: 第 6 行, 第 4 列: 
PLS-00320: 此表達式的類型聲明不完整或格式不正確
ORA-06550: 第 6 行, 第 4 列: 
PL/SQL: Statement ignored
ORA-06550: 第 7 行, 第 4 列: 
PLS-00320: 此表達式的類型聲明不完整或格式不正確
ORA-06550: 第 7 行, 第 4 列: 
PL/SQL: Statement ignored
ORA-06550: 第 8 行, 第 26 列: 
PLS-00320: 此表達式的類型聲明不完整或格式不正確
ORA-06550: 第 8 行, 第 4 列: 
PL/SQL: Statement ignored
SQL>

(C)

CREATE OR REPLACE FUNCTION plch_dr_seuss_names
   RETURN plch_pkg.names_t
IS
   l_return   plch_pkg.names_t;
BEGIN
   l_return (1) := 'Horton';
   l_return (2) := 'Hears';
   l_return (3) := 'A Who';
   RETURN l_return;
END plch_dr_seuss_names;
/
DECLARE
   l_names   CONSTANT plch_pkg.names_t
                         := plch_dr_seuss_names () ;
BEGIN
   DBMS_OUTPUT.put_line (l_names.COUNT);
END;
/
SQL> CREATE OR REPLACE FUNCTION plch_dr_seuss_names
  2     RETURN plch_pkg.names_t
  3  IS
  4     l_return   plch_pkg.names_t;
  5  BEGIN
  6     l_return (1) := 'Horton';
  7     l_return (2) := 'Hears';
  8     l_return (3) := 'A Who';
  9     RETURN l_return;
 10  END plch_dr_seuss_names;
 11  /
Function created
SQL> DECLARE
  2     l_names   CONSTANT plch_pkg.names_t
  3                           := plch_dr_seuss_names () ;
  4  BEGIN
  5     DBMS_OUTPUT.put_line (l_names.COUNT);
  6  END;
  7  /
3
PL/SQL procedure successfully completed
SQL>

(D)

CREATE OR REPLACE FUNCTION plch_dr_seuss_names (
   name1_in   IN VARCHAR2
,  name2_in   IN VARCHAR2
,  name3_in   IN VARCHAR2)
   RETURN plch_pkg.names_t
IS
   l_return   plch_pkg.names_t;
BEGIN
   l_return (1) := name1_in;
   l_return (2) := name2_in;
   l_return (3) := name3_in;
   RETURN l_return;
END plch_dr_seuss_names;
/
DECLARE
   l_names   CONSTANT plch_pkg.names_t
      := plch_dr_seuss_names ('Horton', 'Hears', 'A Who') ;
BEGIN
   DBMS_OUTPUT.put_line (l_names.COUNT);
END;
/
SQL> CREATE OR REPLACE FUNCTION plch_dr_seuss_names (
  2     name1_in   IN VARCHAR2
  3  ,  name2_in   IN VARCHAR2
  4  ,  name3_in   IN VARCHAR2)
  5     RETURN plch_pkg.names_t
  6  IS
  7     l_return   plch_pkg.names_t;
  8  BEGIN
  9     l_return (1) := name1_in;
 10     l_return (2) := name2_in;
 11     l_return (3) := name3_in;
 12     RETURN l_return;
 13  END plch_dr_seuss_names;
 14  /
Function created
SQL> DECLARE
  2     l_names   CONSTANT plch_pkg.names_t
  3        := plch_dr_seuss_names ('Horton', 'Hears', 'A Who') ;
  4  BEGIN
  5     DBMS_OUTPUT.put_line (l_names.COUNT);
  6  END;
  7  /
3
PL/SQL procedure successfully completed
SQL>
答案CD. ORACLE只對嵌套表(NESTED TABLE)和可變數組(VARRAY)提供構造函數(constructor function), ASSOCIATED ARRAY (即INDEX BY表)則沒有這個構造函數,必須采用自定義函數。常量在聲明的部分必須賦值,不能夠在塊中賦值。

到此,關于“怎么使用CONSTANT變量與INDEX BY數組”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

申扎县| 东明县| 常熟市| 大冶市| 客服| 噶尔县| 开远市| 衡南县| 郓城县| 象山县| 互助| 新巴尔虎右旗| 广饶县| 前郭尔| 敦化市| 南平市| 安多县| 阿城市| 宁乡县| 武清区| 通化县| 松溪县| 贺州市| 扶绥县| 班玛县| 洛南县| 马公市| 花莲县| 德钦县| 呈贡县| 新野县| 龙游县| 余江县| 黄浦区| 安平县| 凤山市| 佛冈县| 柳林县| 墨江| 怀集县| 珲春市|