我试图根据表名的长度在 DBMS 输出行中保留一定数量的空格……但我在实际工作时遇到了问题。
在我的循环中,我有:
FOR CurrentRow IN TablesSelected LOOP
wLengthOfTable := LENGTH(CurrentRow.Table_Name);
wLeftPadTableName := LPAD('); -- ', wLengthOfTable, ' ');
DBMS_OUTPUT.PUT_LINE( '-- Start extracting table ' || CurrentRow.Table_Name);
DBMS_OUTPUT.PUT_LINE('CREATE TABLE ' || CurrentRow.Table_Name || ' ( ');
Extract_Columns(CurrentRow.Table_Name);
DBMS_OUTPUT.PUT_LINE(wLeftPadTableName || 'END of Table ' || CurrentRow.Table_Name || ' creation');
DBMS_OUTPUT.PUT_LINE( '--' );
DBMS_OUTPUT.PUT_LINE( '--' );
END LOOP;
但它输出到这样的报告:
-- 开始提取表 PRODUCTS
CREATE TABLE PRODUCTS (
, MFR
, PRODUCT
, DESCRIPTION
, PRICE
, QTYONHAND
PRODUCTS); -- 表 PRODUCTS 创建结束
当我需要它看起来像(*应该是空格)时:
-- 开始提取表 PRODUCTS
CREATE TABLE PRODUCTS (
, MFR
, PRODUCT
, DESCRIPTION
, PRICE
, QTYONHAND
**********************); -- 表 PRODUCTS 创建结束
有人知道我的 LENGTH 函数或 Lpad 函数有什么问题吗?