All pages
1 of 5

Loading...

Loading...

Loading...

Loading...

Loading...

TroubleShooting

Large Data 처리 κ°€μ΄λ“œ

BLOB/CLOB <- TEXT, BYTEA

  • 1GB μ΄ν•˜

  • TOAST에 μ˜μ‘΄ν•©λ‹ˆλ‹€.

    • PostgreSQL의 각 pageμ˜μ—­μ€ 일반적으둜 8kb의 κ³ μ •λœ 크기둜 λ˜μ–΄μžˆκ³  각 tuple이 μ—¬λŸ¬ νŽ˜μ΄μ§€μ— λ‚˜λ‰˜μ–΄ μ‘΄μž¬ν•  수 μ—†μŠ΅λ‹ˆλ‹€. (맀우 큰 값을 λ°”λ‘œ μ €μž₯ν•  수 μ—†μŠ΅λ‹ˆλ‹€.)

      이 ν•œκ³„λ₯Ό κ·Ήλ³΅ν•˜κΈ° μœ„ν•΄μ„œ, 큰 ν•„λ“œ 값은 μ••μΆ•λ˜μ–΄ μ €μž₯λ˜κ±°λ‚˜ μ—¬λŸ¬ 개의 물리적 ROWS둜 λΆ„ν• λ˜μ–΄ μ €μž₯λ©λ‹ˆλ‹€.

    • 이 기법을 TOAST (The Oversized-Attribute Storage Technique)라고 ν•˜λ©° PostgreSQLμ—μ„œ 큰 데이터 값을 λ©”λͺ¨λ¦¬ λ‚΄μ—μ„œ 효율적으둜 μ²˜λ¦¬ν•˜λŠ” 데에 μ‚¬μš©λ©λ‹ˆλ‹€.


  • 4TB μ΄ν•˜

  • νŠΉμ§•

    • νŒŒμΌμ— λŒ€ν•œ ν‘œμ€€ μž‘μ—…κ³Ό μœ μ‚¬ν•œ 읽기/μ“°κΈ° APIλ₯Ό μ‚¬μš©ν•˜μ—¬ 생성, μˆ˜μ • 및 μ‚­μ œν•  수 μžˆμŠ΅λ‹ˆλ‹€.


였라클의 LOB은 4GBκΉŒμ§€ μ§€μ›ν•˜λŠ” 반면, O2의 LOB은 TEXT, BYTEA νƒ€μž…μ— κΈ°λ°˜ν•˜κΈ° λ•Œλ¬Έμ— 1GBκΉŒμ§€ μ§€μ›ν•©λ‹ˆλ‹€. λ”°λΌμ„œ 1GB λ„˜λŠ” 데이터 이관 μ‹œμ—λŠ” PostgreSQL의 Large Objectλ₯Ό μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.

  • Large Object 이관에 ν•„μš”ν•œ API μ°Έκ³  λ¬Έμ„œ

Common Issues

O2 Extension을 μ‚¬μš©ν•˜λ©΄μ„œ λ¬Έμ œκ°€ λ°œμƒν•  경우 μˆ˜ν–‰ν•  수 μžˆλŠ” 쑰치 방법을 μ„€λͺ…ν•©λ‹ˆλ‹€.

μ˜ˆμ™Έ λ°œμƒ

μ•„λž˜ λ°©λ²•μœΌλ‘œ ν•΄κ²°λ˜μ§€ μ•ŠλŠ” 경우 맀뉴얼에 기재된 κΈ°μˆ μ„œλΉ„μŠ€μ„Όν„°μ˜ OpenSQL Support νŒ€μ— λ¬Έμ˜ν•©λ‹ˆλ‹€.

μ—λŸ¬ μ½”λ“œκ°€ β€˜O2β€™λ‘œ μ‹œμž‘ν•  경우

O2 Extensionμ—μ„œ μƒμ„±ν•œ μ»€μŠ€ν…€ μ—λŸ¬λŠ” λͺ¨λ‘ β€˜O2β€™λ‘œ μ‹œμž‘ν•˜λŠ” μ—λŸ¬ μ½”λ“œκ°€ λΆ€μ—¬λ©λ‹ˆλ‹€. λ§Œμ•½ O2 Extension μ‚¬μš© μ‹œ β€˜O2β€™λ‘œ μ‹œμž‘ν•˜λŠ” μ—λŸ¬ μ½”λ“œκ°€ λ°œμƒν•œ 경우 μ•„λž˜μ™€ 같이 쑰치λ₯Ό μ·¨ν•©λ‹ˆλ‹€.

  1. TroubleShooting - μ—λŸ¬ μ½”λ“œ νŽ˜μ΄μ§€λ₯Ό μ°Έμ‘°ν•˜μ—¬ 상황에 λ§žλŠ” μ—λŸ¬μΈμ§€ ν™•μΈν•©λ‹ˆλ‹€.

  2. 상황에 λ§žλŠ” μ—λŸ¬μΈ 경우 TroubleShooting - μ—λŸ¬ μ½”λ“œ 쑰치 κ°€μ΄λ“œμ— 맞게 μ‘°μΉ˜ν•©λ‹ˆλ‹€.

μ—λŸ¬ μ½”λ“œκ°€ β€˜O2β€™λ‘œ μ‹œμž‘ν•˜μ§€ μ•Šμ„ 경우

λ§Œμ•½ O2 Extension μ‚¬μš© μ‹œ β€˜O2β€™λ‘œ μ‹œμž‘ν•˜μ§€ μ•ŠλŠ” μ—λŸ¬ μ½”λ“œκ°€ λ°œμƒν•˜λ”λΌλ„ O2 Extensionμ—μ„œ λ°œμƒμ‹œν‚¨ μ˜ˆμ™ΈμΌ 수 μžˆμŠ΅λ‹ˆλ‹€. ν•΄λ‹Ή μƒν™©μ—μ„œλŠ” μ•„λž˜μ™€ 같이 쑰치λ₯Ό μ·¨ν•©λ‹ˆλ‹€.

  1. λ₯Ό μ°Έμ‘°ν•˜μ—¬ λ°œμƒν•œ μ—λŸ¬ μ½”λ“œκ°€ 상황에 λ§žλŠ” μ—λŸ¬μΈμ§€ ν™•μΈν•©λ‹ˆλ‹€.

  2. 상황에 λ§žλŠ” μ—λŸ¬μΈ 경우 쑰치 κ°€μ΄λ“œμ— 맞게 μ‘°μΉ˜ν•©λ‹ˆλ‹€.

λ°μ΄ν„°λ² μ΄μŠ€μ˜ μ„±λŠ₯ μ €ν•˜λŠ” 볡합적인 원인을 κ°€μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€. O2 Extension μ‚¬μš© μ‹œ μ„±λŠ₯ μ €ν•˜κ°€ λ°œμƒν•˜λ”λΌλ„ PostgreSQL μ½”μ–΄λ‚˜ λ‹€λ₯Έ μš”μ†Œλ‘œλΆ€ν„° κΈ°μΈν•œ 문제일 수 μžˆμŠ΅λ‹ˆλ‹€.

O2 ExtensionμœΌλ‘œλΆ€ν„° κΈ°μΈν•œ μ„±λŠ₯ μ €ν•˜ λ¬Έμ œμΈμ§€ ν™•μΈν•˜λŠ” λͺ‡ κ°€μ§€ 방법을 μ œμ‹œν•©λ‹ˆλ‹€.

  1. O2Functions의 빌트인 ν•¨μˆ˜λ₯Ό λŒ€μ²΄ν•  수 μžˆλŠ” PostgreSQL 빌트인 ν•¨μˆ˜λ‘œ λ³€κ²½ν•˜μ—¬ ν…ŒμŠ€νŠΈ ν•©λ‹ˆλ‹€.

    1. λ§Œμ•½ PostgreSQL 빌트인 ν•¨μˆ˜λ‘œ λŒ€μ²΄ ν›„ μ„±λŠ₯ μ €ν•˜κ°€ ν•΄κ²°λœλ‹€λ©΄ O2Functionsλ‘œλΆ€ν„° κΈ°μΈν•œ λ¬Έμ œμ΄λ―€λ‘œ OpenSQL Support νŒ€μ— λ¬Έμ˜ν•©λ‹ˆλ‹€.

    2. λ§Œμ•½ μ„±λŠ₯ μ €ν•˜κ°€ ν•΄κ²°λ˜μ§€ μ•ŠλŠ”λ‹€λ©΄ PostgreSQL μ½”μ–΄λ‚˜ λ‹€λ₯Έ μš”μ†Œλ‘œλΆ€ν„° κΈ°μΈν•œ 문제일 수 μžˆμœΌλ―€λ‘œ 병λͺ©ν˜„μƒμ˜ 원인을 λ‹€λ₯Έ μš”μ†Œμ—μ„œ μ°Ύμ•„μ•Ό ν•©λ‹ˆλ‹€.

PostgreSQL은 ν•œ μ„Έμ…˜μ΄ ν•œ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ μœ ν•©λ‹ˆλ‹€. λ§Œμ•½ 질의 처리 쀑 μ„Έμ…˜μ΄ κ°•μ œ μ’…λ£Œλ  경우 μ„Έμ…˜μ΄ μ μœ ν•˜κ³  있던 ν”„λ‘œμ„ΈμŠ€λ„ 같이 κ°•μ œ μ’…λ£Œλ©λ‹ˆλ‹€. λ‹€λ₯Έ μ„Έμ…˜μ€ 영ν–₯을 λ°›μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

λ§Œμ•½ O2 Extensionμ—μ„œμ˜ λ²„κ·Έλ‘œ 인해 Segmentation Fault와 같은 μ‹œκ·Έλ„μ„ μœ λ°œν•˜λŠ” μ—λŸ¬κ°€ λ°œμƒν•  경우λ₯Ό λŒ€λΉ„ν•˜μ—¬ O2 Extension은 μ»€μŠ€ν…€ μ‹œκ·Έλ„ 핸듀링 λ‘œμ§μ„ PostgreSQL에 μ£Όμž…ν–ˆμŠ΅λ‹ˆλ‹€. μ»€μŠ€ν…€ μ‹œκ·Έλ„ 핸듀링 λ‘œμ§μ€ μ‹œκ·Έλ„λ‘œ 인해 μ„Έμ…˜μ΄ κ°•μ œ μ’…λ£Œλ  경우 PostgreSQL λ‘œκ·Έμ— λ¬Έμ œκ°€ λ°œμƒν•œ μœ„μΉ˜μ˜ Backtrace 둜그λ₯Ό 좜λ ₯ν•©λ‹ˆλ‹€.

ν•΄λ‹Ή μ‹œλ‚˜λ¦¬μ˜€κ°€ λ°œμƒν•  경우 PostgreSQL λ‘œκ·Έμ—μ„œ Backtrace 둜그λ₯Ό μ°Ύμ•„ μ €μž₯ν•˜κ³  OpenSQL μ§€μ›νŒ€μ— λ¬Έμ˜ν•©λ‹ˆλ‹€.

PostgreSQL의 μ—λŸ¬ 레벨 쀑 β€˜PANIC’ λ ˆλ²¨μ€ λͺ¨λ“  μ„Έμ…˜μ„ κ°•μ œ μ’…λ£Œν•©λ‹ˆλ‹€.

O2 Extension μ‚¬μš© μ‹œ 곡유 λ©”λͺ¨λ¦¬μ— λŒ€ν•œ 잘λͺ»λœ μ œμ–΄ 및 접근을 λ™λ°˜ν•œ λ²„κ·Έλ‘œ 인해 β€˜PANIC’ 레벨의 μ—λŸ¬κ°€ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€. DBMS_PIPE와 DBMS_ALERTλŠ” 곡유 λ©”λͺ¨λ¦¬λ₯Ό μ‚¬μš©ν•˜κ³  μžˆλŠ” Extension으둜 λͺ¨μ’…μ˜ 이유둜 인해 곡유 λ©”λͺ¨λ¦¬ μ œμ–΄ μ‹œ μ—λŸ¬κ°€ λ°œμƒν•  경우 상기 상황이 λ°œμƒν•  κ°€λŠ₯성이 μžˆμŠ΅λ‹ˆλ‹€.

ν•΄λ‹Ή 상황이 λ°œμƒν•œ 경우 곡유 λ©”λͺ¨λ¦¬κ°€ μ†μƒλ˜μ—ˆμ„ κ°€λŠ₯성이 μžˆμœΌλ―€λ‘œ μΈμŠ€ν„΄μŠ€ μž¬κΈ°λ™μ΄ ν•„μš”ν•©λ‹ˆλ‹€. PostgreSQL λ‘œκ·Έμ—μ„œ Backtrace 둜그λ₯Ό μ°Ύμ•„ μ €μž₯ν•˜κ³  OpenSQL μ§€μ›νŒ€μ— λ¬Έμ˜ν•©λ‹ˆλ‹€.

이 κ²°κ³ΌλŠ” Postgresql의 μŠ€νŽ™μ— λ”°λ₯Έ ν•œκ³„λ‘œ λ³΄μž…λ‹ˆλ‹€.

μž…λ ₯ν•˜λŠ” λ°μ΄ν„°μ˜ 크기λ₯Ό μ μ ˆν•œ 수치둜 쀄여보고 ν•΄λ‹Ή λ°©λ²•μœΌλ‘œλ„ 해결이 λ˜μ§€ μ•ŠλŠ”λ‹€λ©΄, PostgreSQL λ‘œκ·Έμ—μ„œ Backtrace 둜그λ₯Ό μ°Ύμ•„ μ €μž₯ν•˜κ³  OpenSQL μ§€μ›νŒ€μ— λ¬Έμ˜ν•©λ‹ˆλ‹€.

빌트인 νŒ¨ν‚€μ§€ μ‚¬μš© μ‹œ μ„±λŠ₯ μ €ν•˜κ°€ λ°œμƒν•œ 경우 νƒ€μž„μ•„μ›ƒμ— 걸리지 μ•Šμ•˜λŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€.
  1. DBMS_PIPE, DBMS_ALERT와 같은 νŒ¨ν‚€μ§€λŠ” μ΄λ²€νŠΈκ°€ λ°œμƒν•  λ•ŒκΉŒμ§€ 기닀릴 νƒ€μž„μ•„μ›ƒμ΄ μ£Όμ–΄μ§‘λ‹ˆλ‹€. 이 λ•Œ νƒ€μž„μ•„μ›ƒμ΄ λ„ˆλ¬΄ 크게 μ£Όμ–΄μ§„ 경우 μ„±λŠ₯ μ €ν•˜λ‘œ 보일 수 μžˆμœΌλ―€λ‘œ μ μ ˆν•œ νƒ€μž„μ•„μ›ƒμ΄ 주어지도둝 μ‘°μΉ˜ν•©λ‹ˆλ‹€.

  • Callgrind와 같은 ν”„λ‘œνŒŒμΌλ§ νˆ΄μ„ μ‚¬μš©ν•˜μ—¬ 병λͺ©ν˜„μƒμ˜ μœ„μΉ˜κ°€ O2 Extension인지 ν™•μΈν•©λ‹ˆλ‹€.

  • μ„±λŠ₯ μ €ν•˜ λ°œμƒ

    μ‹±κΈ€ μ„Έμ…˜ κ°•μ œμ’…λ£Œ λ°œμƒ

    λͺ¨λ“  μ„Έμ…˜ κ°•μ œμ’…λ£Œ λ°œμƒ

    TEXT νƒ€μž…μ— λ§Žμ€ μ–‘μ˜ 데이터 μž…λ ₯μ‹œ Out of memory λ°œμƒ

    PostgreSQL Error Codes
    PostgreSQL Error Codes
    λŒ€ν˜• 개체의 일뢀λ₯Ό 읽고 μ—…λ°μ΄νŠΈν•˜λŠ” μž‘μ—…μ„ 효율적으둜 μˆ˜ν–‰ν•  수 μžˆλŠ” 반면 TOAST 둜 처리된 ν•„λ“œμ˜ λŒ€λΆ€λΆ„ μž‘μ—…μ€ 전체 값을 λ‹¨μœ„λ‘œ μ½κ±°λ‚˜ μ”λ‹ˆλ‹€.
  • Chunk둜 μͺΌκ°œκ³  DB에 row둜 μ €μž₯. B-tree둜 chunk index 탐색 κ°€λŠ₯ν•˜κ²Œ ν•©λ‹ˆλ‹€.

  • μ°Έκ³ 

  • Large Object

    Migration κ°€μ΄λ“œ

    https://www.postgresql.org/docs/16/largeobjects.html
    https://www.postgresql.org/docs/current/largeobjects.html

    FAQ

    Q. PostgreSQL μ„œλ²„μ— O2 Extension을 μ–΄λ–»κ²Œ μ„€μΉ˜ν•©λ‹ˆκΉŒ?

    A. PostgreSQL은 Extension μ„€μΉ˜λ₯Ό κ°„νŽΈν•˜κ²Œ ν•  수 μžˆλ„λ‘ μ„€κ³„λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. O2 Extension도 λ§ˆμ°¬κ°€μ§€λ‘œ μ†μ‰½κ²Œ μ„€μΉ˜κ°€ κ°€λŠ₯ν•©λ‹ˆλ‹€. μžμ„Έν•œ λ‚΄μš©μ€ μ„€μΉ˜ μ•ˆλ‚΄μ„œλ₯Ό μ°Έμ‘°ν•©λ‹ˆλ‹€.

    Q. μ„€μΉ˜ν•œ O2 Extension을 μ–΄λ–»κ²Œ ν™œμ„±ν™”ν•©λ‹ˆκΉŒ?

    A. PostgreSQL은 동적 링크λ₯Ό ν™œμš©ν•˜μ—¬ Extension을 κ°„λ‹¨ν•œ SQL ꡬ문으둜 ν™œμ„±ν™”ν•˜λ„λ‘ μ„€κ³„λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. O2 Extension도 λ§ˆμ°¬κ°€μ§€λ‘œ κ°„λ‹¨ν•œ SQL ꡬ문을 μ‚¬μš©ν•˜μ—¬ ν™œμ„±ν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μžμ„Έν•œ λ‚΄μš©μ€ μ„€μΉ˜ μ•ˆλ‚΄μ„œλ₯Ό μ°Έμ‘°ν•©λ‹ˆλ‹€.

    Q. O2 Extension이 νŠΉμ • PostgreSQL 버전과 ν˜Έν™˜λ˜μ§€ μ•ŠλŠ” κ²½μš°λ„ μžˆμŠ΅λ‹ˆκΉŒ?

    A. O2 Extension의 κΈ°λŠ₯은 λŒ€λΆ€λΆ„ PostgreSQL 14 이상 버전을 μ§€μ›ν•©λ‹ˆλ‹€. ν•˜μ§€λ§Œ 일뢀 κΈ°λŠ₯은 PostgreSQL 15 이상을, 또 λ‹€λ₯Έ 일뢀 κΈ°λŠ₯은 PostgreSQL 16 μ΄μƒμ˜ 버전을 μš”κ΅¬ν•©λ‹ˆλ‹€.

    μ‚¬μš© 쀑인 PostgreSQL 버전이 νŠΉμ • κΈ°λŠ₯의 μ΅œμ†Œ μš”κ΅¬ 사항을 μΆ©μ‘±ν•˜μ§€ λͺ»ν•  경우, μ„€μΉ˜ μ‹œ ν•΄λ‹Ή κΈ°λŠ₯은 μžλ™μœΌλ‘œ μ œμ™Έλ©λ‹ˆλ‹€. κΈ°λŠ₯별 μ΅œμ†Œ 지원 버전은 μ•„λž˜μ™€ κ°™μŠ΅λ‹ˆλ‹€.

    Extension
    Feature
    Object Type
    PostgreSQL μ΅œμ†Œ 버전

    A. λ°μ΄ν„°λ² μ΄μŠ€ μ„±λŠ₯ μ €ν•˜λŠ” λ‹€μ–‘ν•œ 이유둜 인해 λ°œμƒν•  수 있으며 문제 해결을 μœ„ν•΄μ„œλŠ” μ •ν™•ν•œ 원인을 μ°ΎλŠ” 것이 μ€‘μš”ν•©λ‹ˆλ‹€. μ„±λŠ₯ μ €ν•˜ 해결에 λŒ€ν•œ μžμ„Έν•œ λ‚΄μš©μ€ 을 μ°Έμ‘°ν•©λ‹ˆλ‹€.

    A. O2 Extensionμ—μ„œλŠ” PostgreSQL의 빌트인 μ—λŸ¬ μ½”λ“œμ™€ O2 Extension의 μ»€μŠ€ν…€ μ—λŸ¬ μ½”λ“œλ₯Ό λ°œμƒμ‹œν‚΅λ‹ˆλ‹€. PostgreSQL의 빌트인 μ—λŸ¬ μ½”λ“œλŠ” 맀뉴얼을 μ°Έμ‘°ν•©λ‹ˆλ‹€. O2 Extension의 μ»€μŠ€ν…€ μ—λŸ¬ μ½”λ“œλŠ” 을 μ°Έμ‘°ν•©λ‹ˆλ‹€.

    A. PostgreSQL은 Extension을 κ°„λ‹¨ν•œ SQL ꡬ문으둜 μ—…λ°μ΄νŠΈν•  수 μžˆλ„λ‘ μ„€κ³„λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. O2 Extension도 λ§ˆμ°¬κ°€μ§€λ‘œ κ°„λ‹¨ν•œ SQL ꡬ문을 μ‚¬μš©ν•˜μ—¬ μ—…λ°μ΄νŠΈν•  수 μžˆλ‹€. μžμ„Έν•œ λ‚΄μš©μ€ λ₯Ό μ°Έμ‘°ν•©λ‹ˆλ‹€.

    A. PostgreSQL은 Extension을 λ°μ΄ν„°λ² μ΄μŠ€ κ°μ²΄λ‘œμ„œ κ΄€λ¦¬ν•˜λ©° κ°„λ‹¨ν•œ SQL ꡬ문으둜 μ œκ±°ν•  수 μžˆλ„λ‘ μ„€κ³„λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. O2 Extension도 λ§ˆμ°¬κ°€μ§€λ‘œ κ°„λ‹¨ν•œ SQL ꡬ문을 μ‚¬μš©ν•˜μ—¬ μ œκ±°ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μžμ„Έν•œ λ‚΄μš©μ€ λ₯Ό μ°Έμ‘°ν•©λ‹ˆλ‹€.

    A. O2 Extension κ΄€λ ¨ λ‘œκ·ΈλŠ” PostgreSQL의 둜그 νŒŒμΌμ— ν•¨κ»˜ μž‘μ„±λ©λ‹ˆλ‹€.

    O2Functions

    REGEXP_LIKE

    Function

    15

    REGEXP_COUNT

    Function

    15

    REGEXP_INSTR

    Q. O2 Extension을 μ‚¬μš©ν•œ ν›„ μ„±λŠ₯ μ €ν•˜κ°€ λ°œμƒν•˜λ©΄ μ–΄λ–»κ²Œ ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

    Q. O2 Extension μ‚¬μš© 쀑 λ°œμƒν•˜λŠ” 일반적인 μ—λŸ¬ μ½”λ“œμ™€ κ·Έ ν•΄κ²° 방법은 λ¬΄μ—‡μž…λ‹ˆκΉŒ?

    Q. O2 Extension을 μ΅œμ‹ μœΌλ‘œ μ—…λ°μ΄νŠΈν•˜λŠ” 방법은 λ¬΄μ—‡μž…λ‹ˆκΉŒ?

    Q. 더 이상 ν•„μš”ν•˜μ§€ μ•Šμ€ O2 Extension을 μ–΄λ–»κ²Œ μ œκ±°ν•©λ‹ˆκΉŒ?

    Q. O2 Extension κ΄€λ ¨ 둜그λ₯Ό μ–΄λ””μ„œ 확인할 수 μžˆμŠ΅λ‹ˆκΉŒ?

    TroubleShooting의 Common Issues ν•­λͺ©
    PostgreSQL Error Codes
    TroubleShooting의 μ—λŸ¬ μ½”λ“œ ν•­λͺ©
    μ„€μΉ˜ μ•ˆλ‚΄μ„œ
    μ„€μΉ˜ μ•ˆλ‚΄μ„œ

    Function

    15

    REGEXP_SUBSTR

    Function

    15

    REGEXP_REPLACE

    Function

    15

    O2Views

    O2_SHARED_MEMORY_INFO

    View

    15

    DBMS_ALERT

    REMOVEALL

    Procedure

    15

    WAITANY

    Procedure

    15

    DBMS_RLS

    전체 κΈ°λŠ₯

    Procedure

    16

    μ—λŸ¬ μ½”λ“œ

    κ°œμš”

    O2 Extension은 PostgreSQL의 빌트인 μ—λŸ¬μ½”λ“œμ™€ O2 Extension의 μ»€μŠ€ν…€ μ—λŸ¬ μ½”λ“œλ₯Ό λ°œμƒμ‹œν‚΅λ‹ˆλ‹€. PostgreSQL 빌트인 μ—λŸ¬μ½”λ“œμ— λŒ€ν•œ μžμ„Έν•œ λ‚΄μš©μ€ PostgreSQL Error Codes 맀뉴얼을 μ°Έμ‘°ν•©λ‹ˆλ‹€.

    PostgreSQL의 μ—λŸ¬μ½”λ“œλŠ” 5개의 문자둜 κ΅¬μ„±λ©λ‹ˆλ‹€. O2 Extension의 μ»€μŠ€ν…€ μ—λŸ¬ μ½”λ“œλŠ” μƒμœ„ 2개 λ¬Έμžκ°€ 'O2'둜 고정이고, μ„Έ 번째 λ¬ΈμžλŠ” μ—λŸ¬ μ½”λ“œμ˜ μΉ΄ν…Œκ³ λ¦¬λ₯Ό μ •μ˜ν•©λ‹ˆλ‹€.


    μ—λŸ¬ μ½”λ“œ

    μΉ΄ν…Œκ³ λ¦¬ β€˜0’ - 곡톡 μ—λŸ¬

    μ—λŸ¬ μ½”λ“œ
    둜그 레벨
    μ„€λͺ…

    O2001

    μ—λŸ¬ μ½”λ“œ
    둜그 레벨
    μ„€λͺ…
    μ—λŸ¬ μ½”λ“œ
    둜그 레벨
    μ„€λͺ…
    μ—λŸ¬ μ½”λ“œ
    둜그 레벨
    μ„€λͺ…
    μ—λŸ¬ μ½”λ“œ
    둜그 레벨
    μ„€λͺ…
    μ—λŸ¬ μ½”λ“œ
    둜그 레벨
    μ„€λͺ…
    μ—λŸ¬μ½”λ“œ
    둜그 레벨
    μ„€λͺ…
    μ—λŸ¬ μ½”λ“œ
    둜그 레벨
    μ„€λͺ…
    μ—λŸ¬ μ½”λ“œ
    둜그 레벨
    μ„€λͺ…
    μ—λŸ¬ μ½”λ“œ
    둜그 레벨
    μ„€λͺ…
    μ—λŸ¬ μ½”λ“œ
    둜그 레벨
    μ„€λͺ…
    μ—λŸ¬ μ½”λ“œ
    둜그 레벨
    μ„€λͺ…
    μ—λŸ¬ μ½”λ“œ
    둜그 레벨
    μ„€λͺ…
    μ—λŸ¬ μ½”λ“œ
    둜그 레벨
    μ„€λͺ…
    μ—λŸ¬ μ½”λ“œ
    둜그 레벨
    μ„€λͺ…

    ERROR

    곡유 λ©”λͺ¨λ¦¬ μ„Έκ·Έλ¨ΌνŠΈλ₯Ό μ°Έμ‘°ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

    곡유 λ©”λͺ¨λ¦¬ μ„Έκ·Έλ¨ΌνŠΈλ₯Ό μ°Έμ‘°ν•˜κ³  μžˆλŠ” 객체λ₯Ό μ‚­μ œν•˜κ±°λ‚˜ μΈμŠ€ν„΄μŠ€ μž¬κΈ°λ™μ΄ ν•„μš”ν•©λ‹ˆλ‹€. (DBMS_ALERT, λ˜λŠ” DBMS_PIPE μ•ˆλ‚΄μ„œ μ°Έμ‘°)

    O2002

    ERROR

    μ œκ³΅ν•˜μ§€ μ•ŠλŠ” κΈ°λŠ₯μž…λ‹ˆλ‹€.

    O2003

    ERROR

    NULL κ°’ ν—ˆμš©λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

    O2004

    ERROR

    μœ νš¨ν•˜μ§€ μ•Šμ€ νŒŒλΌλ―Έν„° 값이 μž…λ ₯λ©λ‹ˆλ‹€.

    O2005

    ERROR

    좜λ ₯ν•  데이터가 μ—†μŠ΅λ‹ˆλ‹€.

    O2006

    ERROR

    ν•΄λ‹Ή μΈμ½”λ”©μœΌλ‘œ λ³€ν™˜ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

    O2007

    ERROR

    ν˜„μž¬ ν™•μž₯이 shared_preload_libraries에 μ„€μ •λ˜μ–΄ μžˆμ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

    O2A00

    ERROR

    λ™μ‹œ ꡬ독 μ„Έμ…˜ 개수λ₯Ό μ΄ˆκ³Όν•©λ‹ˆλ‹€.

    (λ™μ‹œμ— 이벀트λ₯Ό ꡬ독할 수 μžˆλŠ” μ„Έμ…˜μ˜ μ΅œλŒ€ κ°œμˆ˜λŠ” 총 64개)

    O2A01

    ERROR

    이벀트 이름은 NULL 값이 ν—ˆμš©λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

    O2B00

    ERROR

    λΌμ΄μ„ΌμŠ€ 인증에 μ‹€νŒ¨ν–ˆμŠ΅λ‹ˆλ‹€.

    02B01

    ERROR

    λΌμ΄μ„ΌμŠ€ νŒŒμΌμ„ 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.

    O2D00

    ERROR

    DBMS_JOB κΈ°λŠ₯ λ™μž‘ μˆ˜ν–‰ 쀑 λ°œμƒν•œ λ‚΄λΆ€ λ™μž‘ μ—λŸ¬μž…λ‹ˆλ‹€.

    O2D01

    ERROR

    μž…λ ₯ν•œ id에 ν•΄λ‹Ήν•˜λŠ” job이 μ‘΄μž¬ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

    O2FD0

    ERROR

    μœ νš¨ν•˜μ§€ μ•Šμ€ λ‚ μ§œ ν˜•μ‹μž…λ‹ˆλ‹€. λ₯Ό μ°Έμ‘°ν•©λ‹ˆλ‹€.

    O2FD3

    ERROR

    EXISTSNODE ν•¨μˆ˜μ— μœ νš¨ν•˜μ§€ μ•Šμ€ namespace format의 μΈμžκ°€ μ „λ‹¬λμŠ΅λ‹ˆλ‹€.

    O2H00

    ERROR

    λΆˆμΆ©λΆ„ν•œ κΆŒν•œ

    O2H01

    ERROR

    ν•΄λ‹Ή 정책이 μ‘΄μž¬ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

    O2J00

    ERROR

    o2scheduler λ‚΄λΆ€ λ™μž‘ μ—λŸ¬

    O2J01

    WARNING

    job launcher ν”„λ‘œμ„ΈμŠ€ 등둝 μ‹€νŒ¨

    O2L01

    ERROR

    μœ νš¨ν•˜μ§€ μ•Šμ€ 파일 λ™μž‘μž…λ‹ˆλ‹€. 파일 μ—΄κΈ° μ‹€νŒ¨ ν˜Ήμ€ 파일 읽기, μ“°κΈ° κΆŒν•œμ΄ μ—†μŠ΅λ‹ˆλ‹€.

    O2L02

    ERROR

    파일 읽기 μ‹€νŒ¨

    O2P00

    ERROR

    νŒŒμ΄ν”„ 이름은 NULL을 ν—ˆμš©ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

    O2P01

    ERROR

    μž…λ ₯ν•œ μ΄λ¦„μ˜ νŒŒμ΄ν”„κ°€ 이미 μ‘΄μž¬ν•©λ‹ˆλ‹€.

    O2Q00

    ERROR

    DBMS_SQL.column_value ν”„λ‘œμ‹œμ €μ˜ value νŒŒλΌλ―Έν„°μ˜ data typeκ³Ό 쿼리 κ²°κ³Ό 컬럼의 data type κ°„ type conversion이 λΆˆκ°€λŠ₯ν•©λ‹ˆλ‹€.type conversion이 κ°€λŠ₯ν•œ data type의 νŒŒλΌλ―Έν„°λ‘œ λ³€κ²½ν•΄μ•Όν•©λ‹ˆλ‹€.

    O2Q01

    ERROR

    DBMS_SQL.define_column ν˜Ήμ€ DBMS_SQL.define_array ν”„λ‘œμ‹œμ €μ—μ„œ 이미 define된 μ»¬λŸΌμ„ μž¬μ •μ˜ν•©λ‹ˆλ‹€.

    O2R00

    ERROR

    DBMS_RANDOM.string ν•¨μˆ˜μ— μž…λ ₯ν•œ λ¬Έμžμ—΄ ν˜•μ‹μ΄ μœ νš¨ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

    O2R01

    ERROR

    DBMS_RANDOM.string ν•¨μˆ˜μ— μž…λ ₯ν•œ λ¬Έμžμ—΄ ν˜•μ‹μ€ NULL을 ν—ˆμš©ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

    O2S00

    ERROR

    μž…λ ₯ν•œ λ¬Έμžμ—΄(schema name)은 ν˜•μ‹μ΄ μœ νš¨ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

    O2S01

    ERROR

    μž…λ ₯ν•œ λ¬Έμžμ—΄(sql name)은 ν˜•μ‹μ΄ μœ νš¨ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

    O2U01

    ERROR

    DBMS_OUTPUT λ‚΄λΆ€ 버퍼 μ‚¬μ΄μ¦ˆ ν•œλ„ 초과 μ—λŸ¬μž…λ‹ˆλ‹€. DBMS_OUTPUT.enable μ‹€ν–‰ μ‹œ 버퍼 μ‚¬μ΄μ¦ˆλ₯Ό λ¬΄ν•œμ΄ μ•„λ‹Œ κ°’μœΌλ‘œ μ§€μ •ν•œ μƒν™©μ—μ„œ DBMS_OUTPUT.put, DBMS_OUTPUT.put_line, DBMS_OUTPUT.new_line ν”„λ‘œμ‹œμ €λ₯Ό 톡해 μž…λ ₯ν•œ λ°μ΄ν„°λŠ” 버퍼 μ‚¬μ΄μ¦ˆ ν•œλ„ 초과둜 더이상 버퍼에 넣을 수 μ—†μŠ΅λ‹ˆλ‹€.

    O2V00

    ERROR

    버전 νŒŒμΌμ„ 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.PostgreSQL의 Extension μ„€μΉ˜ 디렉토리에 O2 Extension의 버전 νŒŒμΌμ„ 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.

    O2XM0

    DEBUG2

    λ©”λͺ¨λ¦¬ 할당을 κΈ°λ‘ν•˜κΈ° μœ„ν•œ 디버깅 λ‘œκ·Έμž…λ‹ˆλ‹€.

    O2XP0

    DEBUG1

    DBMS_PIPE의 νŒŒμ΄ν”„κ°€ λ¬΅μ‹œμ μœΌλ‘œ 생성됨을 κΈ°λ‘ν•˜κΈ° μœ„ν•œ 디버깅 λ‘œκ·Έμž…λ‹ˆλ‹€. DBMS_PIPE.send_message λ˜λŠ” DBMS_PIPE.receive_message ν•¨μˆ˜λ₯Ό 톡해 νŒŒμ΄ν”„κ°€ λ¬΅μ‹œμ μœΌλ‘œ 생성될 수 μžˆμŠ΅λ‹ˆλ‹€.

    μΉ΄ν…Œκ³ λ¦¬ β€˜A’ - DBMS_ALERT μ—λŸ¬

    μΉ΄ν…Œκ³ λ¦¬ β€˜B’ - License μ—λŸ¬

    μΉ΄ν…Œκ³ λ¦¬ β€˜D’ - DBMS_JOB μ—λŸ¬

    μΉ΄ν…Œκ³ λ¦¬ β€˜F’ - O2Functions μ—λŸ¬

    μΉ΄ν…Œκ³ λ¦¬ β€˜H’ - DBMS_RLS μ—λŸ¬

    μΉ΄ν…Œκ³ λ¦¬ β€˜J’ - O2Scheduler μ—λŸ¬

    μΉ΄ν…Œκ³ λ¦¬ β€˜L’ - UTL_FILE μ—λŸ¬

    μΉ΄ν…Œκ³ λ¦¬ β€˜P’ - DBMS_PIPE μ—λŸ¬

    μΉ΄ν…Œκ³ λ¦¬ β€˜Q’ - DBMS_SQL μ—λŸ¬

    μΉ΄ν…Œκ³ λ¦¬ β€˜R’ - DBMS_RANDOM μ—λŸ¬

    μΉ΄ν…Œκ³ λ¦¬ β€˜S’ - DBMS_ASSERT μ—λŸ¬

    μΉ΄ν…Œκ³ λ¦¬ β€˜U’ - DBMS_OUTPUT μ—λŸ¬

    μΉ΄ν…Œκ³ λ¦¬ β€˜V’ - O2Views μ—λŸ¬

    μΉ΄ν…Œκ³ λ¦¬ β€˜X’ - Debug μ—λŸ¬

    O2A02

    ERROR

    ν”„λ‘œμ„ΈμŠ€κ°€ 이벀트λ₯Ό SUBSCRIBEν•˜κ³  μžˆμ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

    O2A03

    ERROR

    동일 νŠΈλžœμž­μ…˜ λ‚΄μ—μ„œ SIGNAL β†’ WAITONE λ˜λŠ” WAITANYλ₯Ό μˆ˜ν–‰μ΄ ν—ˆμš©λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

    O2B02

    ERROR

    λΌμ΄μ„ΌμŠ€κ°€ λ§Œλ£ŒλμŠ΅λ‹ˆλ‹€.

    O2B03

    ERROR

    λΌμ΄μ„ΌμŠ€μ˜ μ‹œκ·Έλ‹ˆμ²˜κ°€ 잘λͺ»λμŠ΅λ‹ˆλ‹€.

    O2B04

    ERROR

    호슀트 이름이 잘λͺ»λμŠ΅λ‹ˆλ‹€.

    O2B05

    ERROR

    IP 검증에 μ‹€νŒ¨ν–ˆμŠ΅λ‹ˆλ‹€.

    O2B06

    ERROR

    접속 κ°€λŠ₯ν•œ USER의 μˆ˜κ°€ λΌμ΄μ„ΌμŠ€μ™€ λ‹€λ¦…λ‹ˆλ‹€.

    O2B07

    ERROR

    ν—ˆμš©λœ CPU 수λ₯Ό μ΄ˆκ³Όν•©λ‹ˆλ‹€.

    O2B08

    ERROR

    잘λͺ»λœ μœ νš¨κΈ°κ°„μž…λ‹ˆλ‹€.

    O2B11

    ERROR

    λΌμ΄μ„ΌμŠ€ 검증 둜직의 λ‚΄λΆ€ 였λ₯˜μž…λ‹ˆλ‹€.

    O2H02

    ERROR

    ν•΄λ‹Ή ν…Œμ΄λΈ”μ΄ μ‘΄μž¬ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

    O2H03

    ERROR

    μ •μ±…ν•¨μˆ˜κ°€ μœ νš¨ν•˜μ§€ μ•Šκ±°λ‚˜, μ •μ±… ν•¨μˆ˜μ˜ μŠ€ν‚€λ§ˆκ°€ μ‘΄μž¬ν•˜μ§€ μ•Šκ±°λ‚˜, ν…Œμ΄λΈ”λ‹Ή μ΅œλŒ€ μ •μ±… 수λ₯Ό μ΄ˆκ³Όν•˜κ±°λ‚˜, ν•΄λ‹Ή 정책은 이미 μ‘΄μž¬ν•˜κ±°λ‚˜, SPI 연결이 μ‹€νŒ¨ν•©λ‹ˆλ‹€.

    μ—λŸ¬ λ©”μ‹œμ§€ μ°Έκ³ κ°€ ν•„μš”ν•©λ‹ˆλ‹€.

    O2H04

    ERROR

    o2type extension이 μ„€μΉ˜ λ˜μ§€ μ•Šμ•„, varchar2 νƒ€μž…μ΄ μ‘΄μž¬ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

    O2H05

    ERROR

    PostgreSQL 버전이 15μ΄ν•˜λ‘œ

    ν•΄λ‹Ή κΈ°λŠ₯을 μ§€μ›ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

    O2H06

    ERROR

    INSERT에 λŒ€ν•œ μ •μ±… μΆ”κ°€ μ‹œ, update_checkκ°€ true μ—¬μ•Ό ν•©λ‹ˆλ‹€.

    O2J02

    WARNING

    job launcher ν”„λ‘œμ„ΈμŠ€ ν•΄μ œ μ‹€νŒ¨

    O2J03

    WARNING

    job worker ν”„λ‘œμ„ΈμŠ€ 등둝 μ‹€νŒ¨

    O2J04

    ERROR

    job worker ν”„λ‘œμ„ΈμŠ€ λ‚΄λΆ€ λ™μž‘ μ—λŸ¬

    O2J05

    WARNING

    job bootstrapper ν”„λ‘œμ„ΈμŠ€ 등둝 μ‹€νŒ¨

    O2J06

    ERROR

    job trigger λ‚΄λΆ€ λ™μž‘ μ—λŸ¬

    O2J10

    ERROR

    CALENDER STRING의 μ˜΅μ…˜ 쀑볡

    O2J11

    ERROR

    PROGRAM을 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.

    O2J12

    ERROR

    잘λͺ»λœ PROGRAM νƒ€μž…

    O2J13

    ERROR

    인자λ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.

    O2J14

    ERROR

    인자의 κ°œμˆ˜μ™€ μ •μ˜λœ 인자의 κ°œμˆ˜κ°€ λ§žμ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

    O2J15

    ERROR

    PROGRAM μˆ˜ν–‰ μ‹€νŒ¨

    O2J16

    ERROR

    SCHEDULE을 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.

    O2J17

    ERROR

    TABLE을 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.

    O2J18

    ERROR

    JOB을 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.

    O2J19

    ERROR

    PROGRAM ARGUMENTλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.

    O2J20

    ERROR

    μ •μ˜λ˜μ§€ μ•Šμ€ ARGUMENT

    O2J21

    ERROR

    PROGRAM이 이미 μ‘΄μž¬ν•©λ‹ˆλ‹€.

    O2J22

    ERROR

    SCHEDULE이 이미 μ‘΄μž¬ν•©λ‹ˆλ‹€.

    O2J23

    ERROR

    SCHEDULE λ‚΄λΆ€ 였λ₯˜μž…λ‹ˆλ‹€.

    O2J24

    ERROR

    JOB이 이미 μ‘΄μž¬ν•©λ‹ˆλ‹€.

    O2J25

    INFO

    JOB이 μ‹€ν–‰ μ€‘μž…λ‹ˆλ‹€.

    O2J26

    ERROR

    ARGUMENTκ°€ 이미 μ •μ˜λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

    O2L03

    ERROR

    파일 μ“°κΈ° μ‹€νŒ¨

    O2L04

    ERROR

    파일 μ—΄κΈ° 개수 ν•œλ„ 초과 μ •ν•΄μ§„ 파일 μ—΄κΈ° 개수 μ œν•œ 도달

    O2L05

    ERROR

    μœ νš¨ν•˜μ§€ μ•Šμ€ 파일 슬둯(μ—΄λ € μžˆλŠ” νŒŒμΌμ— λŒ€ν•œ unique file id을 μ§€μΉ­)μž…λ‹ˆλ‹€.

    O2L06

    ERROR

    파일 슬둯 ν˜Ήμ€ 파일 μ—λŸ¬κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

    O2L07

    ERROR

    UTL_FILE νŒ¨ν‚€μ§€ λ‚΄λΆ€, 파일 이름 유효 검사 μ²˜λ¦¬κ³Όμ • μ—λŸ¬κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

    O2L08

    ERROR

    file pathκ°€ μœ νš¨ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

    O2L10

    ERROR

    파일 μ“°κΈ°μ—μ„œ ν•œ 쀄 λ‹Ή 크기 ν•œλ„ 초과

    O2P02

    ERROR

    둜컬 λ©”μ‹œμ§€ 버퍼 μš©λŸ‰μ„ μ΄ˆκ³Όν–ˆμŠ΅λ‹ˆλ‹€.

    둜컬 λ©”μ‹œμ§€ 버퍼가 λ‹€ μ°° λ•ŒκΉŒμ§€ DBMS_PIPE.pack_message ν”„λ‘œμ‹œμ €λ₯Ό ν˜ΈμΆœν•  수 μžˆμŠ΅λ‹ˆλ‹€.

    둜컬 λ©”μ‹œμ§€ 버퍼가 λ‹€ μ°¨μ„œ ν•΄λ‹Ή μ—λŸ¬κ°€ λ°œμƒν•œ 경우, μ‚¬μš©μžλŠ” DBMS_PIPE.reset_buffer ν”„λ‘œμ‹œμ € λ˜λŠ” DBMS_PIPE.send_message ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ 둜컬 λ©”μ‹œμ§€ 버퍼λ₯Ό λΉ„μ›Œμ€˜μ•Ό ν•©λ‹ˆλ‹€.

    (둜컬 λ©”μ‹œμ§€ λ²„νΌμ˜ μš©λŸ‰μ€ 4096 λ°”μ΄νŠΈ)

    O2P03

    ERROR

    둜컬 λ©”μ‹œμ§€ 버퍼가 λΉ„μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

    둜컬 λ©”μ‹œμ§€ 버퍼가 λΉ„μ–΄ μžˆμ„ λ•Œ DBMS_PIPE.unpack_message ν”„λ‘œμ‹œμ €λ₯Ό 호좜 ν•  경우 ν•΄λ‹Ή μ—λŸ¬κ°€ λ°œμƒν•©λ‹ˆλ‹€.

    O2P04

    ERROR

    둜컬 λ©”μ‹œμ§€ μ•„μ΄ν…œκ³Ό μƒμ΄ν•œ 데이터 μž…λ‹ˆλ‹€DBMS_PIPE.unpack_message ν”„λ‘œμ‹œμ €μ— μž…λ ₯ν•œ OUT νŒŒλΌλ―Έν„°μ˜ 데이터 νƒ€μž…κ³Ό 둜컬 λ©”μ‹œμ§€ μ•„μ΄ν…œμ˜ 데이터 νƒ€μž…μ΄ μƒμ΄ν•©λ‹ˆλ‹€.DBMS_PIPE.next_item_type ν•¨μˆ˜λ₯Ό 톡해 λ‹€μŒ μ•„μ΄ν…œμ˜ 데이터 νƒ€μž…μ„ μ‘°νšŒν•˜μ—¬ μ•Œλ§žμ€ OUT νŒŒλΌλ―Έν„°λ₯Ό μž…λ ₯ν•΄μ•Ό ν•©λ‹ˆλ‹€.

    O2Q02

    ERROR

    DBMS_SQL.define_array ν”„λ‘œμ‹œμ €μ˜ value νŒŒλΌλ―Έν„°κ°€ array data type이 μ•„λ‹™λ‹ˆλ‹€.

    O2Q03

    ERROR

    DBMS_SQL.bind_array ν”„λ‘œμ‹œμ €μ˜ value νŒŒλΌλ―Έν„°κ°€ array data type이 μ•„λ‹™λ‹ˆλ‹€.

    O2Q04

    ERROR

    DBMS_SQL.describe_columns ν”„λ‘œμ‹œμ €μ˜ OUT νŒŒλΌλ―Έν„°μ˜ data type이 잘λͺ»λμŠ΅λ‹ˆλ‹€.

    O2Q05

    ERROR

    DBMS_SQL.describe_columns ν”„λ‘œμ‹œμ €μ˜ desc_t OUT νŒŒλΌλ―Έν„°μ˜ data type이 arrayκ°€ μ•„λ‹™λ‹ˆλ‹€.

    O2Q06

    ERROR

    DBMS_SQL.describe_columns ν”„λ‘œμ‹œμ € μˆ˜ν–‰ μ‹œμ μ— bind variableλ˜μ§€ μ•Šμ€ νŒŒλΌλ―Έν„°κ°€ μžˆμŠ΅λ‹ˆλ‹€.

    O2Q07

    ERROR

    DBMS_SQL ν”„λ‘œμ‹œμ €/ν•¨μˆ˜ μˆ˜ν–‰ 쀑 λ‚΄λΆ€ μ—λŸ¬κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

    O2Q08

    ERROR

    DBMS_SQL.open_cursor둜 μ—΄λ € μžˆλŠ” μ»€μ„œ κ°œμˆ˜κ°€ 100개λ₯Ό μ΄ˆκ³Όν–ˆμŠ΅λ‹ˆλ‹€.

    O2Q09

    ERROR

    DBMS_SQL.execute ν˜Ήμ€ DBMS_SQL.execute_and_fetch ν•¨μˆ˜λ‘œ SQL문을 μ‹€ν–‰ν•˜μ§€ μ•Šμ€ μƒνƒœμ—μ„œ DBMS_SQL.fetch_rows ν•¨μˆ˜ ν˜Ήμ€ DBMS_SQL.column_value ν”„λ‘œμ‹œμ €λ₯Ό μˆ˜ν–‰ν–ˆμŠ΅λ‹ˆλ‹€.

    O2Q10

    ERROR

    DBMS_SQL.execute_and_fetch ν•¨μˆ˜μ—μ„œ exactνŒŒλΌλ―Έν„°λ₯Ό true둜 ν•˜μ—¬ μˆ˜ν–‰ν•œ SELECTλ¬Έ 결과의 row κ°―μˆ˜κ°€ 1κ°œλ³΄λ‹€ λ§ŽμŠ΅λ‹ˆλ‹€.

    O2Q11

    ERROR

    DBMS_SQL.bind_array ν•¨μˆ˜μ—μ„œ array λ‚΄ μ§€μ •ν•œ λ²”μœ„κ°’(index1, index2)이 μ‹€μ œ μ €μž₯된 array element 갯수 λ²”μœ„λ₯Ό λ²—μ–΄λ‚¬μŠ΅λ‹ˆλ‹€.

    O2Q12

    ERROR

    Defineλ˜μ§€ μ•Šμ€ μ»¬λŸΌμ— λŒ€ν•œ fetch μš”μ²­μ΄ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

    O2S02

    ERROR

    μž…λ ₯ν•œ λ¬Έμžμ—΄(simple sql name)은 ν˜•μ‹μ΄ μœ νš¨ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

    O2S03

    ERROR

    μž…λ ₯ν•œ λ¬Έμžμ—΄(object name)은 ν˜•μ‹μ΄ μœ νš¨ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

    O2XP1

    DEBUG1

    DBMS_PIPEμ—μ„œ μ‹œκ°„ 초과 λ°œμƒμ„ κΈ°λ‘ν•˜κΈ° μœ„ν•œ 디버깅 λ‘œκ·Έμž…λ‹ˆλ‹€. DBMS_PIPE.send_message λ˜λŠ” DBMS_PIPE.receive_message ν•¨μˆ˜μ—μ„œ νƒ€μž„μ•„μ›ƒμ΄ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.

    O2XP2

    DEBUG1

    DBMS_PIPEμ—μ„œ νŒŒμ΄ν”„κ°€ μ œκ±°λ¨μ„ κΈ°λ‘ν•˜κΈ° μœ„ν•œ 디버깅 λ‘œκ·Έμž…λ‹ˆλ‹€. λ¬΅μ‹œμ μœΌλ‘œ μƒμ„±λœ νŒŒμ΄ν”„κ°€ λΉ„μ—ˆκ±°λ‚˜ μ‚¬μš©μžκ°€ λͺ…μ‹œμ μœΌλ‘œ 제거 λͺ…령을 μ‹€ν–‰ν–ˆμ„ λ•Œ νŒŒμ΄ν”„ μ œκ±°κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

    O2XP3

    DEBUG1

    DBMS_PIPEμ—μ„œ νŒŒμ΄ν”„λ‘œλΆ€ν„° λΆ„λ¦¬λ˜μ—ˆμŒμ„ κΈ°λ‘ν•˜κΈ° μœ„ν•œ 디버깅 λ‘œκ·Έμž…λ‹ˆλ‹€. νŒŒμ΄ν”„μ— λŒ€ν•œ λ™μž‘μ„ λ§ˆλ¬΄λ¦¬ν•œ ν›„ ν”„λ‘œμ„ΈμŠ€κ°€ νŒŒμ΄ν”„λ‘œλΆ€ν„° λΆ„λ¦¬λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

    O2XO0

    DEBUG1

    DBMS_OUTPUTμ—μ„œ λ²„νΌμ˜ μ‚¬μ΄μ¦ˆκ°€ λ³€λ™λ˜μ—ˆμŒμ„ κΈ°λ‘ν•˜κΈ° μœ„ν•œ 디버깅 λ‘œκ·Έμž…λ‹ˆλ‹€.

    O2XO1

    DEBUG1

    DBMS_OUTPUTμ—μ„œ DBMS_OUTPUT.serveroutput νŒŒλΌλ―Έν„°κ°€ λ³€λ™λ˜μ—ˆμŒμ„ κΈ°λ‘ν•˜κΈ° μœ„ν•œ 디버깅 λ‘œκ·Έμž…λ‹ˆλ‹€.

    SQL Function μ°Έμ‘° μ•ˆλ‚΄μ„œ