Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle грешка PLS-00323:подпрограма или курсор е деклариран в спецификация на пакет и трябва да бъде дефиниран в тялото на пакета

Дефинициите на процедурата за заглавка и тяло не съвпадат

В заглавката имате:

PROCEDURE get_films(fname VARCHAR2);

Докато в тялото:

PROCEDURE get_films(fname IN film.title%type, 
   r_date OUT film.release_date%type, dur OUT film.duration%type)

Вероятно просто трябва да актуализирате дефиницията на заглавката с двата допълнителни параметъра OUT?

За да обобщим

  • Уверете се, че дефиницията на заглавката съответства на всички параметри на изпълнението на тялото (брой параметри, имена на параметри, ред на параметрите и типове параметри)
  • Съгласно коментара на Алекс, не смесвайте и съпоставяйте персонализирания тип (film.title%type ) с основния тип (VARCHAR2 ). Изберете едното или другото.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle sqlldr обработва ли няколко INFILE паралелно

  2. Как да изпълним съхранена процедура в различна сесия по едно и също време в pl/sql

  3. Как да видя изходен параметър на CLOB в TOAD от съхранена процедура на Oracle?

  4. Изчисляване на възрастта на Oracle от дата на раждане и днес

  5. Oracle SQL - Записи с флагове въз основа на датата на записа спрямо историята