oracle存储过程中式用集合做参数 150
有个表tb_test,字段test1,test2,test3想在java端传个list到一个存储过程list.add('v1,v2,v3');list.add('a1,a...
有个表tb_test,字段test1,test2,test3
想在java端传个list到一个存储过程
list.add('v1,v2,v3');
list.add('a1,a2,a3');
在储存过程中循环这个list,然后通过逗号分隔,循环插入.类似
insert tb_test values('v1','v2','v3');
insert tb_test values('a1','a2','a3');
这个能实现吗,该怎么写? 展开
想在java端传个list到一个存储过程
list.add('v1,v2,v3');
list.add('a1,a2,a3');
在储存过程中循环这个list,然后通过逗号分隔,循环插入.类似
insert tb_test values('v1','v2','v3');
insert tb_test values('a1','a2','a3');
这个能实现吗,该怎么写? 展开
展开全部
可以取,用substr函数和instr函数共同实现,但是实现起来不是太容易,费了好大劲给你取了v1和v2,那个v3你自己照个写一写吧,全当自己学习了
select substr('v1,v2,v3',1,instr('v1,v2,v3',',',1,1)-1) from dual;
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 dual;
这两句在oracle中可直接运行,其中'v1,v2,v3'你可以用某个字段来代替
select substr('v1,v2,v3',1,instr('v1,v2,v3',',',1,1)-1) from dual;
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 dual;
这两句在oracle中可直接运行,其中'v1,v2,v3'你可以用某个字段来代替
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
ZESTRON
2024-09-04 广告
2024-09-04 广告
在Dr. O.K. Wack Chemie GmbH,我们高度重视ZESTRON的表界面分析技术。该技术通过深入研究材料表面与界面的性质,为提升产品质量与可靠性提供了有力支持。ZESTRON的表界面分析不仅涵盖了相变化、化学反应、吸附与解吸...
点击进入详情页
本回答由ZESTRON提供
展开全部
1、为什么要在oracle存储过程中循环list呢,java中循环list连接出【insert tb_test values('v1','v2','v3');】这样的字符串后,再执行它岂不是方便很多。
2、虽然oracle的功能很强大,但是有时候用应用程序很简单就能解决的问题还是用应用程序来的快些,用java循环list要比用存储过程循环list方便的多哦。
---
以上,希望对你有所帮助。
2、虽然oracle的功能很强大,但是有时候用应用程序很简单就能解决的问题还是用应用程序来的快些,用java循环list要比用存储过程循环list方便的多哦。
---
以上,希望对你有所帮助。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该实现不了,存储过程调用的oracle里面,
你只能用到oracle 里面的对象。
你只能用到oracle 里面的对象。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
22.批量执行SQL和存储过程
//import java.sql.*;
Connection conn = null;
PreparedStatement pst = null;
CallableStatement cs = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url = "jdbc:oracle:thin:@localhost:1521:huapu"; // orcl为数据库的SID
conn = DriverManager.getConnection(url,%%2,%%3);
cs = conn.prepareCall("{call abc(?,?}");
pst = conn.prepareStatement("Insert Into grade(%%1) Values (?)");
pst.setString(1, "");
// pst.setInt(2,%%2);
pst.addBatch();
pst.executeBatch();
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (pst != null)
pst.close();
if (cs != null)
cs.close();
if (conn != null)
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//import java.sql.*;
Connection conn = null;
PreparedStatement pst = null;
CallableStatement cs = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url = "jdbc:oracle:thin:@localhost:1521:huapu"; // orcl为数据库的SID
conn = DriverManager.getConnection(url,%%2,%%3);
cs = conn.prepareCall("{call abc(?,?}");
pst = conn.prepareStatement("Insert Into grade(%%1) Values (?)");
pst.setString(1, "");
// pst.setInt(2,%%2);
pst.addBatch();
pst.executeBatch();
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (pst != null)
pst.close();
if (cs != null)
cs.close();
if (conn != null)
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询