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

Опит за създаване на пакет - грешка PLS-00330

Грешката се докладва срещу ред 11 на тялото на пакета, което е

    RETURN NUMBER;

Number е тип данни, а не име на променлива. Не е ясно какво всъщност искате да върнете тук; докато правите заявки и го улавяте, може би LOCATION; но тъй като това е низ, типът връщане на функцията също трябва да бъде низ (т.е. VARCHAR2 вместо NUMBER ). Може би:

create or replace PACKAGE BODY e_con_pack
    AS
    FUNCTION 
    GET_LOCATION_namel (p_con_id in NUMBER, p_con_name out VARCHAR2)
    RETURN VARCHAR2 IS  
     LOCATION VARCHAR2(30);
    BEGIN
      SELECT LOCATION INTO LOCATION FROM LDS_CONSULTANT WHERE CONSULTANT_ID = p_con_id;    
      SELECT CST_NAME INTO p_con_name FROM LDS_CONSULTANT WHERE CONSULTANT_ID = p_con_id;

    RETURN LOCATION;
    END GET_LOCATION_namel;

Или още по-добре, използвайте типа данни на колоната, както вече сте другаде:

create or replace PACKAGE BODY e_con_pack
    AS
    FUNCTION 
    GET_LOCATION_namel (p_con_id in NUMBER, p_con_name out VARCHAR2)
    RETURN LDS_CONSULTANT.LOCATION%type IS  
     LOCATION LDS_CONSULTANT.LOCATION%type;
    BEGIN
...

И в двата случая ще трябва да промените спецификацията на пакета, за да съответства, разбира се.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вмъкване на дата от java към Oracle DB

  2. Oracle получава външни ключове

  3. Как да проверите връзката на cassandra с интегратора на данни pentaho

  4. ORA-01097

  5. Как да направите заявка ГРУПИРАНЕ ПО месец в една година