oracle 导出/导入数据

1.导出insert sql语句

将oracle表中数据以insert into 语句导出,存储过程实现

创建游标对象

create or replace package test.PK_EXPORT_TABLE  is  type result is ref cursor;end ;

创建存储过程

CREATE OR REPLACE PROCEDURE P_EXPORT_TABLE(v_table in varchar,
cresult out PK_EXPORT_TABLE.result 
) 
as
TYPE v_cur_tab_columns IS REF CURSOR;/*表各字段信息*/
v_tab_columns v_cur_tab_columns;
v_sql_columns varchar2(500);/*查询字段信息*/
v_column_infor user_tab_columns%rowtype; /*行字录各字段数型为USRE_TAB_COLUMNS*/
v_sqlstr_part_1 varchar2(200):='';/*存放形成sql的第一部分*/
v_sqlstr_part_2 varchar2(500):='';/*存放形成sql的第二部分*/
v_sqlstr_part_3 varchar2(4000):='';/*存放形成sql的第三部分*/
v_sql varchar2(5000):='';/*存放形成的sql*/
v_sqlneed varchar2(100):=','||''''||','||''''||','; /*形成在VALUES中的分隔符 ”, “ */
begin
v_sqlstr_part_1:='insert into '||upper(v_table)||' (';
/*查询表中各字段信息*/
v_sql_columns:='select * from user_tab_columns where table_name='||''''||UPPER(v_table)||''''||' AND data_type not in ('||''''||'BLOB'||''''||','||''''||'CLOB'||''''||') AND ROWNUM<20';
open  v_tab_columns for v_sql_columns;
loop
fetch v_tab_columns into v_column_infor;
exit when v_tab_columns%notfound;
/*用于形成insert into table (。。。)中的字段*/
    v_sqlstr_part_2:=v_sqlstr_part_2||v_column_infor.COLUMN_NAME||',';
    /*用于形成values (。。。)中的字段*/
    v_sqlstr_
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值