Oracle的一个字符串数据变为多行记录
--把p_string的值动态切分为表的行数据
create or replace type split_rec as object (
id varchar2(50),
userId varchar2(32767)
);
create or replace type split_tbl as table of split_rec;
CREATE OR REPLACE FUNCTION splitstr(id in varchar2,p_string IN VARCHAR2, p_delimiter IN VARCHAR2 := ',')
RETURN split_tbl PIPELINED
AS
v_length NUMBER := LENGTH(p_string);
v_start NUMBER := 1;
v_index NUMBER;
v_rec split_rec;
BEGIN
v_rec := split_rec(id,'');
WHILE(v_start <= v_length)
LOOP
v_index := INSTR(p_string, p_delimiter, v_start);
IF v_index = 0
THEN
v_rec.userId:=SUBSTR(p_string, v_start);
v_start := v_length + 1;
ELSE
v_rec.userId:=SUBSTR(p_string, v_start, v_index - v_start);
v_start := v_index + 1;
END IF;
PIPE ROW(v_rec);
END LOOP;
RETURN;
END splitstr;
--以下是测试SQL。
select x.*,u.name
from user u,
(
select r.*,x.userId
from item r
join table(splitstr(r.id,nvl(r.acol,r.
相关文档:
Oracle函数和mysql函数比较
1. Oracle中的to_number()转换成数字;
Oracle> Select to_number(‘123’) from dual; ----- 123;
&nbs ......
update :单表的更新不用说了,两者一样,主要说说多表的更新
Oracle> Oracle的多表更新要求比较严格,所以有的时候不是很好写,我们可以试试Oracle的游标
&n ......
mysql 大对象存取:
类型一般应该用mediumblod,
blob只能存2的16次方个byte,
mediumblod是24次方,
一般来说够用了.longblob是32次方有些大.
MYSQL默认配置只能存1M大小的文件,要修改配置,WIN版本的在mysql.ini文件中
修改max_allowed_packet,net_buffer_length等几个参数,或直接SET GLOBAL va ......
SQLServer和Oracle的常用函数对比
1.绝对值
S:select abs(-1) value
O:select abs(-1) value from dual
2.取整(大)
S:select ceiling(-1.001) value
O:select ceil(-1.001) value from dual
3.取整(小)
S:select floor(-1.001) value
O:select floor(-1.001) valu ......
Oracle笔记
l 关于TRUNC函数
SELECT
RELATED_ID ,
DOC_ID ,
CAT_ID ,
CAT_CODE ,
RELEASE_DATE ,
&n ......