sql >> Databáze >  >> RDS >> Oracle

Chyba Oracle.Dataaccess ORA-06502:PL/SQL:numerická nebo hodnotová chyba:vyrovnávací paměť znakového řetězce je příliš malá

Našel odpověď.

Pro parametr OUT jsem deklaroval velikost na max varchar - 32767 a začalo to fungovat.

Pro zjednodušení vrací uložený proces parametr OUT typu VARCHAR2. Ale abych spotřeboval tento výstup z .NET, předal jsem VARCHAR2 bez jakékoli velikosti. Prostor vyrovnávací paměti přidělený pro příjem hodnoty reurn byl tedy 0 bajtů. Když proc vrátí hodnotu větší než přidělená vyrovnávací paměť, což je 0 bajtů, dojde k chybě.

Zadal jsem tedy maximum VARCHAR2-32767 v kódu C# a začalo to fungovat :).



  1. Jak mohu zjistit výchozí znakovou sadu/kolování v mém MySQL

  2. C# Příliš mnoho připojení v MySQL

  3. Jak RTRIM_ORACLE() funguje v MariaDB

  4. Časové razítko PHP/MySQL bude vypadat atraktivněji