Oracle自定义类型

Oracle自定义类型可以通过type/create type来声明或者创建

一,四种创建方式

1.1,使用create type创建object类型

create or replace type obj_type as object(id number,name varchar2(50 byte),birthday date);

1.2,使用create type创建table类型

create or replace type table_type as table of obj_type;

创建table类型要依赖于object类型,就是as table of后面接object类型。

1.3,使用type创建object类型

declaretype obj_type is record(id number,name varchar2(50 byte),birthday date);
begindbms_output.put_line('');
end;

1.4,使用type创建table类型

declaretype obj_type is record(id number,name varchar2(50 byte),birthday date);type table_type is table of obj_type;
begindbms_output.put_line('');
end;

区别是create可以独立执行,create后面用as

type只能在语句块中执行,type后面用is

二,Oracle数组类型或者说list类型

oracle有这样的一种方式,可以动态的将object变量添加到一个table变量中

create or replace type obj_type as object(id number,name varchar2(50 byte),birthday date);create or replace type table_type as table of obj_type;declarev_table table_type:=table_type();
beginv_table.extend;v_table(1):=obj_type(1,'lipiao',to_date('19970807','yyyymmdd'));v_table.extend;v_table(2):=obj_type(2,'cc',to_date('19951018','yyyymmdd'));for item in (select * from table(v_table)) loopdbms_output.put_line('id:'||item.id||',name:'||item.name||',birthday:'||item.birthday);end loop;
end;

这种方式需要每次先extend方法扩展一个object,然后给object赋值。

这种方法可以将table变量转换成游标。

 

下面这种方式可以自动扩展object,在19c版本测试可以使用,11g不行

declare
type obj_type is record(student_id number,student_name varchar2(20 byte),student_birthday date);
type table_type is table of obj_type index by binary_integer;
student_table table_type:=table_type();
student obj_type;
i number;
beginstudent_table.student_id:=100;student_table.student_name:='lipiao';student_table.student_birthday:=to_date('19970807','yyyymmdd');
student_table(1):=student;
student_table.student_id:=200;student_table.student_name:='cc';student_table.student_birthday:=to_date('19951018','yyyymmdd');
student_table(2):=student;i:=student_talbe.first;
loopexit when i is null;dmbs_output.put_line(student_table(i).student_name);i:=student_table.next(i);
end loop;
end;

 

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

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

相关文章

Oracle/mysql查询语句的执行过程

执行顺序 from on join/pivot/unpivot(mysql没有pivot和unpivot) where group by having select distinct order by limit&#xff08;oralce没有&#xff09; 书写顺序 select distinct <select_list> from <left_table> <join_type>join <righ…

mysql定时sql脚本_定时执行的SQL脚本

因为要同步一个表&#xff0c;所以每天要同步一次数据&#xff0c;但是对SQL不是精通的我&#xff0c;为了测试写了一段代码来测试定时功能创建一个存储过程&#xff0c;是用来插数据的&#xff0c;没有输出和输出参数create or replace procedure temp_pro asbegininsert into…

mysql xml语句_Mysql语句

xml文件转义字符处理(1)(2)直接写转义后的字符1、mysql里批量修改表内某个字段内的部分数据UPDATE inventory_stockSET batchno REPLACE(batchno,-20-201901,-50-2019)2、ON DUPLICATE KEY UPDATE根据主键判断是新增还是修改(也可以有两个或多个主键)INSERT INTO TABLE (a,c) …

destoon网站mysql分表_destoon : 常用数据库操作

destoon在初始化系统后系统会自动连接数据库&#xff0c;并将数据库操作对象保存在$db。对于数据库操作方法参考include/db_mysql.class.php函数原型&#xff0c;我来写几个常用数据库操作。1、读取单条信息$S $db->get_one("SELECT * FROM {$DT_PRE}table WHERE xxxy…

delphi7 mysql控件_Delphi7连接MySql数据库-DBGrid控件显示数据

一个简单的Delphi7小程序&#xff0c;使用MySql数据库做简单查询&#xff0c;用DBGrid控件显示结果&#xff0c;实现过程如下&#xff1a;(1)在MySql中新建demouser表&#xff0c;插入记录用于测试。(2)在Delphi7中新建项目。(3)在From中添加组件。组件Panel&#xff1a;pnl1组…

for循环false 终止 python_python3.5.1给用户3次无效的尝试,然后终止pgm(Simple FOR循环)...

我需要帮助(新生-2周)。我想得到这段代码可能的最微小的变化&#xff0c;允许用户3次在程序中输入错误的值。输入错误值3次后&#xff0c;程序应终止。唯一的要求是代码必须包含FOR循环。我不知道它是需要一个FOR循环还是3个FOR循环(每次转换一个)。我尝试了很多种方案&#xf…

mysql何时会走索引

访问类型&#xff0c;这里只列出最常见的6种类型 all,index,range,ref,eq_ref&#xff0c;const mysql中explain的type的解释_dennis211的博客-CSDN博客_explain type 使用不同的运算符时访问类型不一样&#xff1a; !、not in、<>、>、<、in(多个值)、or、bet…

mysql数据库唯一性_在MySQL数据库中添加唯一性约束,范围可能吗?

我有一个使用MySQL的Rails应用程序。我在两个模型之间有一个has_many :through关联&#xff0c;如下所述&#xff1a;class Category < ActiveRecord::Basehas_many :category_pairingshas_many :dishes, through: :category_pairings, :inverse_of > :categoriesendclas…

filtic函数 matlab_matlab filtic 函数应用 filter 解差分方程 dft 函数

matlab filtic 函数应用 filter 解差分方程 dft 函数一、 解差分方程说明都在代码注释里面了%这里要利用filtic函数 为滤波器的直接II型实现选择初始条件%求解查分方程 y(n) - 0.4y(n-1) - 0.45y(n-2) 0.45x(n) 0.4x(n-1) - x(n-2)%y(-1) 0 y(-2) 1 x(-1) 1 x(-2) 2%x(n)…

rabbitmq进阶一

上一篇文章有讲到rabbitmq的安装、web管理端和springboot简单集成rabbitmq 本文重点介绍rabbitmq相关api的使用 按照官网常用的五种模式的顺序&#xff1a;HelloWorld、Work queues、Publish/Subscribe、Routing、Topics 模式简单介绍 HelloWorld 一个生产者&#xff0c;一…

mysql 相关搜索_MySQL单词搜索相关度排名

一个单词搜索的相关度排名,这个例子演示了一个单词搜索的相关度排名计算。mysql> CREATE TABLE articles (-> id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,-> title VARCHAR(200),-> body TEXT,-> FULLTEXT (title,body)-> ) ENGINEInnoDB;Query O…

IDEA使用总结

idea中使用tomcat IntelliJ IDEA配置Tomcat&#xff08;完整版图文教程&#xff09;_猿Bug的博客-CSDN博客_intellij tomcat配置 用上面的方式发现缺少文件&#xff0c;在edit configuration页面选择before lanuch前选择Run maven goal package

mysql一直copying to tmp table_mysql提示Copying to tmp table on disk

网站运行的慢了&#xff0c;查找原因是Copying to tmp table on disk那怎么解决这个问题呢解决一例最近常常碰到网站慢的情况&#xff0c;登陆到后台&#xff0c;查询一下 /opt/mysql/bin/mysqladmin processlist;发现一个查询状态为&#xff1a; Copying to tmp table 而且此查…

idea cloud bootstrap是啥_application.yml与bootstrap.yml的区别

Spring Boot 默认支持 properties(.properties) 和 YAML(.yml .yaml ) 两种格式的配置文件&#xff0c;yml 和 properties 文件都属于配置文件&#xff0c;功能一样。Spring Cloud 构建于 Spring Boot 之上&#xff0c;在 Spring Boot 中有两种上下文&#xff0c;一种是 bootst…

python读取日期_从文件中读取日期和数据(Python)

我想从文件中读取时间字符串和数据&#xff0c;但是当我使用loadtxt时&#xff0c;我不能同时读取字符串和数字&#xff0c;因为字符串不是浮点型的。所以我尝试使用genfromtxt并使用delimiter[][][]作为我所拥有的列&#xff0c;但是字符串的读起来像nan。我希望像时间数组(da…

一个小白如何创建MYSQL数据表_MySQL小白扫盲(二)--建表、添加、查询

1.SELECT子句字句名称          使用目的select           确定结果集中应该包含哪些列from           指明所要提取数据的表&#xff0c;以及这些表示如何连接的where           过滤掉不需要的数据group by         用于…

元数据解决分表不可 mysql_MySQL InnoDB技术内幕:内存管理、事务和锁

前面有多篇文章介绍过MySQL InnoDB的相关知识&#xff0c;今天我们要更深入一些&#xff0c;看看它们的内部原理和机制是如何实现的。一、内存管理我们知道&#xff0c;MySQl是一个存储系统&#xff0c;数据最后都写在磁盘上。我们以前也提到过&#xff0c;磁盘的速度特别是大容…

navicat for mysql 13_Navicat for MySQL下载

Navicat for MySQL 是一套管理和开发 MySQL 或 MariaDB 的理想解决方案。它使你以单一程序同时连接到 MySQL 和 MariaDB。这个功能齐备的前端软件为数据库管理、开发和维护提供了直观而强大的图形界面。它提供了一组全面的工具给 MySQL 或MariaDB 新手&#xff0c;同时给专业人…

mysql 日期型中文报错_mysql日期类型默认值'0000-00-00' 报错,是什么问题?

如题&#xff0c;本来是 从另一个数据库中导出的sql文件&#xff0c;在我电脑上导入报这个错误&#xff0c;不知道是不是mysql 版本问题。多方搜索无果&#xff0c;所以上来求助。DROP TABLE IF EXISTS workreport_member;CREATE TABLE workreport_member (uid int(10) unsigne…

python在线作业_南开大学20春学期《Python编程基础》在线作业参考答案

南开大学20春学期(1709、1803、1809、1903、1909、2003)《Python编程基础》在线作业试卷总分:100 得分:98一、单选题(共20 道试题,共40 分)1.已知“stra\rb\r\nc\n”,则“str.splitlines()”的返回结果是( )。A.[a,b,c]B.[a\r,b\r\n,c\n]C.[a\r,b\r,c]D.[a\r,b,c]答案:A2.已知“…