将db记录从一个Oracle模式传输到另一个Oracle模式,并使用相同的结构生成插入语句脚本

时间:2016-06-03 11:00:16

标签: oracle plsql

我需要导出某些表记录并将它们导入到具有相同结构的另一个模式中。首先,我创建了一个函数:

    CREATE OR REPLACE FUNCTION GENERATE_INSERT_STATEMENTS (p_table_name VARCHAR2)
       RETURN VARCHAR2

生成sql查询,该查询执行返回生成的插入语句,其中使用了ID列值table_sequence.nextVal

我也创建了一个PLSQL程序:

CREATE OR REPLACE PROCEDURE export_query_res_to_file(p_sql IN VARCHAR2,
                                                     p_dir IN VARCHAR2,
                                                     p_file IN VARCHAR2                                    ) 

p_sql个查询结果写入p_file。因此,如果我们想为表table_a生成insert sql脚本,我们调用:

declare res nvarchar2(32767);
begin
  res:= GENERATE_INSERT_STATEMENTS('table_a');
  export_query_res_to_file(res,'MY_DIR','sql_script.txt');
  end;

这适用于独立表。但我不知道在一对多和多对多关系的情况下如何处理FK。任何想法都会有所帮助......

0 个答案:

没有答案