sql >> Databasteknik >  >> RDS >> Oracle

Oracle.Dataaccess-fel ORA-06502:PL/SQL:numeriskt eller värdefel:teckensträngsbuffert för liten

Hittade svaret.

För parametern OUT deklarerade jag storleken till max för varchar - 32767 och det började fungera.

För att förenkla returnerar den lagrade procen en parameter OUT av typen VARCHAR2. Men för att konsumera utdata från .NET passerade jag VARCHAR2 utan någon storlek. Så buffertutrymmet som tilldelats för att ta emot returvärdet var 0 byte. När proc returnerar värdet mer än tilldelad buffert, som är 0 byte, blir det fel.

Så jag angav maxvärdet för VARCHAR2-32767 i C#-koden och det började fungera :).



  1. Istället för NULL hur visar jag `0` i resultatet med SELECT-satsen sql?

  2. Postgres:Begränsning med endast kryss på INSERT

  3. SQL Agent Job - Run As rullgardinsmenyn är tom

  4. Importera CSV-filfel:Kolumnvärde som innehåller kolumnavgränsare