在Oracle/SQL Service中通过Function返回Table

本函数用途:返回一个Table

在Oracle中实现,范例:

 1 --在Types中:
 2 create or replace type objTable as object
 3 (
 4   s_usercode varchar2(32767),
 5   s_username varchar2(32767)
 6 );
 7
 8 CREATE OR REPLACE TYPE tabTemp AS TABLE OF objtable;
 9
10
11 --在Function中:
12 --使用Pipeline管道函数和Pipe row()
13 create or replace function GetCSClient
14 (
15 /*
16 程式代号:GetCSClient
17 程式名称:
18 传入参数:
19 传回值:
20 备注:
21 范例:select * from table(GetCSClient(‘Shadowxiong‘));
22 版本变更:
23 xx.   YYYY/MM/DD   VER    AUTHOR         COMMENTS
24 01.   2015/08/28   1.00   Anne_Han       New Create
25 */
26   P_Usercode varchar2
27 )
28 return tabtemp PIPELINED
29 as
30   s_usercode varchar2(32767);
31   s_username varchar2(32767);
32   v          objtable;
33 begin
34   for myrow in (select CShortName,CEnglishName from mv_liclientbaseinfo order by CShortName)
35   loop
36     v:=objtable(myrow.CShortName, myrow.CEnglishName);
37     PIPE ROW (v);
38   end loop;
39
40   RETURN;
41
42 end GetCSClient;

在SQL Service中实现,范例:

 1 --在Function中:
 2 CREATE FUNCTION [dbo].[GetCSClient] (@USER_CODE NVARCHAR(30))
 3 RETURNS  @objTable  TABLE (ClientId nvarchar(15),CLIENTNAME nvarchar(150))
 4 AS
 5 BEGIN
 6     INSERT INTO @objTable(ClientId,CLIENTNAME)
 7     SELECT  CLIENTID,CLIENTNAME FROM CLIENT WITH(NOLOCK)
 8     ORDER BY CLIENTID
 9
10     RETURN
11 END
12
13 --调用Function
14 SELECT * FROM dbo.GetCSClient(‘shadowxiong‘)
时间: 2024-12-30 03:22:03

在Oracle/SQL Service中通过Function返回Table的相关文章

获取oracle sql语句中绑定变量值的方法

在诊断 sql的性能问题时,我们有时候需要获取其绑定变量的实际值,然后将此实际值带入到sql语句当中,用原来的sql构成select语句(带where条件),实际的执行一下,看一下选择性如何. 本文就是说获取其绑定变量值的方法.本文的编写得到枯荣长老的帮助,在此表示感谢. 本文适用于与oracle 10G或者更高版本的db. alter session set nls_date_format = 'yyyy-mm-dd,hh24:mi:ss'; set linesize 400 col sql_

db2和oracle sql 语句中计算两个时间差的语法

db2 sql语句中计算两个日期相差的语法 结束日期为:2015-10-10  11:30:00 开始日期为:2015-09-09  10:40:00 (1)timestampdiff(8,char(结束时间-开始时间) )(加时分秒计算,会舍去零数)值为744小时 (2)(days(结束时间)-days(开始时间))*24 +hour(结束时间)-hour(开始时间) (不加时分秒计算)值为745小时 (3)Days(结束日期)-days(开始日期)的值为31天 (4)Day(结束日期)-da

关于SQL语句中SUM函数返回NULL的解决办法

SUM 是SQL语句中的标准求和函数,如果没有符合条件的记录,那么SUM函数会返回NULL. 但多数情况下,我们希望如果没有符合条件记录的情况下,我们希望它返回0,而不是NULL,那么我们可以使用例如下面的方法来处理: SELECT COALESCE(SUM(name),0) FROM person WHERE id > 0   行了,这下就不用费事去处理返回结果是否为NULL的情况了. COALESCE 函数的意思是返回参数列表中第一个为空的值,该方法允许传入多个参数,该函数也是SQL中的标准

oracle sql语句中使用if逻辑

l在 SQL 语句中使用IF-THEN-ELSE 逻辑 l l使用两种方法: •CASE 表达式:SQL99的语法,类似Basic,比较繁琐 •DECODE 函数:Oracle自己的语法,类似Java,比较简介 1 SQL> select ename,job, sal, case job when 'PRESIDENT' then 1.1*sal 2 2 when 'MANAGER' then 1.2*sal 3 3 when 'CLERK' then 1.3*sal 4 4 else 1.4*

查询Oracle sql语句中绑定变量值的方法

alter session set nls_date_format = 'yyyy-mm-dd,hh24:mi:ss'; set linesize 400 col sql_Id format a20 col name format a20 col datatype_string format a14 col value_string format a20 select sql_id,name, datatype_string, last_captured,value_string from v$

mysql,oracle,sql server中的默认事务隔离级别查看,更改

未提交读(隔离事务的最低级别,只能保证不读取物理上损坏的数据) 已提交读(数据库引擎的默认级别) 可重复读 可序列化(隔离事务的最高级别,事务之间完全隔离) 可串行化比较严谨,级别高; MySQL mysql默认的事务处理级别是'REPEATABLE-READ',也就是可重复读 1.查看当前会话隔离级别 select @@tx_isolation; 2.查看系统当前隔离级别 select @@global.tx_isolation; 3.设置当前会话隔离级别 set session transa

Android Service 中 onStartCommand()函数返回值含义

onStartCommand()是由Android系统调用的,本质上也是调用了onStart()方法. onStartCommand()返回值有几种: 1)START_STICKY 英文解释: Constant to return from onStartCommand: if this service's process is killed while it is started (after returning from onStartCommand), then leave it in t

SQL service 中的 ”输入SQL命令窗口“ 打开了 “属性界面” 回到 ”输入SQL命令窗口“

输入SQL命令窗口点击上面的菜单栏中的 "窗口" 原文地址:https://www.cnblogs.com/lidar/p/8873890.html

在Oracle SQL Developer中创建新连接

步骤: 1.如下图 2.点击“测试”,如果左下角的状态出现“成功”,说明OK