473,890 Members | 1,216 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Stored Procedure returning multiple values

129 New Member
Can anyone help?

Ive created the below stored procedure to allow an input parameter of post code to be entered to display properties which have this post code. The procedure creates fine but because i have two properties with the post code 'S1 4SG', the execution of the procedure fails, it gives the error:

ERROR at line 1:
ORA-01422: exact fetch returns more than requested number of rows
ORA-06512: at "CBRAID.PROC_PR OPSEARCH", line 19
ORA-06512: at line 1

Im sure procedures can return more than one value, so does anyone know why its doesnt work or what i can do to make it work?

Below is the procedure and also how I execute and view it in the notepad file attached.
Expand|Select|Wrap|Line Numbers
  1. CREATE OR REPLACE PROCEDURE proc_PropSearch
  2. (v_postcode IN Property.PostCode%TYPE,
  3. v_propertyid OUT Property.PropertyID%TYPE,
  4. v_propertytypeid OUT Property.PropertyTypeID%TYPE,
  5. v_houseflatnum OUT Property.HouseFlatNumber%TYPE,
  6. v_street OUT Property.Street%TYPE,
  7. v_city OUT Property.City%TYPE,
  8. v_county OUT Property.County%TYPE,
  9. v_furnished OUT Property.Furnished%TYPE,
  10. v_noofbedrooms OUT Property.NoOfBedrooms%TYPE,
  11. v_noofensuites OUT Property.NoOfEnSuites%TYPE,
  12. v_noofbathrooms OUT Property.NoOfBathrooms%TYPE,
  13. v_receptionrooms OUT Property.NoOfReceptionRooms%TYPE,
  14. v_propertydesc OUT Property.PropertyDesc%TYPE,
  15. v_available OUT Property.Available%TYPE)
  16.  
  17. IS
  18. BEGIN
  19.     SELECT PropertyID, PropertyTypeID, HouseFlatNumber, Street, City, County, Furnished, NoOfBedrooms, NoOfEnSuites, NoOfBathrooms, NoOfReceptionRooms, PropertyDesc, Available
  20.     INTO v_propertyid, v_propertytypeid, v_houseflatnum, v_street, v_city, v_county, v_furnished, v_noofbedrooms, v_noofensuites, v_noofbathrooms, v_receptionrooms, v_propertydesc, v_available 
  21.     FROM Property
  22.     WHERE PostCode = v_postcode;
  23. END proc_PropSearch;
/

VARIABLE g_propertyid NUMBER
VARIABLE g_propertytypei d NUMBER
VARIABLE g_houseflatnum CHAR(4)
VARIABLE g_street VARCHAR2(30)
VARIABLE g_city VARCHAR2(30)
VARIABLE g_county VARCHAR2(30)
VARIABLE g_furnished CHAR(3)
VARIABLE g_noofbedrooms NUMBER
VARIABLE g_noofensuites NUMBER
VARIABLE g_noofbathrooms NUMBER
VARIABLE g_receptionroom s NUMBER
VARIABLE g_propertydesc VARCHAR2(50)
VARIABLE g_available CHAR(3)

EXECUTE proc_PropSearch ('S1 4SG', :g_propertyid, :g_propertytype id, :g_houseflatnum , :g_street, :g_city, :g_county, :g_furnished, :g_noofbedrooms , :g_noofensuites , :g_noofbathroom s, :g_receptionroo ms, :g_propertydesc , :g_available);
PRINT g_propertyid g_propertytypei d g_houseflatnum g_street g_city g_county g_furnished g_noofbedrooms g_noofensuites g_noofbathrooms g_receptionroom s g_propertydesc g_available

This is created in PL/SQL.
Thank you for help
Apr 12 '08 #1
6 25171
debasisdas
8,127 Recognized Expert Expert
That is because the SQl statment is returning more than one record.

Try to use cursor.
Apr 14 '08 #2
Constantine AI
129 New Member
That is because the SQl statment is returning more than one record.

Try to use cursor.
I am new to PL/SQL, could you show me the syntax of how the cursor should work with the stored procedure?
Apr 14 '08 #3
debasisdas
8,127 Recognized Expert Expert
I am new to PL/SQL, could you show me the syntax of how the cursor should work with the stored procedure?
Please check for the articles in the HowTo section of Oracle in this forum for some related discussions.
Apr 14 '08 #4
Constantine AI
129 New Member
Hi I have incorporated a cursor into the stored procedure to return multiple values. The procedure with the cursor creates fine but it doesnt display the results in the DBMS_OUTPUT.PUT _LINE even when ive out SET SERVEROUTPUT ON. Can anybody see the problem?

Here is the code: -
Expand|Select|Wrap|Line Numbers
  1. SET SERVEROUTPUT ON
  2. CREATE OR REPLACE PROCEDURE proc_PropSearch
  3. (v_postcode         IN     Property.PostCode%TYPE,
  4. v_propertyid         OUT     Property.PropertyID%TYPE,
  5. v_propertytypeid     OUT     Property.PropertyTypeID%TYPE,
  6. v_houseflatnum         OUT     Property.HouseFlatNumber%TYPE,
  7. v_street         OUT     Property.Street%TYPE,
  8. v_city             OUT     Property.City%TYPE,
  9. v_county         OUT     Property.County%TYPE,
  10. v_furnished         OUT     Property.Furnished%TYPE,
  11. v_noofbedrooms         OUT     Property.NoOfBedrooms%TYPE,
  12. v_noofensuites         OUT     Property.NoOfEnSuites%TYPE,
  13. v_noofbathrooms     OUT     Property.NoOfBathrooms%TYPE,
  14. v_receptionrooms     OUT     Property.NoOfReceptionRooms%TYPE,
  15. v_propertydesc         OUT     Property.PropertyDesc%TYPE,
  16. v_available         OUT     Property.Available%TYPE)
  17.  
  18. AS
  19. CURSOR Cursor_PropSearch IS
  20. SELECT PropertyID, PropertyTypeID, HouseFlatNumber, Street, City, County, Furnished, NoOfBedrooms, NoOfEnSuites, NoOfBathrooms, NoOfReceptionRooms, PropertyDesc, Available   
  21. FROM Property
  22. WHERE PostCode = v_postcode;
  23.  
  24. BEGIN
  25. OPEN Cursor_PropSearch;
  26.  
  27. LOOP
  28.     FETCH Cursor_PropSearch 
  29.     INTO v_propertyid, v_propertytypeid, v_houseflatnum, v_street, v_city, v_county, v_furnished, v_noofbedrooms, v_noofensuites, v_noofbathrooms, v_receptionrooms, v_propertydesc, v_available; 
  30.     EXIT WHEN Cursor_PropSearch%NOTFOUND OR 
  31.         Cursor_PropSearch%NOTFOUND IS NULL;
  32.  
  33. DBMS_OUTPUT.PUT_LINE
  34. (TO_CHAR(v_propertyid) || TO_CHAR(v_propertytypeid) || TO_CHAR(v_houseflatnum) || TO_CHAR(v_street) || TO_CHAR(v_city) || TO_CHAR(v_county) || TO_CHAR(v_furnished) || TO_CHAR(v_noofbedrooms) || TO_CHAR(v_noofensuites) || TO_CHAR(v_noofbathrooms) || TO_CHAR(v_receptionrooms) || TO_CHAR(v_propertydesc) || TO_CHAR(v_available));
  35.  
  36. END LOOP;
  37.  
  38. CLOSE Cursor_PropSearch;
  39. END proc_PropSearch;
  40. /
  41.  
Apr 15 '08 #5
debasisdas
8,127 Recognized Expert Expert
If you simply want to display the values using DBMS_OUTPUT why using all those OUT parameters ?
Apr 15 '08 #6
BMantri
7 New Member
Hello,

i have executed by trying a test procedure and i got the output :)
create or replace procedure test(p_name varchar2, p_type out varchar2)
is
cursor c1 is select tabtype from tab where tname = p_name;
begin
open c1;
loop
fetch c1 into p_type;
exit when c1%notfound;
dbms_output.put _line('The type is : ' || p_type);
end loop;
close c1;
end;
/


and the calling procedure as

SQL> declare
2 p_name varchar2(20) := 'TEST1';
3 p_type varchar2(20);
4 begin
5 test(p_name, p_type);
6 end;
7 /
The type is : TABLE

PL/SQL procedure successfully completed.


can you please conpare your procedure with these two?


Regards,

BMantri
Apr 22 '08 #7

Sign in to post your reply or Sign up for a free account.

Similar topics

6
42199
by: Samuel Hon | last post by:
Hi I'm not sure what the best approach for this is: I have a stored procedure which I would like to use to return several output values instead of returning a recordset. CREATE PROCEDURE Test (@param1 int, @param2 int OUTPUT, @param3 int OUTPUT) AS SELECT field2, field3 FROM Table WHERE field1 = @param1
5
22660
by: Member | last post by:
Hi All. Maybe someone in here could help on this too.... Uusally I can return a value from a stored procedure without any problem. Today I ran into something I cannot figure out. Basically....what I am doing is a couple of inserts or updates depending on what is being passed.
4
10701
by: randy.p.ho | last post by:
Using JDBC, is there a way to call a stored procedure with multiple return values? Thanks.
3
1775
by: Gaz | last post by:
I have a table which has 10 columns which make up the secondary key. 1 or more of these columns can be set but the remaining columns in the secondary key will be null. For example : id k1 k2 k3 k4 k5 k6 k7 k8 k9 k10 data ------------------------------------------------- 0 1 1 - - - - - - - - test0 1 1 1 1 - - - - - - - test1 2 1 1 2 - - - - - - - test2
3
2555
by: wxbuff | last post by:
I have a report based on our product names that consists of two parts. Both insert data into a temporary table. 1. A single grouped set of results based on all products 2. Multiple tables based on individual product names. I am getting data by calling the same stored procedure multiple times... for the single set of data I use "product like '%'" To get the data for individual products, I am using a cursor to parse
9
10948
by: Karl O. Pinc | last post by:
I want to return multiple values, but not a set, only a single row, from a plpgsql function and I can't seem to get it to work. (I suppose I'd be happy to return a set, but I can't seem to make that work either. Anyway, what's wrong with this?) Version is: $ rpm -q postgresql
0
2085
by: adougall | last post by:
I would like to know what the outcome was on the topic for Nested Stored Procedure returning result sets in DB2 on AS/400 was. I am getting the same problem RESULT_SET_LOCATOR in *LIBL type *SQLUDT not found.
4
6948
by: vertigo262 | last post by:
Is it possible to use to select statements in a stored procedure? I am building a movie rating system, what I am doing is creating a table with movies and individual user ratings. The code needs to get a count of the ratings, then the sum of them to get the percentage. I am getting a error Exception Details: System.IndexOutOfRangeException: columncount
3
2583
by: Homer J. Simpson | last post by:
I have the following stored procedure: ALTER PROCEDURE . AS BEGIN SET NOCOUNT ON; SELECT COUNT(*) FROM QUICKNOTES END ....and the following data source in my .aspx file:
0
9978
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
9821
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
11229
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
9630
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
0
7169
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
6042
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
4676
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
4271
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
3276
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.