GBase8s集合类型之关联数组简介

GBase 8s兼容oracle的PL/SQL编程语言,PL/SQL 语法需要显式设置环境变量SQLMODE为’ORACLE’后才能生效,默认情况下8s的SQLMODE为’GBASE’,此时不支持 PL/SQL 语法。本文将介绍GBase 8s兼容oracle模式中的关联数组类型,包括它们的使用场景、特点以及如何有效利用它们来提高数据库操作的效率。


兼容oracle的集合类型包括三种,分别是关联数组类型、变长数组类型、嵌套表类型,本文主要讲述关联数组类型及其变量的使用。关联数组的元素数量未指定,索引类型可以为字符串或者PLS_INTEGER,可以在PLSQL块中或者包中进行定义。


关联数组是一组键值对,每个键都是一个唯一的索引,用于定位与语法variable_name(index)相关联的值。


1.语法

type population is table of int index by varchar(10);

2.特点

  • 索引的数据类型可以是字符串类型(VARCHAR2、VARCHAR、string或LONG)或PLS_INTEGER。
  • 索引是按排序顺序存储的,而不是按创建顺序存储的。对于字符串类型,排序顺序由初始化参数NLS_sort和NLS_COMP决定。
  • 不需要初始化。


3.与数据库表的不同点:

  • 关联数组不需要磁盘空间或网络操作
  • 关联数组无法使用dml语言进行操作


4.关联数组的比较

  • 不能与NULL进行比较
  • 不支持变量直接比较:v1=v2
  • 只支持变量元素比较:v1(1)=v2(1)


5.示例

DECLARE TYPE type_1 IS TABLE OF NUMBER INDEX BY VARCHAR2(64); v1 type_1; i VARCHAR2(64); BEGIN v1('Smallville') := 2000; v1('Midland') := 750000; v1('Megalopolis') := 1000000; v1('Smallville') := 2001; i := v1.first; while i is not null loop dbms_output.put_line('values of ' || i || ' is ' || v1(i)); i := v1.next(i); end loop; end; /

运行结果:
Population of Megalopolis is 1000000
Population of Midland is 750000
Population of Smallville is 2001

--关联数组类型和嵌套表类型作为存储过程的out参数,并应用在package中 drop table if exists tab1; create table tab1(id int,name varchar(10)); create or replace package pkg1 as type t1 is table of tab1.id%type; type t2 is table of tab1.name%type index by varchar(5); procedure p1(c out t1); procedure p2(c out t2); end; / create or replace package body pkg1 as procedure p1 (c out t1) is a tab1%rowtype; -- c t1 := t1(100,200); begin c := t1(100,200); end; procedure p2 (c out t2) is a tab1%rowtype; begin c ('var') := 'Jack'; end; end; / --调用嵌套表作为out参数的procedure declare b pkg1.t1:=pkg1.t1(10,20); begin pkg1.p1(b); dbms_output.put_line(b(1)); end; / 100 --调用关联数组作为out参数的procedure declare c pkg1.t2; begin pkg1.p2(c); dbms_output.put_line(c('var')); end; / Jack

通过本文的介绍GBase 8s 中关联数组的使用方法、特点及其在 PL/SQL 编程中的应用。关联数组提供了一种灵活的方式来存储和操作一组键值对,适用于多种场景。希望这些内容能帮助你在实际开发中更高效地利用关联数组。如果你在使用过程中遇到任何问题,欢迎随时在社区中提问,我们在这里为你提供支持!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1184322.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GBase 8a 参数gcluster_shrink_to_rebalance使用介绍

参数功能控制shrink操作使用rebalance方式的开关。 取值 0:关闭 shrink to rebalance 功能; 取值 1: 打开 shrink to rebalance 功能; 默认取值:1。原理特性该参数为862-Build43后的新功能。打开该参数,执行…

打工人救星!用doocs md写公众号必搭cpolar,再也不用卡局域网里改稿了

文章目录1 项目 doocs/md 介绍2 安装Nodejs环境2.1 下载Nodejs安装程序2.2 安装Nodejs程序2.3 验证Nodejs是否安装2.4 设置国内淘宝镜像源3 下载本地部署doocs/md项目3.1 将项目下载至本地3.2 解压doocs/md项目3.3 安装依赖和启动doocs/md项目4 将网站穿透至公网(cp…

帝国CMS搭建全攻略:从安装到优化

帝国CMS搭建指南系统环境准备确保服务器环境满足以下要求:PHP版本5.6及以上,MySQL数据库5.0及以上,推荐使用Apache或Nginx作为Web服务器。Windows系统建议使用WAMP/LAMP集成环境,Linux系统需提前安装PHPMySQL环境组件。下载与安装…

GBase 8c数据库磁盘故障定位技术分享

南大通用GBase 8c数据库常见的磁盘故障是磁盘空间不足、磁盘出现坏块、磁盘未挂载等。部分磁盘故障会导致文件系统损坏,例如磁盘未挂载,数据库管理自动定期执行磁盘检测时会识别故障并将实例停止,查看数据库状态时对应实例状态异常&#xff1…

852-017500-003-6-C220ASSEMBLY CHASSIS 14 英寸屏幕LAM

产品概述该部件为LAM Research(泛林半导体)生产的设备组件,型号为852-017500-003-6-C220,属于14英寸屏幕的底盘组装件(Chassis Assembly)。LAM Research是全球领先的半导体制造设备供应商,此类组…

Windows版本的Dify平台搭建

Windows版本基于Docker的Dify平台搭建 1:名词解释 1.1:Hyper-V Hyper-V 是微软提供的 **Type-1(裸机型)虚拟化技术**,可在一台物理计算机上同时运行多个相互隔离的虚拟机。每个虚拟机拥有独立的操作系统和虚拟硬件资源,通过虚拟…

Sanyo Denki PU0A030EMA1S00 伺服放大器

Sanyo Denki PU0A030EMA1S00 伺服放大器概述Sanyo Denki(山洋电气)PU0A030EMA1S00 是一款高性能伺服放大器,专为精密运动控制应用设计。该型号通常用于工业自动化、机器人、CNC机床等场景,支持与配套的伺服电机协同工作&#xff0…

便携式半实物测试平台 ETest_PT

1)产品简介 ETest_PT是一款便携嵌入式系统测试平台,由软件和硬件两部分组成,软件采用ETest,硬件包括测试主机、USB接口设备(CAN、TCP/UDP、RS232/422/485、AD/DA/DI/DO、ARINC429、1553B、1394B、FC等)。 …

2026年Highcharts迎来系列更新| V12.5 正式发布

更新日志见官网:https://www.highcharts.com/changelog/ 2026年1月12日 — Highcharts团队正式发布v12.5.0版本,为核心产品线带来多项重要更新。 本次发布最值得关注的亮点包括树状图(Dendrogram)的正式支持、Highcharts Grid 2…

GBase 8c数据库运维——常见故障定位手段 分享

1.操作系统故障定位手段查询状态时,显示一个节点上所有实例都不正常时,可能是操作系统发生了故障。 可以通过如下方法确定操作系统是否存在问题:通过 SSH 或者其它远程登录工具登录该节点。如果连接失败,请尝试通过 ping 发包检查…

Flutter 又迎大坑修改?iOS 26 键盘变化可能带来大量底层改动

又是一个小问题可能带来的大改动,感觉官方在评估的时候,有点过分细节了。 这个问题来自去年底的 #179482 issue ,Flutter 在 iOS 26 上,某些场景会因为出现半透明键盘,而页面底下本来应该被键盘遮挡的 Widget&#xf…

3C电子电爪的“心脏”:满足各行各业高精度需求的电爪厂家推荐 - 品牌2025

在高端制造迈向智能化、柔性化的新阶段,电动夹爪作为机器人末端执行器的核心组件,正成为决定产线效率与良率的关键。尤其在3C电子、半导体、新能源等对微米级操作精度要求严苛的行业,传统气动方案已难以满足柔性抓取…

易语言开发从入门到精通:26+27章实战复盘·全栈知识体系地图·终身学习资源库·个人成长与中文编程传承指南

易语言开发从入门到精通:2627章实战复盘全栈知识体系地图终身学习资源库个人成长与中文编程传承指南 🔄🗺️📚 1.28.1 学习目标 🎯 作为《易语言开发从入门到精通》的全书系统性收尾总结升华终身学习开篇,本…

文献阅读6

文献阅读66. Disscusion 6.1. Ablation study消融实验从两部分展开:1)关于 DBPM 组件的消融(Ablation Study about DBPM)2)关于训练策略的消融(Ablation Study about Training Strategy)1)关于 DBPM 组件的消融…

企业微信API开发:外部群主动推送场景

​ QiWe开放平台 开发者名片 API驱动企微自动化,让开发更高效 核心能力:为开发者提供标准化接口、快速集成工具,助力产品高效拓展功能场景 官方站点:https://www.qiweapi.com 团队定位:专注企微API生…

基于 API 体系的外部群消息推送“避坑”指南

​ QiWe开放平台 开发者名片 API驱动企微自动化,让开发更高效 核心能力:为开发者提供标准化接口、快速集成工具,助力产品高效拓展功能场景 官方站点:https://www.qiweapi.com 团队定位:专注企微API生…

高口碑电爪品牌推荐:厂商的竞争格局与技术专利 - 品牌2025

在智能制造加速演进的2026年,电动夹爪、工业夹爪以及各类电爪产品已成为高端制造产线中不可或缺的核心执行器。随着3C电子、新能源、半导体等行业对柔性化、高精度自动化需求的激增,传统气动夹爪正被具备精密力控能力…

国内iPaaS主流厂商推荐哪家好(最新专业深度测评)

在企业数字化转型进入规模化落地的2025年,iPaaS(集成平台即服务)已从“可选工具”升级为“数字化基座”,成为打通系统数据孤岛、实现业务自动化的核心支撑。本次测评聚焦国内主流iPaaS系统集成平台,旨在通过客观量化分…

2025免费调研平台技术对比:海量模板+智能分析全场景解决方案 - 品牌排行榜

一、市场现状与用户选择困境 艾瑞咨询《2024中国企业数字化调研白皮书》显示,国内在线调研市场用户规模已突破4.2亿,其中82%的中小企业和个人用户优先选择免费调研平台。然而市场上超过30款免费工具功能参差不齐,67%…

【Python程序开发系列】对象存储服务AWS S3以及使用示例(案例分析)

这是我的第448篇原创文章。一、引言Amazon Simple Storage Service (S3) 是 AWS 提供的对象存储服务,具有以下核心特点:对象存储:存储的是文件对象(而非块存储),每个对象包含数据、元数据和唯一键无限扩展&…