³«È¯»þ¤ËȯÀ¸¤¹¤ë¥¨¥é¡¼

ORA-06502: PL/SQL: ¿ôÃͤޤ¿¤ÏÃͤΥ¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿ ¡Ê¤½¤Î£±¡Ë

  • NULL ¥Ç¡¼¥¿¤Î¼è¤ê°·¤¤¤¬ÉÔ½½Ê¬¤Î²ÄǽÀ­¤¬¤¢¤ë

ORA-06502 ¤È¿ôÃͤÎÁȤ߹ç¤ï¤»¤Î¾ì¹ç¤Ë¤è¤¯¤¢¤ë¥¨¥é¡¼¤¬ NULL ¤Î¥Ï¥ó¥É¥ê¥ó¥°¤¬ÉÔ­¤·¤Æ¤¤¤ë¤³¤È¤Ëµ¯°ø¤¹¤ë¥¨¥é¡¼¡£

Î㤨¤Ð°Ê²¼¤Î¥½¡¼¥¹¥³¡¼¥É¤Ç¥·¥ó¥×¥ë¤ËºÆ¸½¤Ç¤­¤ë¡£¤¿¤À¼ÂºÝ¤Î³«È¯¤Ç¤ÏÆñ²ò¤Ê½èÍý¤È NULL ¥Ç¡¼¥¿¤ÎÆÃ¼ìÀ­¤«¤é ¥Æ¥¹¥È¤ò¤¹¤êÈ´¤±¤ÆÉÔÀµ¤Ê¥Ç¡¼¥¿¤¬ÆþÎϤµ¤ì¤ë¤Þ¤Ç²¿»ö¤â¤Ê¤¯Ì²¤Ã¤Æ¤¤¤ë¤³¤È¤â¾¯¤Ê¤¯¤Ê¤¤¡£

  1. CREATE OR REPLACE PROCEDURE RIVUS.ORA_06502_NUM
  2. IS
  3. vStr VARCHAR2(10);
  4. BEGIN
  5. -- OK
  6. vStr := 'abc';
  7. FOR i in 1 .. LENGTH(vStr) LOOP
  8. DBMS_OUTPUT.PUT_LINE(SUBSTR(vStr,i,1));
  9. END LOOP;
  10.  
  11. -- NG
  12. vStr := NULL;
  13. FOR i in 1 .. LENGTH(vStr) LOOP   -- LENGTH(NULL) ¢ª NULL
  14. DBMS_OUTPUT.PUT_LINE(SUBSTR(vStr,i,1));
  15. END LOOP;
  16. END;
  17. /

¼Â¹Ô·ë²Ì

SQL> CALL ORA_06502_NUM();
a
b
c
CALL ORA_06502_NUM()
     *
¹Ô1¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£:
ORA-06502: PL/SQL: ¿ôÃͤޤ¿¤ÏÃͤΥ¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿
ORA-06512: "RIVUS.ORA_06502_NUM", ¹Ô14

ORA-06502: PL/SQL: ¿ôÃͤޤ¿¤ÏÃͤΥ¨¥é¡¼: ʸ»úÎó¥Ð¥Ã¥Õ¥¡¤¬¾®¤µ¤¹¤®¤Þ¤¹ ¡Ê¤½¤Î£²¡Ë

  • ¥×¥í¥·¡¼¥¸¥ã¤ÎÆþÎϥѥé¥á¡¼¥¿¤Î¥¹¥±¡¼¥ë¤òͤ¨¤¿Ê¸»úÎóŤòÂåÆþ¤·¤Æ¤¤¤ë¾ì¹ç¤ä¥×¥í¥°¥é¥à¤¬°Ü¿¢¤µ¤ì¤¿¤«¥­¥ã¥é¥¯¥¿¥»¥Ã¥È¤¬ÁÛÄꤷ¤Æ¤¤¤ë¤â¤Î¤È°ã¤¦¾ì¹ç¤ËȯÀ¸¤¹¤ë¡£

¿·¤·¤¤´Ä¶­¤Ë°Ü¿¢¤·¤¿¾ì¹ç¤Ê¤É¤Ë¤Ï¥­¥ã¥é¥¯¥¿¥»¥Ã¥È¤Î°ã¤¤¤Ë¤è¤êʸ»úÎóĹ¤Î¥Ð¥¤¥È¥µ¥¤¥º¤¬°Û¤Ê¤ë¤³¤È¤ÇȯÀ¸¤¹¤ë¡£
»²¹Í: ʸ»ú¥³¡¼¥É¡¦¥­¥ã¥é¥¯¥¿¥»¥Ã¥È ¡¿ NLS_LENGTH_SEMANTICS

¤³¤ÎÎã¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¥­¥ã¥é¥¯¥¿¥»¥Ã¥È¤¬ Shift-JIS ¤ÇºîÀ®¤µ¤ì¤¿¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ç¤Î¼Â¸³

  1. CREATE OR REPLACE PROCEDURE RIVUS.ORA_06502_CHAR
  2. IS
  3. vCharStr  VARCHAR2(1 CHAR);
  4. vByteStr  VARCHAR2(2);
  5. -- vByteStr  VARCHAR2(3);
  6. BEGIN
  7. vCharStr := 'ú­'; -- EUC 3 Byte Code
  8. DBMS_OUTPUT.PUT_LINE(lengthb(vCharStr) || '¥Ð¥¤¥È');
  9. DBMS_OUTPUT.PUT_LINE(vCharStr);
  10.  
  11. -- SJIS ¤Ç¤Ï 2¥Ð¥¤¥È ¤Ç¤¢¤ë¤¬ EUC ¤Ç¤Ï 3¥Ð¥¤¥ÈɬÍפˤʤë
  12. vByteStr := convert(vCharStr,'ja16euc');
  13. DBMS_OUTPUT.PUT_LINE(lengthb(vByteStr) || '¥Ð¥¤¥È');
  14. END;
  15. /

¼Â¹Ô·ë²Ì

SQL> CALL ORA_06502_CHAR();
2¥Ð¥¤¥È
ú­
CALL ORA_06502_CHAR()
     *
¹Ô1¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£:
ORA-06502: PL/SQL: ¿ôÃͤޤ¿¤ÏÃͤΥ¨¥é¡¼: ʸ»úÎó¥Ð¥Ã¥Õ¥¡¤¬¾®¤µ¤¹¤®¤Þ¤¹¡£¤¬È¯À¸¤·¤Þ¤·¤¿
ORA-06512: "RIVUS.ORA_06502_CHAR", ¹Ô12


´ØÏ¢»ö¹à

°ìÍ÷¥Ú¡¼¥¸¤ØÌá¤ë

OTN (Oracle Technology Network)¤Ë¤è¤ë¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Ë¤è¤ë¾ðÊó¤À¤±¤Ç¤Ï¡¢Âнè¤Ëº¤¤Ã¤¿¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Î¥×¥é¥¯¥Æ¥£¥¹¤Ç¤¹¡£
¥Ù¥¹¥È¡¦¥×¥é¥¯¥Æ¥£¥¹¤È¤¤¤¦¤ï¤±¤Ç¤Ï¤Ê¤¤¤Î¤Ç¡¢½ñ¤¤¤Æ¤¢¤ë¤³¤È¤Ë¸Ç¼¹¤·¤Ê¤¤¤Ç¹­¤¤»ëÌî¤Ç¥¨¥é¡¼Âбþ¤·¤Æ¤¯¤À¤µ¤¤¡£

¥¹¥Ý¥ó¥µ¡¼¥É ¥ê¥ó¥¯

IT¥¨¥ó¥¸¥Ë¥¢ ¥­¥ã¥ê¥¢¥¢¥Ã¥×¡¦Å¾¿¦¡¦µá¿Í¾ðÊó

Oracle & ITµ»½Ñ¼Ô ÀìÌç½ñ

¢£¹Í¤¨¤ëµ»½Ñ¡¦½ñ¤¯µ»½Ñ¡½ÌäÂê²ò·èÎϤò¿­¤Ð¤¹¥Ô¥é¥ß¥Ã¥É¸¶Â§
²Á³Ê: 2,940 ±ß ¡ÊÀǹþ¡Ë
¿·ÉÊ/¥æ¡¼¥º¥É²Á³Ê: 1,995 ±ß ¤è¤ê
¥ê¥ê¡¼¥¹: 1999-03
¥æ¡¼¥¶¡¼¥ì¥Ó¥å¡¼: 66 ·ï

¢£ORACLE MASTER Bronze DBA10g Ìϵ¼ÌäÂ꽸 ²þÄûÈÇ
²Á³Ê: 2,730 ±ß ¡ÊÀǹþ¡Ë
¿·ÉÊ/¥æ¡¼¥º¥É²Á³Ê: 2,200 ±ß ¤è¤ê
¥ê¥ê¡¼¥¹: 2007-04-17
¥æ¡¼¥¶¡¼¥ì¥Ó¥å¡¼: 3 ·ï

¢£¸½¾ì¤Ç»È¤¨¤ëSQL Âè2ÈÇ (DB Magazine SELECTION)
²Á³Ê: 2,310 ±ß ¡ÊÀǹþ¡Ë
¿·ÉÊ/¥æ¡¼¥º¥É²Á³Ê: 1,490 ±ß ¤è¤ê
¥ê¥ê¡¼¥¹: 2006-11-16
¥æ¡¼¥¶¡¼¥ì¥Ó¥å¡¼: 1 ·ï

ÆüËÜ¥ª¥é¥¯¥ë
¢£ ÆüËÜ¥ª¥é¥¯¥ë ³ô¼°²ñ¼Ò
¢£ ¥ª¥é¥¯¥ë¥Þ¥¹¥¿¡¼»ñ³Ê ¡Ê¥ª¥é¥¯¥ë¥Þ¥¹¥¿¡¼¤È¤Ï¡Ë
¢£ ²ñ°÷À©¡Ê̵ÎÁ¡Ë¤Î¸ø¼°µ»½Ñ¥µ¥¤¥È
Google