我需要导出某些表记录并将它们导入到具有相同结构的另一个模式中。首先,我创建了一个函数:
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。任何想法都会有所帮助......