数据库课上布置了一个作业
利用PL/SQL语言,编写一个存储过程实现针对单张表的数据导出功能,要求将给定表的数据转换成SQL语言的Insert语句,并保存在文件中。该过程以要导出的表名和保存SQL语句的文件名为参数。
在网上尝试搜索了一下,中文网里没找到合适的参考文章,要么是针对特定表结构,要么是只导出特定数量的列,于是自己完成后写篇记录。
首先需要定义一个导出目录,这里定义了“EXPORT_DIR”
CREATE DIRECTORY EXPORT_DIR AS 'D:/';
然后创建存储过程,其中,BEGIN后的第一行有用到刚刚定义的导出目录,如果定义的导出目录与我不同,那么请修改这一行的导出目录。
CREATE OR REPLACE PROCEDURE EXPORT_CONT(
p_table_name VARCHAR2, -- table name
p_file_name VARCHAR2 -- filename
)
AS
l_cursor_handle INTEGER;
l_dummy NUMBER;
l_col_cnt INTEGER;
l_rec_tab DBMS_SQL.DESC_TAB;
l_current_col NUMBER(16);
l_current_line VARCHAR2(2047);
l_column_value VARCHAR2(300);
l_file_handle UTL_FILE.FILE_TYPE;
l_print_text VARCHAR2(100);
l_record_count NUMBER(16) := 0;