0

我试图根据表名的长度在 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 函数有什么问题吗?

4

0 回答 0