我想在SQL中运行此代码。它返回identifier not declared patient_t
。我已经创建了patient_t类型/对象。我也尝试了patient_t%rowtype
CREATE OR REPLACE PACKAGE PATIENT_DATA_SERVICES AS
function get_patient_id
( p_first_name in varchar2
, p_last_name in varchar2
) return number
;
function get_patient_record
( p_patient_id in number
) return patient_t
;
END PATIENT_DATA_SERVICES;
答案 0 :(得分:1)
删除%rowtype。 %rowtype表示TABLE或CURSOR。 patient_t是您创建的TYPE。
function get_patient_record
( p_patient_id in number
) return patient_t
;
答案 1 :(得分:0)
您需要在PL / SQL包中声明类型patient_t
:
CREATE OR REPLACE PACKAGE PATIENT_DATA_SERVICES AS
TYPE patient_t IS RECORD (id NUMBER(15), ...);
function get_patient_id
( p_first_name in varchar2
, p_last_name in varchar2
) return number
;
function get_patient_record
( p_patient_id in number
) return patient_t
;
END PATIENT_DATA_SERVICES;
如果patient_t
是数据库中的表,则可以按如下方式声明该函数:
function get_patient_record (p_patient_id in number) return patient_t%ROWTYPE;