create table questionType(
qid int primary key,
typename varchar2(200) not null
)
求助添加的一个存储过程,我从前台传一个字符串值过来,要添加到这个表里面去,是js和存储过程直接交互的值:"1|'组织'|"我不知道在存储过程中怎么去切割字符串.
qid int primary key,
typename varchar2(200) not null
)
求助添加的一个存储过程,我从前台传一个字符串值过来,要添加到这个表里面去,是js和存储过程直接交互的值:"1|'组织'|"我不知道在存储过程中怎么去切割字符串.
解决方案 »
- suse 下oracle11g乱码
- oracle11g 导入dmp
- 在WIN2003(SP2)安装oracle10g的客户端,networkk/admini下无tnsnames.ora、listener.ora
- ”全局数据库名称“与”数据库SID“
- 智能机器人5天发贴20万,囊括1783支上市股票所有的全部详细信息和在线实时分析图表,你厉害还是机器人厉害?
- select 中的 for update 的问题,在线等待急急急急!!!!
- 受不了了,求高手给出一个简单触发器的代码,小弟拜谢
- 如何写一条SQL语句?
- 找不到proc
- 怎么取出oracle clob里面的数据啊
- oracel 8.1.6 客戶端無法登陸
- 请各位帮忙,请求一个批量添加的存储过程,急
用instr的到分隔符的位置,然后用substr截取
as
qid int;
typename varchar2(100);
vsql varchar2(400);
beginqid:=substr(str,1,1);
typename:=substr(str,2,len(str)-1);
vsql:='insert into questionType(qid,typename) select '||qid||','''||typename|''' from dual';execute immediate vsql;
end test
此楼的方法报错啊?说没有len()
不过你的字符串到底是什么内容,如果是用'|'来分隔的话,那我的写法就不对了。
vi NUMBER;
varID VARCHAR2(200);
varName VARCHAR2(200);
BEGIN
vi := instr(i_str, '|', 1, 1); varID := substr(i_str, 1, vi - 1);
varName := substr(i_str, vi + 1); INSERT INTO questionType
SELECT varID, varName FROM dual;
COMMIT;
END;
select '1|02|003' val from dual
union all
select '01|002|0003' val from dual)
select substr(val,1,(instr(val,'|',1,1)-1)) val_One
,substr(val,(instr(val,'|',1,1)+1),((instr(val,'|',1,2)) - (instr(val,'|',1,1)) -1)) val_Two
,substr( val, (instr(val,'|',1,2)+1) , ((instr(val,'|',-1,1)) -1) ) val_Three
from tmp;