可以用DBMS_SQL这个包,是动态执行SQL语句的包
例子:
create or replace procedure single_Row_insert
(c1 number, c2 number, r out number) is
c number;
n number;
begin
c := dbms_sql.open_cursor;
dbms_sql.parse(c, 'insert into tab values (:bnd1, :bnd2) ' ||
'returning c1*c2 into :bnd3', 2);
dbms_sql.bind_variable(c, 'bnd1', c1);
dbms_sql.bind_variable(c, 'bnd2', c2);
dbms_sql.bind_variable(c, 'bnd3', r);
n := dbms_sql.execute(c);
dbms_sql.variable_value(c, 'bnd3', r); -- get value of outbind variable
dbms_Sql.close_Cursor(c);
end;
/
例子:
create or replace procedure single_Row_insert
(c1 number, c2 number, r out number) is
c number;
n number;
begin
c := dbms_sql.open_cursor;
dbms_sql.parse(c, 'insert into tab values (:bnd1, :bnd2) ' ||
'returning c1*c2 into :bnd3', 2);
dbms_sql.bind_variable(c, 'bnd1', c1);
dbms_sql.bind_variable(c, 'bnd2', c2);
dbms_sql.bind_variable(c, 'bnd3', r);
n := dbms_sql.execute(c);
dbms_sql.variable_value(c, 'bnd3', r); -- get value of outbind variable
dbms_Sql.close_Cursor(c);
end;
/
解决方案 »
- ora-30036 错误 怎么处理?
- 关于oracle字符串分割的问题
- 显示(Long value),怎么查看其内容
- [200分]在oracle中,如何把表结构和表数据生成xml格式!
- 买一套Oracle,是不是可以装多台服务器
- 从一个库中导出表结构,在导入到另外一个库中,命令如何写(着急)
- select to_date('22-FEB-98','DD-MON-YY') from dual;为什么不正确
- 如何使oracle只监听本地环路口,不监听以太网口
- 碰到一个奇怪的问题??
- 求sql语句
- 急:Oracle 的 ERP 能否执行 shell程序?分不够再加。
- 请问oracle 与 java一问题
for(...)
{
sprintf(sqlcmd,"insert into ......",sqlwhere);
mydatabase.modifysql(sqlcmd);
}
我觉得你的效果和我是一样的
在效率上差别有多大,呵呵,只是理论上的想找一个更好的方法
EXEC SQL FOR :totalcount INSERT INTO tollfee_switch (ticket_id,tariff_id,time_span_id,ccount,fee,part_id)
VALUES(:ticketid,:tariffid,:timespanid,:ccount,:fee,:partid);
EXEC SQL FOR :totalcount INSERT INTO tollfee_switch (ticket_id,tariff_id,time_span_id,ccount,fee,part_id)
VALUES(:ticketid,:tariffid,:timespanid,:ccount,:fee,:partid);
的句子,转化成
string sSql = "insert into table(colm) valuses(val)";;
sql.excute(sSql);
的形式,最好封装两个雷,一个重写proc,一个容器作输入输出参数用
这是思想,具体的就看你的了。