此过程打印ASCII
字符串中每个字符的代码。
如果在 TOAD 中执行,它会打印这些 ASCII 代码:55 48 48 32 32 32 32 32 32 32 49
哪些是正确的。
如果通过SQLPLUS
在UNIX
服务器上执行并将输出假脱机DBMS_OUTPUT.PUT_LINE (v_String);
到文本文件,复制该输出并将其分配给 v_String 并在 TOAD 中执行该过程,我得到以下ASCII
代码55 48 48 9 32 32 49
。
为什么要用 9 替换 32 32 32 32 32。本质上是一个标签。
CREATE OR REPLACE PROCEDURE My_Test
AS
v_String VARCHAR2 (25);
BEGIN
v_String := RPAD ('700', 10) || '1';
-- v_String:='700 1';
DBMS_OUTPUT.PUT_LINE (v_String);
DBMS_OUTPUT.PUT_LINE ('');
FOR i IN 1 .. LENGTH (v_String)
LOOP
DBMS_OUTPUT.PUT_LINE (ASCII (SUBSTR (v_String, i, 1)));
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.PUT_LINE (SQLERRM);
END;