में परिभाषित किया जाना चाहिए क्या कोई मुझे पैकेज में अपनी pl/sql प्रक्रिया डालने में मदद कर सकता है? मैं कोशिश की है और मैं इसे के साथ संघर्ष कर रहा हूँ:ओरेकल त्रुटि पीएलएस -00323: उपप्रोग्राम या कर्सर को पैकेज विनिर्देश में घोषित किया गया है और पैकेज बॉडी
CREATE OR REPLACE PACKAGE BODY film_pkg
IS
PROCEDURE get_films (fname IN film.title%TYPE,
r_date OUT film.release_date%TYPE,
dur OUT film.duration%TYPE)
AS
BEGIN
SELECT release_date, duration
INTO r_date, dur
FROM FILM
WHERE title = fname;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
r_date := '';
dur := '';
END get_films;
END film_pkg;
:
CREATE OR REPLACE PACKAGE film_pkg
IS
title VARCHAR2(100);
PROCEDURE get_films(fname VARCHAR2);
END film_pkg;
--
यह मेरा पैकेज शरीर जहां समस्या हो रही im है:
यह वही है मैं अपने पैकेज विनिर्देश के लिए है, है
अगर कोई मुझे त्रुटियों को ठीक मदद कर सकता है मैं इसे सराहना करेंगे:
Error(4,11): PLS-00323: subprogram or cursor 'GET_FILMS' is declared in a package specification and must be defined in the package body
जब मैंने कोशिश की कि मुझे पीकेजी बॉडी में त्रुटि मिली है: त्रुटि (4,11): पीएलएस -00323: उपप्रोग्राम या कर्सर 'GET_FILMS' पैकेज विनिर्देश में घोषित किया गया है और पैकेज बॉडी – SqlNoob
@SqlNoob में परिभाषित किया जाना चाहिए - '% type' ठीक है, लेकिन आपको बिल्कुल वही घोषणा का उपयोग करना होगा, यदि आप जानते हैं कि वे समान हैं तो भी आप मिश्रण और मिलान नहीं कर सकते; क्या आपने फिल्म में 'fname' fname बनाया था।शीर्षक% प्रकार 'भी है, या इसे' वर्कर 'के रूप में छोड़ दें? पूरी घोषणा समान होना चाहिए। (और आप पैरामीटर के लिए आकार निर्दिष्ट नहीं कर सकते हैं, इसलिए 'varchar2 (50 बाइट)' त्रुटि उत्पन्न करेगा)। –