| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> c.d.o.misc -> Re: Seeing results of stored procedure
On 15 Jan 2003 06:31:17 -0800, Thomas Kyte <tkyte_at_oracle.com> wrote:
>
>that you didn't open the ref cursor in the procedure (or you did but then closed
>it before exiting the procedure).
I tried that (I think), but still got the error. Maybe I've screwed something up in the procedure?? Here's the code:
(Preface - I wanted to return a complete record, even for the data we don't capture in our database, so that's why I have the record defined with default values in some fields, and the reason I did the FETCH INTO).
{PACKAGE} CREATE OR REPLACE package Get_Facility as
TYPE facility_rec IS RECORD
(FacilityRegistryIdentifier VARCHAR2 (12) := '',
FacilitySiteName agency_interest.master_ai_name%type,
FacilitySiteTypeName VARCHAR2 (20) := 'Stationary',
FederalFacilityIndicator VARCHAR2 (1) := '',
TribalLandIndicator subj_item_location.native_land_flag%type,
CongressionalDistrictNumber VARCHAR2 (2) := '',
LegislativeDistrictNumber VARCHAR2 (2) := '',
HUCCode VARCHAR2 (8) := '',
LocationAddressText agency_interest_address.physical_address_line_1%type,
SupplementalLocationText
agency_interest_address.physical_address_line_2%type,
LocalityName agency_interest_address.physical_address_municipality%type,
CountyStateFIPSCode VARCHAR2 (5) := '',
CountyName mtb_parish_county.parish_or_county_desc%type,
StateUSPSCode mtb_state.state_code%type,
StateName mtb_state.state_desc%type,
CountryName VARCHAR2 (44) := 'USA',
LocationZIPCode agency_interest_address.physical_address_zip%type,
LocationDescriptionText VARCHAR2 (256) := '',
DataSourceName VARCHAR2 (25) := 'MS State Master File',
LastReportedDate VARCHAR2 (8),
stateFacilitySystemAcronymName VARCHAR2 (20) := 'ENSITE',
stateFacilityIdentifier agency_interest.master_ai_id%type);
TYPE cur_Get_Fac_By_ID is REF CURSOR RETURN facility_rec;
PROCEDURE Get_Facility_By_ID (v_Facility_in IN VARCHAR2,
facility_out_cur OUT cur_Get_Fac_By_ID);
END Get_Facility;
/
And here's the package body:
CREATE OR REPLACE PACKAGE BODY Get_Facility AS
PROCEDURE Get_Facility_By_ID (v_Facility_in IN VARCHAR2,
facility_out_cur OUT cur_Get_Fac_By_ID) as
CURSOR cur_GetFacility_ByID (Facility_ID IN NUMBER) is
SELECT AGENCY_INTEREST.MASTER_AI_ID,
AGENCY_INTEREST.MASTER_AI_NAME,
AGENCY_INTEREST_ADDRESS.PHYSICAL_ADDRESS_LINE_1,
AGENCY_INTEREST_ADDRESS.PHYSICAL_ADDRESS_LINE_2,
AGENCY_INTEREST_ADDRESS.PHYSICAL_ADDRESS_MUNICIPALITY,
MTB_PARISH_COUNTY.FIPS_CODE || '28',
MTB_PARISH_COUNTY.PARISH_OR_COUNTY_DESC,
MTB_STATE.STATE_CODE,
MTB_STATE.STATE_DESC,
AGENCY_INTEREST_ADDRESS.PHYSICAL_ADDRESS_ZIP,
SUBJ_ITEM_LOCATION.NATIVE_LAND_FLAG,
to_char(sysdate, 'YYYYMMDD')
FROM
AGENCY_INTEREST,
AGENCY_INTEREST_ADDRESS,
SUBJ_ITEM_LOCATION,
MTB_MUNICIPALITY,
MTB_PARISH_COUNTY,
MTB_STATE
WHERE
AGENCY_INTEREST.MASTER_AI_ID = Facility_ID AND
(AGENCY_INTEREST.INT_DOC_ID = 0 ) AND
(AGENCY_INTEREST_ADDRESS.INT_DOC_ID = 0 ) AND
(SUBJ_ITEM_LOCATION.INT_DOC_ID = 0 ) AND
(SUBJ_ITEM_LOCATION.SUBJECT_ITEM_CATEGORY_CODE = 'AI' ) AND
(AGENCY_INTEREST.MASTER_AI_ID =
AGENCY_INTEREST_ADDRESS.MASTER_AI_ID(+) ) AND
((AGENCY_INTEREST_ADDRESS.PHYSICAL_ADDRESS_MUNICIPALITY =
mtb_municipality.MUNICIPALITY_DESC (+) ) AND
(MTB_MUNICIPALITY.PARISH_OR_COUNTY_CODE =
mtb_parish_county.PARISH_OR_COUNTY_CODE)) AND
(AGENCY_INTEREST.MASTER_AI_ID =
SUBJ_ITEM_LOCATION.MASTER_AI_ID(+) ) AND
(AGENCY_INTEREST_ADDRESS.PHYSICAL_ADDRESS_STATE_CODE =
MTB_STATE.STATE_CODE(+) );
facility_out_rec facility_rec;
BEGIN OPEN cur_GetFacility_ByID (v_Facility_in);
FETCH cur_GetFacility_ByID
INTO
facility_out_rec.stateFacilityIdentifier, facility_out_rec.FacilitySiteName, facility_out_rec.LocationAddressText, facility_out_rec.SupplementalLocationText, facility_out_rec.LocalityName, facility_out_rec.CountyStateFIPSCode, facility_out_rec.CountyName, facility_out_rec.StateUSPSCode, facility_out_rec.StateName, facility_out_rec.LocationZIPCode, facility_out_rec.TribalLandIndicator, facility_out_rec.LastReportedDate;
CLOSE cur_GetFacility_ByID;
END Get_Facility_By_ID;
END Get_Facility;
/
And the attempt to execute:
SQL> variable facility_out_cur REFCURSOR; SQL> exec Get_Facility.Get_Facility_By_ID(2290,:facility_out_cur);
PL/SQL procedure successfully completed.
SQL> print :facility_out_cur;
ERROR:
ORA-24338: statement handle not executed
SP2-0625: Error printing variable "facility_out_cur"
Thanks,
Harry
Received on Wed Jan 15 2003 - 13:22:09 CST
![]() |
![]() |