0

理解したい奇妙なことがあります

このコードがあるとしましょう:

DECLARE
a varchar2(6);

BEGIN
  a := '000001';
END;

これはうまくいきます。問題ない

今、私たちはこれを持っています:

DECLARE
a varchar2(6);

BEGIN
  a := TO_CHAR(1, '000000');
END;

それは動作しません:

ORA-06502: PL/SQL: 数値または値のエラー: 文字列バッファが小さすぎます

なぜ?

nls_language に問題があるのでしょうか? 何の問題?何の解決策?

ありがとうございました

4

3 に答える 3

1

または、単に `LTRIM' を使用してください:

SQL> set serveroutput on;
SQL> DECLARE
  2    a VARCHAR2(6);
  3  BEGIN
  4    A := LTRIM(TO_CHAR(1, '000000'));
  5    dbms_output.put_line(a);
  6  END;
  7  /
000001

PL/SQL procedure successfully completed.

SQL>
于 2014-09-25T08:48:25.270 に答える