怎么使用CONSTANT变量与INDEX BY数组
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章主要介绍"怎么使用CONSTANT变量与INDEX BY数组",在日常操作中,相信很多人在怎么使用CONSTANT变量与INDEX BY数组问题上存在疑惑,小编查阅了各式资料,整理出简单好用的
千家信息网最后更新 2025年02月01日怎么使用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安全错误
数据库的锁怎样保障安全
通州园区网络安全产业园
软件开发人员的工作考核
在软件开发公司做推广
squid缓存服务器
数据库结构化数据存储
联想服务器安全吗
光模块和服务器占比
图书常用数据库
高速稳定服务器让
远程控制桌面软件开发
ncbi提交数据库步骤
太极APP连接不上服务器
qq ip数据库
网络安全法第67条解释
浦东新区市场网络技术费用是多少
上海蛙扑网络技术有限公司靠谱吗
网络安全班会准备过程
无锡网络安全知识竞赛答题
软件开发公开招标文件
深圳软件开发靠谱吗
服务器 推流
联想服务器安全吗
用友t3数据库哪里下载
深圳社交软件开发咨询
魔兽怀旧服服务器出售时间
数据库的基本知识新建
东吴掌财服务器异常
简单网络安全问题有哪些
数据库监听未能启动
自查报告网络安全农行