oracle substr函数用法
oracle怎么取字段前三位?
oracle怎么取字段前三位?
oracle取字段前三位:
select substr(string,1,3) from table
Oracle提前某数据的前几位可用substr函数。substr函数介绍:
语法:
substr(string,start,length)
参数:
string - 指定的要截取的字符串
start - 必需,规定在字符串的何处开始
正数 - 在字符串的指定位置开始
负数 - 在从字符串结尾的指定位置开始
0 - 在字符串中的第一个字符处开始
length - 可选,指定要截取的字符串长度,缺省时返回字符表达式的值结束前的全部字符。
Oracle拆分字符串函数有哪些呢?
select Substr(字段,1,INSTR(字段,/)-1) from 表名eg:select Substr(sdhfuiasdh/asdfsadf,1,INST(sdhfuiasdh/asdfsadf,/)-1) from HelloWord
oracle端怎么把字符串分割成数组?
(1)定义split_type类型:CREATE OR REPLACE TYPE split_type IS TABLE OF VARCHAR2 (4000) / (2)定义split函数:
CREATE OR REPLACE FUNCTION split (p_str IN VARCHAR2, p_delimiter IN VARCHAR2) RETURN split_type IS j INT : 0 i INT : 1 len INT : 0 len1 INT : 0 str VARCHAR2 (4000)
my_split split_type : split_type ()
BEGIN len : LENGTH (p_str) len1 : LENGTH (p_delimiter) WHILE j lt len LOOP j : INSTR (p_str, p_delimiter, i) IF j 0 THEN j : len str : SUBSTR (p_str, i)
my_split.EXTEND my_split (my_) : str IF i gt len THEN EXIT END IF ELSE str : SUBSTR (p_str, i, j - i) i : j len1 my_split.EXTEND my_split (my_) : str END IF END LOOP RETURN my_split END split / (3)存储过程中,使用类似 For T In ( select a,b,c,d from table (split(#391,2,3,4#39,#39,#39)) ) Loop --注意下面的inserti语句,varchar类型的值需要补充引号上去 Execute Immediate #39 insert into tableName set fieldName #39||T.a Execute Immediate #39commit#39 End Loop 的查询语句,把分开的结果拼成sql语句并写入到表中。