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

Oracle.Dataadgangsfejl ORA-06502:PL/SQL:numerisk eller værdifejl:tegnstrengbuffer for lille

Fandt svaret.

For OUT-parameteren erklærede jeg størrelsen til max af varchar - 32767, og det begyndte at virke.

For at forenkle returnerer den lagrede proc en parameter OUT af typen VARCHAR2. Men for at forbruge det output fra .NET passerede jeg VARCHAR2 uden nogen størrelse. Så bufferpladsen, der var allokeret til at modtage returværdien, var 0 bytes. Når proc returnerer værdien mere end tildelt buffer, som er 0 bytes, fejler den.

Så jeg specificerede maks. VARCHAR2-32767 i C#-koden, og det begyndte at virke :).



  1. MariaDB LOCALTIME() Forklaret

  2. Sådan tilføjer du et sidehoved og en sidefod til en rapport i Microsoft Access

  3. konverter python strengdato til mysql datetime

  4. Hvad er forskellen mellem utf8mb4 og utf8 tegnsæt i MySQL?