sql >> Database teknologi >  >> RDS >> Database

Undersøger en ORA 028513 DG4ODBC-fejl

Tilslutning af Oracle til SQL Server er en af ​​de mest almindelige anvendelsesmuligheder for Easysoft SQL Server ODBC-driveren. At understøtte denne kombination indebærer ikke kun at yde assistance med at konfigurere vores chauffør. Det betyder også at hjælpe med at løse Oracle-konfigurationsproblemer, der forhindrer Oracle Heterogeneous Services i at komme så langt som at indlæse vores driver.

For nylig rapporterede en SQL Server ODBC-driverkunde følgende fejl til os:

ORA-28513: internal error in heterogeneous remote agent

Kunden var i stand til at forsyne os med en DG4ODBC-sporingslog, som fortalte os to ting:

  1. Oracle-konfigurationsfilerne (.ora) var konfigureret korrekt. Hvis disse filer indeholder en fejl (f.eks. en manglende eller uvedkommende parentes), vil der ikke blive genereret nogen DG4ODBC-sporingslog.
  2. DG4ODBC forsøgte ikke engang at indlæse unixODBC Driver Manager.

I situationer som disse, hvor Oracle DG4ODBC-loggen ikke identificerer problemet (den vil normalt altid indeholde flere oplysninger end ORA-NNNN-fejlen rapporteret af applikationen), og ODBC-logning endnu ikke er mulig, når vi efter strace eller truss . For eksempel:

  1. Start to shell-sessioner som Oracle-bruger.
  2. Stop Oracle-lytteren i skal 1.
  3. Start lytteren med denne kommando:
    strace -f -o /tmp/easysoft.log -s 512 lsnrctl start

    —Eller—

    truss -wall -rall -o /tmp/easysoft.log lsnrctl start
  4. I skal 2, start SQL*PLus og kør en SQL-sætning mod DG4ODBC / SQL Server-databaselinket.
  5. Stop Oracle-lytteren i skal 2.

Men systembibliotekets sporingsværktøj (truss i kundens tilfælde) afslørede stadig ikke årsagen til problemet.

Til sidst viste det sig, at kunden indstillede ORA_NLS10 miljøvariabel, og en bivirkning ved at gøre dette var at forhindre DG4ODBC i at virke. Da variablen ikke behøvede at blive indstillet på denne maskine, var løsningen på kundens problem at fjerne den og fjerne den fra en profilfil.


  1. Er det muligt at bruge en variabel og ikke angive en returtype i postgreSQL?

  2. Hvorfor behandler Oracle 9i en tom streng som NULL?

  3. Dato i en URL dd/mm/åååå

  4. Konverter tidsstempel til dato i Oracle SQL