top of page

Get Foundation Error from ORA Error

Writer's picture: Rumesh Aponso (RMAX)Rumesh Aponso (RMAX)
FUNCTION Strip_Ora_Error (
   sqlerrm_        IN VARCHAR2,
   sqlcode_        IN NUMBER  DEFAULT NULL,
   strip_ora_only_ IN BOOLEAN DEFAULT FALSE,
   keep_non_fnd_   IN BOOLEAN DEFAULT TRUE ) RETURN VARCHAR2
IS
   lsqlcode_ NUMBER;
BEGIN
   IF (sqlcode_ IS NULL AND sqlerrm_ LIKE 'ORA-%') THEN
      lsqlcode_ := to_number(SUBSTR(sqlerrm_, 4, INSTR(sqlerrm_, ':') - 4));
   ELSE
      lsqlcode_ := sqlcode_;
   END IF;

   IF (lsqlcode_ IS NOT NULL) THEN
      IF (Is_Foundation_Error(lsqlcode_)) THEN
         IF (strip_ora_only_) THEN
            -- Remove 'ORA-xyz: ' but keep 'LuName.ERROR_NAME: '
            RETURN trim(SUBSTR(sqlerrm_, INSTR(sqlerrm_, ':') + 2));
         ELSE
            -- Remove 'ORA-xyz: ' and 'LuName.ERROR_NAME: '
            RETURN trim(SUBSTR(sqlerrm_, INSTR(sqlerrm_, ':', 1, 2) + 2));
         END IF;
      ELSE
         IF (keep_non_fnd_) THEN
            -- Keep 'ORA-xyz: '
            RETURN trim(sqlerrm_);
         ELSE
            -- Remove 'ORA-xyz: '
            RETURN trim(SUBSTR(sqlerrm_, INSTR(sqlerrm_, ':') + 2));
         END IF;
      END IF;
   ELSE
      RETURN trim(sqlerrm_);
   END IF;
END Strip_Ora_Error;

1 view0 comments

Related Posts

See All

Fnd Dynamic Tab Page in IEE Client

[FndWindowRegistration("YVVDA_COMPANY_ADDR", "YvvdaCompanyAddr", FndWindowRegistrationFlags.HomePage)] [FndDynamicTabPage("frmCompanyAddr...

LISTAGG in PLSQL

Example 1: SELECT DISTINCT LISTAGG(t.commission_receiver, ';') WITHIN GROUP (ORDER BY t.commission_receiver) FROM...

Comentários


Copyright © 2025 RMAXOneNote

  • Online CV
  • LinkedIn
  • Youtube
  • GitHub
  • Blogger
bottom of page