易截截图软件、单文件、免安装、纯绿色、仅160KB

ORACLE 表函数

从oracle 9i 开始,提供了一个叫做“管道化表函数”的概念,可以利用管道化来返回表函数。
但这种类型的函数,必须返回一个集合类型,且标明 pipelined以及不能返回具体变量,而是以一个空 return 返回!
这个函数中,通过 pipe row () 语句来送出要返回的表中的每一行
在调用这个函数的时候,通过 table() 关键字把管道流仿真为一个数据集!
见下面示例:
1、建立一个三列的对象:
create or replace type rowType_CustOrd_Line is object(order_no varchar2(12),line_no varchar2(4),rel_no varchar2(4));
2、建立table对象
create or replace type tabType_CustOrd_Line is table of rowType_CustOrd_Line;
3、建立包头:
CREATE OR REPLACE PACKAGE Dj_Test_API IS
module_  CONSTANT VARCHAR2(25) := 'FNDBAS';
lu_name_ CONSTANT VARCHAR2(25) := 'DjTest';
Function Get_Customer_Order_Line(
 order_no_                IN VARCHAR2
)
return tabType_CustOrd_Line pipelined;
END Dj_Test_API;
/
4、建立包体:
CREATE OR REPLACE PACKAGE BODY Dj_Test_API IS
Function Get_Customer_Order_Line(
 order_no_                IN VARCHAR2
)
return tabType_CustOrd_Line pipelined as row_ rowType_CustOrd_Line;
begin
for custOrdRow in (select t.order_no, t.line_no,t.rel_no
                  from customer_order_line t
                  where t.order_no=order_no_) loop
   row_ := rowType_CustOrd_Line(custOrdRow.order_no, custOrdRow.line_no,custOrdRow.rel_no);
   pipe row (row_);
end loop;
return;
END Get_Customer_Order_Line;
------------------------------------------------------------------------    
END Dj_Test_API;
/
5、利用 table() 关键字把管道流仿真为一个数据集:
select * from table(Dj_Test_API.Get_Customer_Order_Line('M200800177'


相关文档:

Oracle存储过程,函数。

--在应用程序中往往有些固定的数据库操作,我们常常为致谢固定的操作定义了一些存储过程。这些存储过程不仅
--可以简化客户端的应用程序的开发和维护。而且还可以提高应用的运行性能。
-- 创建存储过程的语法。
create [or replace] procedure <过程名>[(参数)]
is|as
[局部变量声明]
begin
......

Oracle触发器

--创建触发器(行级触发器)
create or replace trigger tri_update_emp_bak
after update
on emp_bak
for each row --每更新一行 就触发一次
begin
--oracle 里面 对触发器 也提供了特殊的对象 :NEW :OLD 来访问 更新前后的数据

dbms_output.put_line('更新后' || :NEW.sal);
dbms_outpu ......

Exam : Oracle 1Z0 051

Exam : Oracle 1Z0-051
Title : Oracle Database: SQL Fundamentals I
1. View the Exhibit to examine the description for the SALES table.
Which views can have all DML operations performed on it? (Choose all that apply.)
A. CREATE VIEW v3
AS SELECT * from SALES
WHERE cust_id = 2034
WITH CHECK OPTI ......

Oracle 11g 忘记用户名密码解决办法(转)

情况描述:安装时选择的自动安装,由于时间久远忘记用户名、密码了,导致现在试了几个默认的用户名密码后,都提示无效的用户名、密码。
解决方法:启动SQLPLUS,提示输入用户名,然后输入sqlplus/as sysdba,密码为空。提示连接到信息,连接成功!
执行alter user sys identified by 密码;
设置成功!
现在可以从Enterp ......

110个oracle常用函数总结

1. ASCII
返回与指定的字符对应的十进制数;
SQL> select ascii(A) A,ascii(a) a,ascii(0) zero,ascii( ) space from dual;
A A ZERO SPACE
--------- --------- --------- ---------
65 97 48 32
2. CHR
给出整数,返回对应的字符;
SQL> select chr(54740) zhao,chr(65) chr65 from dual;
ZH C
-- ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号