怎么使用CONSTANT变量与INDEX BY数组
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍"怎么使用CONSTANT变量与INDEX BY数组",在日常操作中,相信很多人在怎么使用CONSTANT变量与INDEX BY数组问题上存在疑惑,小编查阅了各式资料,整理出简单好用的
千家信息网最后更新 2026年11月02日怎么使用CONSTANT变量与INDEX BY数组
这篇文章主要介绍"怎么使用CONSTANT变量与INDEX BY数组",在日常操作中,相信很多人在怎么使用CONSTANT变量与INDEX BY数组问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么使用CONSTANT变量与INDEX BY数组"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
我创建了如下包头:
CREATE OR REPLACE PACKAGE plch_pkg AUTHID DEFINERIS 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 ignoredORA-06550: 第 5 行, 第 26 列: PLS-00320: 此表达式的类型声明不完整或格式不正确ORA-06550: 第 5 行, 第 4 列: PL/SQL: Statement ignoredSQL>(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 ignoredORA-06550: 第 5 行, 第 4 列: PLS-00320: 此表达式的类型声明不完整或格式不正确ORA-06550: 第 5 行, 第 4 列: PL/SQL: Statement ignoredORA-06550: 第 6 行, 第 4 列: PLS-00320: 此表达式的类型声明不完整或格式不正确ORA-06550: 第 6 行, 第 4 列: PL/SQL: Statement ignoredORA-06550: 第 7 行, 第 4 列: PLS-00320: 此表达式的类型声明不完整或格式不正确ORA-06550: 第 7 行, 第 4 列: PL/SQL: Statement ignoredORA-06550: 第 8 行, 第 26 列: PLS-00320: 此表达式的类型声明不完整或格式不正确ORA-06550: 第 8 行, 第 4 列: PL/SQL: Statement ignoredSQL>
(C)
CREATE OR REPLACE FUNCTION plch_dr_seuss_names RETURN plch_pkg.names_tIS 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 createdSQL> 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 /3PL/SQL procedure successfully completedSQL>
(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_tIS 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 createdSQL> 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 /3PL/SQL procedure successfully completedSQL>答案CD. ORACLE只对嵌套表(NESTED TABLE)和可变数组(VARRAY)提供构造函数(constructor function), ASSOCIATED ARRAY (即INDEX BY表)则没有这个构造函数,必须采用自定义函数。常量在声明的部分必须赋值,不能够在块中赋值。
到此,关于"怎么使用CONSTANT变量与INDEX BY数组"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
数组
函数
格式
类型
表达式
变量
学习
更多
范围
帮助
实用
接下来
常量
文章
方法
理论
知识
答案
篇文章
网站
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
哈尔滨大商圈互联网科技有限公司
互联网是第几次科技革命的成果
互联网科技行业发展
互联网科技公司税收优惠
互联网科技有限公司图片
科技信息互联网
合肥互联网科技公司
远拓互联网科技
北京禾田雨橡互联网科技
互联网科技大会
深圳互联网科技怎么样
互联网科技寓意
广西互联网科技孵化中心
企晟互联网信息科技有限公司
美国互联网科技实力
互联网与数字科技关系
35岁以上互联网科技行业
容联科技互联网电商
张家口科技产业互联网平台
同城互联网络科技
深圳齐家互联网科技
碳银互联网科技有限公司
上海亿帐通互联网科技
蓝色互联网科技
福州新华互联网科技学校 知乎
互联网校园科技培训
阿大互联网科技有限公司
广州千川互联网科技有限公司
广东鹅鹅鹅互联网科技有限公司
互联网企业和网络科技有限公司