【发布时间】:2021-05-03 19:07:54
【问题描述】:
以下是获取 DDL 或过程并使其漂亮的命令:
EXEC DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM , 'PRETTY' , TRUE);
SELECT DBMS_METADATA.GET_DDL('PROCEDURE', UPPER('LOOPPROC'), 'MYSCHEMA') FROM DUAL;
这是与输入完全相同的输出,就像上面将 PRETTY 设置为 FALSE 一样。
CREATE OR REPLACE EDITIONABLE PROCEDURE "MYLANID"."LOOPPROC" (inval NUMBER)
IS
tmpvar NUMBER;
tmpvar2 NUMBER;
total NUMBER;
BEGIN
tmpvar := 0;
tmpvar2 := 0;
total := 0;
FOR lcv IN 1 .. inval
LOOP
total := 2 * total + 1 - tmpvar2;
tmpvar2 := tmpvar;
tmpvar := total;
END LOOP;
IF inval = 1 THEN
DBMS_OUTPUT.put_line ('IN IF TRUE branch, inval = ' || inval);
DBMS_OUTPUT.put_line ('IN IF TRUE branch, inval is still = ' || inval);
ELSE
DBMS_OUTPUT.put_line ('IN ELSE, inval = ' || inval);
END IF;
DBMS_OUTPUT.put_line ('TOTAL IS: ' || total);
END loopproc;
注意 IF - THE - ELSE 子句如何像 Snake River 一样缩进。
有没有办法让程序更常规地缩进?
【问题讨论】: