PL/SQL表---table()函数用法

原创 2007年09月18日 12:52:00
*

PL/SQL表---table()函数用法:
利用table()函数,我们可以将PL/SQL返回的结果集代替table。

simple example:

1、table()结合数组:

*/

create or replace type t_test as object(
id integer,
rq date,
mc varchar2(60)
);

create or replace type t_test_table as table of t_test;

create or replace function f_test_array(n in number default null) return t_test_table
as
v_test t_test_table := t_test_table();
begin
for i in 1 .. nvl(n,100) loop
v_test.extend();
v_test(v_test.count) := t_test(i,sysdate,'mc'||i);
end loop;
return v_test;
end f_test_array;
/

select * from table(f_test_array(10));

/*

2、table()结合PIPELINED函数:

*/

create or replace function f_test_pipe(n in number default null) return t_test_table PIPELINED
as
v_test t_test_table := t_test_table();
begin
for i in 1 .. nvl(n,100) loop
pipe row(t_test(i,sysdate,'mc'||i));
end loop;
return;
end f_test_pipe;
/

select * from table(f_test_pipe(20));

/*

3、table()结合系统包:

*/

create table test (id varchar2(20));
insert into test values('1');
commit;
explain plan for select * from test;
select * from table(dbms_xplan.display);
 

pl/sql表类型

定义记录表(或索引表)数据类型。它与记录类型相似,但它是对记录类型的扩展。它可以处理多行记录,类似于高级中的二维数组,使得可以在PL/SQL中模仿数据库中的表。  定义记录表类型的语法如下:  ...
  • HelloCqk1
  • HelloCqk1
  • 2016年06月28日 22:57
  • 491

PL/SQL函数的传入参数名称要规范,不能和函数内使用到的表的字段名称一样,否则会出错(带例子)

参数的命名规范是需要注意的,否则PL/SQL体可能会出错。
  • suding3
  • suding3
  • 2016年10月26日 12:16
  • 599

pl/sql 过程、函数

pl/sql中proceduce过程与func函数均为一个程序块,是为完成特定功能的pl/sql语句集。并可接受三种类型的参数。 相同点在于: 1.均可使用out类型参数返回值。 2.均由声明、执行和...
  • Alexander_Frank
  • Alexander_Frank
  • 2016年04月11日 15:05
  • 715

使用PL/SQL Developer工具来实现创建表空间、创建数据库、备份数据库、数据导出等操作

如何结合Sql脚本和PL/SQL Developer工具来实现创建表空间、创建数据库、备份数据库、数据导出等操作,然后实现Oracle对象创建、导入数据等操作,方便我们快速了解、创建所需要的部署Sql...
  • liyongjian12
  • liyongjian12
  • 2016年08月17日 09:19
  • 2768

恢复oracle中用pl/sql误删除drop掉的表

查看回收站中表 select object_name,original_name,partition_name,type,ts_name,createtime,droptime from recyc...
  • ls_kevin
  • ls_kevin
  • 2016年07月07日 09:02
  • 2070

PL/SQL简单使用——导入、导出数据表

使用PL/SQL导出、导入表在使用PL/SQL操作oracle数据库时,经常使用的一个操作就是将自己写的数据表导出,或者想把他人的数据表导入到自己的数据库中。虽然是很简单的操作,但自己之前一直出错,所...
  • suifengbanshui
  • suifengbanshui
  • 2017年05月18日 08:30
  • 3734

Oracle PL/SQL开发基础(第二十八弹:使用锁定)

记录锁定Oracle隐式地实现记录锁定。当执行INSERT、DELETE、SELECT FOR UPDATE时,将进行记录锁定。这种锁定又称为互斥锁,或者也称为排他锁(Exclusive Locks)...
  • lianjiww
  • lianjiww
  • 2017年08月07日 23:02
  • 326

PL/SQL Developer_如何快速获得表名或全部列名的文本形式

操作过程: 例1:以“逗号”格式获取“用户表名”的文本 使用scott登陆到PL/SQL Developer,在All objects框处找到Tables选项,右击看到“Copy comma sep...
  • xwnxwn
  • xwnxwn
  • 2016年11月29日 09:14
  • 1411

SQL_substr函数实验

原创作品,出自 “深蓝的blog” 博客,欢迎转载,转载时请务必注明出处,否则追究版权法律责任。 深蓝的blog:   【格式】 截取函数,可以实现提取字符串中指定的字符数 substr( strin...
  • huangyanlong
  • huangyanlong
  • 2014年10月10日 18:06
  • 4418

PL/SQL 基础---一些高阶用法

PL/SQL 基础—一些高阶用法 主要讨论PL/SQL中一些不常见的用法; 1.动态SQL有的时候我们希望游标对应的SQL是可以改变的,而不是在游标声明中指定,这时需要使用游标变量TYPE REF...
  • villare
  • villare
  • 2016年12月07日 13:34
  • 469
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PL/SQL表---table()函数用法
举报原因:
原因补充:

(最多只允许输入30个字)