工作中常需要经过一段复杂逻辑处理后,得出的一个结果集.并能够将这个结果集作为一个表看待,去进行关联查询 我一般采用建立函数function的方式来处理. --创建包,声明function和typeCREATE OR REPLACE PACKAGE PAK_TEM AS TYPE DATE_RECORD IS RECORD --自定义类型-行(含字段及类型) ( NAME ), VALUE ) ); TYPE DATE_TABLE IS TABLE OF DATE_RECORD; --自定义tab
首先是写一个分割字符串的函数,返回table类型 CREATE OR REPLACE FUNCTION fn_split (p_str IN VARCHAR2, p_delimiter IN VARCHAR2)RETURN ty_str_splitIS j INT := 0; i INT := 1; len INT := 0; len1 INT := 0; str VARCHAR2 (4000); str_split ty_str_split := ty_st
使用存储过程中,最常用的莫过于查询数据表,并返回结果集. 在SQL SERVER 中,这类操作最简单,通过简单的select * from xx 即可完成.但是在Oracle中并不支持这种写法,那么我们怎么实现跟SQL SERVER同样的功能呢?且看以下代码: create or replace procedure sp_getdept (rep_type in varchar2,sel in varchar2,result out sys_refcursor) as seq ); info )
该函数实现过滤前后的指定的字符串,诸如过滤分隔符等.可用于过滤字符串中的逗号分割符.特别说明:substr()函数支持从字符串倒数开始读取,例如: dbms_output.put_line( substr('Hello World',-3,3)); 执行结果:rld --过滤字符串前后的多疑字符,诸如过滤字符串前后的多余逗号 Function Fn_DislodgeSplitChar( P_FacultyList In Varchar2 Default '', P_FacultyChar In
declare @str varchar(100),@sql varchar(1000)set @str='1,2,3,4,5,6,7,8,9,10'set @sql='select Value='''+ replace(@str,',',''' union all select ''')+''''PRINT @sqlexec (@sql) if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_spli
inData='12345|张三|男' SELECT REGEXP_SUBSTR (inData, '[^|]+', 1,1) into 用户ID FROM DUAL;SELECT REGEXP_SUBSTR (inData, '[^|]+', 1,2) into 用户姓名 FROM DUAL;SELECT REGEXP_SUBSTR (inData, '[^|]+', 1,3) into 性别 FROM DUAL;
function Split(szFullString, szSeparator) local nFindStartIndex = local nSplitIndex = local nSplitArray = {} while true do local nFindLastIndex = string.find(szFullString, szSeparator, nFindStartIndex) if not nFindLastIndex then nSplitArray[nSplitInd
CREATE OR REPLACE PACKAGE pkg_test AS TYPE myrctype IS REF CURSOR; PROCEDURE get (p_id NUMBER, p_rc OUT myrctype); END pkg_test; -------------------------------------------------------------------CREATE OR REPLACE PACKAGE BODY pkg_test AS
<script type="text/javascript"> var str='liu jin yu'; var str1=str.split(' '); document.write(str1+'</br>'); document.write(str1[1]+'</br>'); var str2=str.split(' ',1); document.write(str2+"</br>") </script&g
可以通过返回 Refcursor 类型的函数,或者out 类型的函数或 procedure 返回结果集. 一.返回refcursor 类型的函数 create or replace function f_get_set(refcursor,refcursor) returns setof refcursor as $$ begin open $1 for select * from t1; return next $1; open $2 for select * from t1; return