Oracle
 sql >> Baza danych >  >> RDS >> Oracle

PLS-00382:wyrażenie jest niewłaściwego typu przez wykonanie funkcji i spróbuj umieścić typ powrotu w zmiennej

Deklarujesz typ rekordu, typ kolekcji/tabeli i funkcje w tym samym pakiecie.

Kiedy wywołujesz funkcję, musisz użyć tego samego typu, z tego pakietu.

Ale tak nie jest. Ma taką samą strukturę - pola i typy danych - ale nie jest taka sama, jeśli chodzi o Oracle. Oracle musi to wiedzieć dokładnie używany jest ten sam typ, częściowo po to, aby śledzić zależności między obiektami.

Twój anonimowy blok musi odnosić się do typów pakietów, zamiast deklarować własne - podobne, ale sprzeczne - typy:

DECLARE
    managers hr_package.managers_table_type;
BEGIN
    managers := hr_package.managers_multiple_departments;
END;

Jako bonus wymaga znacznie mniej pisania i oznacza, że ​​nie musisz zarządzać zduplikowanymi typami.

Oznacza to jednak również, że deklaracje typu muszą znajdować się w specyfikacji pakietu - co oczywiście ma miejsce w przypadku wszystkiego, co ma być publicznie widoczne.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Podłączanie wyroczni w aplikacji na Androida

  2. Nie można wykonać zapytania sql

  3. ORACLE NLS_LANG

  4. Jak porównać dwie tabele kolumna po kolumnie w Oracle?

  5. Oracle szyfruje/odszyfrowuje clob