当前位置:首页 » 存储配置 » 存储过程instr

存储过程instr

发布时间: 2022-09-06 10:03:47

A. oracle存储过程 遍历字符串

不用循环不行么,一个sql就搞定啦

selectcfrom
(withtestas(select'21,32,43'cfromal)
selectsubstr(t.ca,instr(t.ca,',',1,c.lv)+1,instr(t.ca,',',1,c.lv+1)-(instr(t.ca,',',1,c.lv)+1))ASc
from(select','||c||','ASca,length(c||',')-nvl(length(REPLACE(c,',')),0)AScntFROMtest)t,
(<=100)cwherec.lv<=t.cnt)

'21,32,43' --这个你换成你要查的字符串,数字字母什么都可以,只要逗号分隔就好

B. 如何在存储过程里写模糊查询

存储过程里面可以写 SQL 语句, SQL 语句可以模糊查询。 So 存储过程 就这么写模糊查询 。

如果不是使用SQL语句的, 而是一个字符串变量的模糊查询的话。

使用字符串搜索的函数来处理。

Oracle
INSTR
4参数:
被检索字符串
检索的字符串
哪里开始(默认1)
找第几个(默认1)

SQL> SELECT
2 INSTR('easy come, easy go, so easy!', 'easy') A,
3 INSTR('easy come, easy go, so easy!', 'easy', 3) B,
4 INSTR('easy come, easy go, so easy!', 'easy', 3, 2) C
5 FROM
6 al;

A B C
---------- ---------- ----------
1 12 24

SQL Server
CHARINDEX
3参数
检索字符串
被检索字符串
哪里开始(默认1)
1> SELECT
2> CHARINDEX('easy', 'easy come, easy go, so easy!') A,
3> CHARINDEX('easy', 'easy come, easy go, so easy!', 3) B
4> go
A B
----------- -----------
1 12

MySQL
INSTR
MySQL INSTR只支持从第一个字符开始找第一个
LOCATE支持从指定位置开始找

mysql> SELECT
-> INSTR('easy come, easy go, so easy!', 'easy') A
-> //
+---+
| A |
+---+
| 1 |
+---+
1 row in set (0.00 sec)

mysql> SELECT
-> LOCATE ('easy', 'easy come, easy go, so easy!', 2) A
-> //
+----+
| A |
+----+
| 12 |
+----+
1 row in set (0.00 sec)

C. oracle 存储过程 判断字段中是否包含指定的字符,该怎么解决

比如半段字段col中是否好友字符"a"
instr(col,'a')>0表示包含 =0表示不包含

请采纳

D. 用存储过程循环判断传进来的数组中的某一项在数据中是否存在

createprocereoap_dect(
inoutp_arrayvarchar(255),#通过(,)分隔符传递数组
outp_resultvarchar(255)#返回信息
)
begin

declarev_douhaoint(10)default0;
declarev_resultint(10)default0;
declarev_countint(10)default0;
declarev_datavarchar(255)default'';
declarev_data_infovarchar(40)default'';

setv_douhao=instr(v_data,',');
while(v_douhao>=1)
do
setv_count=v_count+1;
setv_data_info=substring(v_data,1,v_douhao-1);

selectcount(*)
intov_result
fromtable_name
wherefield_name=v_data_info;
setp_result=p_result+1;

setv_data_str=substring(v_data,v_douhao+1);
setv_fenhao=instr(v_data_str,',');
endwhile;
if(p_result<v_count)
setp_result=false;
else
setp_result=true;
endif;
end

E. Oracle 变长参数的存储过程能实现吗

'不限定输入的参数个数'
是不可能的,不过如果你想实现这样可变入参个数的效果,可以变通一下。
比如:入参instr
varchar2类型(这个字符串是多个入参以固定分割符拼接而成的),传入存储过程后,在根据分隔符拆分成多个变量。
这样就可以实现你要的效果了。如果需要可变个数的出参,也可以这样做。
这只是个思路,如果有需要,还可以定义type等等。

F. Instr函数在oracle存储过程里怎么用

你测试的时候 写的是SELECT 还是SELECT INTO

还有 整个语句是否写在循环里面的,是否是死循环?

或者是在循环里面,但是记录数太多,需要执行很久。

G. 存储过程截取字符串循环

CREATE OR REPLACE PROCEDURE SP_VALUE(P_A1 IN VARCHAR2, P_A2 IN VARCHAR2) AS
V_NUM NUMBER;
V_A1 VARCHAR2(200);
BEGIN
---1,2,3,4
V_A1 := P_A1;
IF INSTR(P_A1, ',', 1, 1) <> 0 THEN
LOOP
INSERT INTO A
(A1, A2)
SELECT SUBSTR(V_A1, 1, INSTR(V_A1, ',', 1, 1) - 1), P_A2 FROM DUAL;
COMMIT;
V_A1 := SUBSTR(V_A1, INSTR(V_A1, ',', 1, 1) + 1);
SELECT INSTR(V_A1, ',', 1, 1) INTO V_NUM FROM DUAL;
IF V_NUM = 0 THEN
INSERT INTO A
(A1, A2)
SELECT V_A1, P_A2 FROM DUAL;
COMMIT;
EXIT;
END IF;
END LOOP;
END IF;
END SP_VALUE;

H. Oracle中怎样用存储过程将一段字符串以逗号为界截取,并将得到的子串存到另一张表中

I. oracle怎么用函数求一个存储过程的输入参数(是一个以,为分隔的字符串)的长度~! 急,不胜感激!

select substr(',' || a.exc,
instr(',' || a.exc, ',', 1, b.rn) + 1,
instr(a.exc || ',', ',', 1, b.rn) -
instr(',' || a.exc, ',', 1, b.rn)) exc
from (select 'a,b,c,d,e,f,g,h' exc from al t) A,
(SELECT ROWNUM RN FROM DUAL CONNECT BY ROWNUM < 20) B
where length(a.exc) - length(replace(a.exc, ',')) + 1 >= b.rn

J. oracle存储过程中式用集合做参数

可以取,用substr函数和instr函数共同实现,但是实现起来不是太容易,费了好大劲给你取了v1和v2,那个v3你自己照个写一写吧,全当自己学习了

select substr('v1,v2,v3',1,instr('v1,v2,v3',',',1,1)-1) from al;

select substr('v1,v2,v3',instr('v1,v2,v3',',',1,1)+1,(instr('v1,v2,v3',',',instr('v1,v2,v3',',',1,1)-1,2)-(instr('v1,v2,v3',',',1,1)+1))) from al;

这两句在oracle中可直接运行,其中'v1,v2,v3'你可以用某个字段来代替

热点内容
博越存储异常 发布:2025-01-11 01:24:31 浏览:916
我的世界还原中国服务器版图 发布:2025-01-11 01:18:45 浏览:382
pythonopenasfile 发布:2025-01-11 01:17:06 浏览:971
hbasejavaapi 发布:2025-01-11 01:11:09 浏览:744
我的世界pe版饥饿服务器 发布:2025-01-11 01:09:39 浏览:485
异构数据库数据同步 发布:2025-01-11 01:09:04 浏览:957
c语言三角波 发布:2025-01-11 01:02:11 浏览:78
php正则转义 发布:2025-01-11 01:00:03 浏览:691
手拉的箱包上的密码锁一般是多少 发布:2025-01-11 00:59:55 浏览:8
oppo手机系统更新密码是多少 发布:2025-01-11 00:56:55 浏览:87