【发布时间】:2020-09-27 19:00:33
【问题描述】:
好的,所以我正在尝试创建一个运行“编译”Oracle SQL 文件的批处理文件。 “编译”文件将有 2 个过程,其中一个将从我的模式中提取表,另一个将提取该表中的列。然后,我将从我的批处理文件(称为“RUN”)中运行另一个 Oracle SQL 文件,该文件将运行这些过程并创建一个 Oracle SQL 类型的输出文件。此输出 SQL 文件的格式必须正确,因为它是一个报告。我创建了批处理文件,还创建了显示表和列的 2 个过程。但到目前为止,我无法以输出与提供的图像匹配的方式创建“RUN”文件。The Output SQL file
这是编译文件中两个过程的代码
DROP PROCEDURE Extract_Columns;
SET SERVEROUTPUT ON
CREATE OR REPLACE PROCEDURE Extract_Tables
AS
BEGIN
FOR CurrentRow IN(
SELECT TABLE_NAME
FROM USER_TABLES)
LOOP
DBMS_OUTPUT.PUT_LINE(CurrentRow.table_name || ', ' );
extract_columns(CurrentRow.table_name);
END LOOP;
END;
/
Show ERRORS;
EXEC extract_tables;
SET SERVEROUTPUT ON
CREATE OR REPLACE PROCEDURE Extract_Columns(
iTable IN USER_TABLES.table_name%TYPE
)
AS
BEGIN
FOR CurrentRow IN ( SELECT COLUMN_NAME
FROM USER_TAB_COLUMNS
WHERE TABLE_NAME = iTable)
LOOP
DBMS_OUTPUT.PUT_LINE(CurrentRow.Column_Name || ', ' );
END LOOP;
END;
/
EXEC extract_columns;
这是上述程序的输出
CUSTOMERS,
CUSTNUM,
COMPANY,
CUSTREP,
CREDITLIMIT,
SALESREPS,
SALESREP,
NAME,
AGE,
REPOFFICE,
TITLE,
HIREDATE,
MANAGER,
QUOTA,
SALES,
OFFICES,
OFFICE,
CITY,
REGION,
MGR,
TARGET,
SALES,
ORDERS,
ORDERNUM,
ORDERDATE,
CUST,
REP,
MFR,
PRODUCT,
QTY,
AMOUNT,
PRODUCTS,
MFR,
PRODUCT,
DESCRIPTION,
PRICE,
QTYONHAND,
上述输出中的客户、办公室、订单、产品、销售代表是表格,每个表格后面的行是它们各自的列。我想要的只是把上面的输出转换成给定的图片。我应该如何实现这一目标?
【问题讨论】: