Advertisement

03.26.2008 at 11:35PM PDT, ID: 23273116
[x]
Attachment Details
[x]
The Solution Rating System

With so many solutions, how can you tell which solutions are most likely to help you and which ones are not? To provide you with a tool to use, we rate our solutions based on various elements that most accurately determine if a solution is a quality solution. To explain what factors affect the solution rating, here are the elements we take into consideration when formulating our solution rating.

  • The Grade of the Solution
  • The Zone Rank of the Expert Providing the Solution
  • The Number of Author and Expert Comments
  • The Number of Experts Contributing
  • The Feedback of the Community

Your Input Matters
Because of the way the system is set up, the most important variable in this equation is you. As a member of Experts Exchange, you are able to cast your vote on the quality of the solutions in regard to how complete, accurate, helpful and easy to understand each solution is. When you provide your feedback, each rating is adjusted accordingly. So, if you see a solution that has a poor rating that you think is a good solution, let us know by rating it. As you do, the rating will be adjusted and will become more accurate for other members of our site.

If you have any suggestions that you would like to make for our rating system, please ask a question in the Suggestions Zone of Community Support.

Thank you!

Call Oracle stored procedure, pass input variable

Tags: Oracle, 10g
I am trying to create a simple stored procedure in Oracle where I pass it a value (a county number) and it returns with the county name. The code has compiled successfully, but I am not able to successfully call it from SQLPlus. This is just a simple query to get me going on stored procedures. Once I get this to work I am going to be passing multiple variables and receiving multiple outputs. Please let me know the syntax for calling this simple stored procedure as well as for multiple input/output stored procedures.

I am pretty new to stored procedures (started on this a few hours ago). I didn't find anything really helpful on the web or on EE before posting this question. I am aware this situation might be best addressed with a function and not a stored procedure, but I have been told to investigate stored procedures for now.

Thanks in advance for your help!
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
CREATE OR REPLACE PROCEDURE GETCOUNTY(
    COUNTYNAME   OUT VARCHAR2,
    COUNTYNUMBER IN NUMBER
)
AS
begin
SELECT CO_NAME into countyname
    FROM COUNTY
    WHERE NBR_TENN_C = countynumber;
end;
 
 
I try to call the stored procedure as follows:
 
>call getcounty(19);
 
I get error messages saying wrong number of parameters, etc. I have tried several different syntaxes but nothing has worked.
Start your free trial to view this solution
Question Stats
Zone: Database
Question Asked By: dobbinjp
Solution Provided By: sdstuber
Participating Experts: 3
Solution Grade: A
Views: 356
Translate:
Loading Advertisement...
03.26.2008 at 11:53PM PDT, ID: 21219079

Rank: Guru

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
03.27.2008 at 12:01AM PDT, ID: 21219114

Rank: Wizard

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
03.27.2008 at 06:10AM PDT, ID: 21220871

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
03.27.2008 at 06:31AM PDT, ID: 21221079

Rank: Wizard

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
03.27.2008 at 06:32AM PDT, ID: 21221096

Rank: Wizard

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
03.27.2008 at 08:40AM PDT, ID: 21222560

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
03.27.2008 at 08:51AM PDT, ID: 21222705

Rank: Wizard

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
03.27.2008 at 09:00AM PDT, ID: 21222841

Rank: Guru

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
 
Loading Advertisement...
Microsoft
  • Internet Protocols
  • Applications
  • Development
  • OS
  • Hardware
  • Windows Security
Apple
  • Operating Systems
  • Hardware
  • Programming
  • Networking
  • Software
Internet
  • Search Engines
  • File Sharing
  • WebTrends / Stats
  • Spy / Ad Blockers
  • Web Browsers
  • New Net Users
  • Web Development
  • Chat / IM
  • Anti Spam
  • Web Servers
  • Anti-Virus
  • Email Clients
Gamers
  • Tips
  • Online / MMORPG
  • Puzzle
  • Emulators
  • Action / Adventure
  • Role Playing
  • Consoles
  • Game Programming
  • Strategy
  • Sports
  • Misc
  • Computer Games
Digital Living
  • Hardware
  • New Net Users
  • New Users
  • Software
  • Digital Music
  • Gaming World
  • Home Security
  • Apple
  • Networking Hardware
Virus & Spyware
  • Vulnerabilities
  • IDS
  • Encryption
  • Anti-Virus
  • Operating Systems Security
  • Software Firewalls
  • WebApplications
  • Cell Phones
  • Operating Systems
  • Internet
  • Hardware Firewalls
Hardware
  • Handhelds / PDAs
  • Displays / Monitors
  • Components
  • Networking Hardware
  • Peripherals
  • Laptops/Notebooks
  • Storage
  • Servers
  • Desktops
  • New Users
  • Misc
  • Apple
Software
  • System Utilities
  • Industry Specific
  • Network Management
  • Photos / Graphics
  • Page Layout
  • VMWare
  • Misc
  • Web Development
  • OS
  • CYGWIN
  • Voice Recognition
  • Message Queue
  • Quality Assurance
  • Security
  • Firewalls
  • MultiMedia Applications
  • Development
  • Database
  • Office / Productivity
  • Business Management
  • OS/2 Apps
  • Server Software
  • Internet / Email
ITPro
  • OS
  • Storage
  • Encryption
  • Operating Systems Security
  • Apple Hardware
  • Laptops & Notebooks
  • Servers
  • Networking Hardware
  • Peripherals
  • Devices
  • Displays / Monitors
  • WebTrends / Stats
  • Search Engines
  • Firewalls
  • WebApplications
  • IDS
  • Vulnerabilities
  • Email Clients
  • File Sharing
  • Spy / Ad Blockers
  • Web Browsers
  • Web Servers
  • Networking
  • Anti-Virus
  • Chat / IM
  • Anti Spam
Developer
  • Web Servers
  • Web Browsers
  • Game Programming
  • Dev Tools
  • Industry Specific
  • Office / Productivity
  • Database
  • CYGWIN
  • Web Development
  • Search Engines
  • File Sharing
  • WebTrends / Stats
  • Programming
  • Content Management
  • Application Servers
  • Protocols
Storage
  • Removable Backup Media
  • Storage Technology
  • Servers
  • Grid
  • Remote Access
  • Backup / Restore
  • Misc
  • Hard Drives
OS
  • Miscellaneous
  • Security
  • Development
  • Linux
  • VMWare
  • MainFrame OS
  • Unix
  • Apple
  • OS / 2
  • AS / 400
  • BeOS
  • Microsoft
  • VMS / OpenVMS
Database
  • Oracle
  • Miscellaneous
  • MySQL
  • Software
  • Sybase
  • Contact Management
  • PostgreSQL
  • Data Manipulation
  • Clarion
  • InterSystems Cache
  • Siebel
  • MUMPS
  • OLAP
  • SQLBase
  • SAS
  • GIS & GPS
  • 4GL
  • Berkeley DB
  • DB2
  • Informix
  • Interbase / Firebird
  • FoxPro
  • Reporting
  • LDAP
  • Filemaker Pro
  • MS SQL Server
  • dBase
  • MS Access
Security
  • Misc
  • Web Browsers
  • Software Firewalls
  • Operating Systems Security
  • File Sharing
  • Spy / Ad Blockers
  • Vulnerabilities
  • WebApplications
  • IDS
  • Anti-Virus
  • Encryption
  • Anti Spam
  • Email Clients
  • VPN
  • Chat / IM
Programming
  • Editors IDEs
  • Installation
  • Handhelds / PDAs
  • Multimedia Programming
  • System / Kernel
  • Algorithms
  • Game
  • Signal Processing
  • Project Management
  • Open Source
  • Database
  • Misc
  • Languages
  • Processor Platforms
  • Theory
Web Development
  • Scripting
  • Blogs
  • Web Servers
  • Software
  • Search Engines
  • Web Graphics
  • Images
  • Internet Marketing
  • Images and Photos
  • Components
  • Document Imaging
  • Web Languages/Standards
  • Illustration
  • WebApplications
  • Fonts
  • WebTrends / Stats
  • Authoring
  • Digital Camera Software
  • Miscellaneous
Networking
  • Protocols
  • Apple Networking
  • Network Management
  • Message Queue
  • Application Servers
  • Content Management
  • File Servers
  • Email Servers
  • Misc
  • Java Editors & IDEs
  • Wireless
  • Networking Hardware
  • Backup / Restore
  • System Utilities
  • ISPs & Hosting
  • Web Servers
  • Storage Technology
  • Removable Backup Media
  • Servers
  • Broadband
  • Grid
  • OS / 2
  • Novell Netware
  • Unix Networking
  • Windows Networking
  • Security
  • Telecommunications
  • Operating Systems
  • Linux Networking
Other
  • Community Advisor
  • Lounge
  • Community Support
  • New Net Users
  • Philosophy / Religion
  • Math / Science
  • Miscellaneous
  • URLs
  • Expert Lounge
  • Politics
  • Puzzles / Riddles
Community Support
  • Suggestions
  • New to EE
  • New Topics
  • Community Advisor
  • CleanUp
  • Announcements
  • General
  • Feedback
  • Input
  • EE Bugs
 
03.26.2008 at 11:53PM PDT, ID: 21219079

Rank: Guru

obviously, as your procedure has 2 parameters, and you actually call it with 1 parameter.
now, in what context do you want to use this? depending on that, you will eventually rather use a FUNCTION instead of a PROCEDURE...
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
CREATE OR REPLACE FUNCTION GETCOUNTY(
    COUNTYNUMBER IN NUMBER
)
IS
  COUNTYNAME   VARCHAR2(100);
begin
  SELECT CO_NAME 
    INTO countyname
    FROM COUNTY
   WHERE NBR_TENN_C = countynumber
  ;
  RETURN countyname;
end; 

usage:
select getcounty(19) from dual;
Open in New Window
 
03.27.2008 at 12:01AM PDT, ID: 21219114

Rank: Wizard


>call getcounty(19);

you passed in one parameter but your procedure requires 2 parameters,
one is your input parameter and one is your output.  You only passed in the input parameter.

you need to declare a variable and then pass it to the procedure

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
SQL> variable v_countyname varchar2(50);
SQL> call getcounty(:v_countyname,19);
 
Call completed.
 
SQL> print v_countyname
 
V_COUNTYNAME
--------------------------------------------------------------------------------
county_nineteen
Open in New Window
Accepted Solution
 
03.27.2008 at 06:10AM PDT, ID: 21220871
The syntax is "exec getcounty(19)" not call.
 
03.27.2008 at 06:31AM PDT, ID: 21221079

Rank: Wizard

call works too

the above snippet is from my real sqlplus session
 
03.27.2008 at 06:32AM PDT, ID: 21221096

Rank: Wizard

the problem isn't the exec though,
it's the fact that it's a 2 parameter procedure that was called with only 1 parameter
 
03.27.2008 at 08:40AM PDT, ID: 21222560
Thanks for the quick responses. This will eventually be used by an ASP.NET application, I need data from the database to make calculations, etc. Currently, I have SQL stored in the code behinds that retrieves the data. I am being asked to use web services to make calls to the database since this application will sit outside the firewall. I have also been asked to move the SQL from the code behinds into stored procedures.

I agree, a function seems logical since I am just getting data from the database, but they want it in a stored procedure. I am asking for clarification on this, but for now...

angelIII: I tried to use the given function syntax and I received errors: "encountered is when expected return", then after changing "is" to "return," I got errors about varchar2 being encountered.

sdstuber: when I tried to declare the variable using "variable v_countyname varchar2(50);" I got an "invalid SQL statement" error (ORA-00900).

Thanks!
 
03.27.2008 at 08:51AM PDT, ID: 21222705

Rank: Wizard

at a sqlplus prompt your got an ora-900 error?
or were you trying to do that in your asp.net code?

"variable <varname> <datatype>"  is sqlplus syntax for declaring a variable.

it's not sql perse, it's a sqlplus command.


the snippet I posted above is unaltered, I simply cut and pasted from my sqlplus session.
The syntax did work when I tested it "as is"
 
03.27.2008 at 09:00AM PDT, ID: 21222841

Rank: Guru

sorry..
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
CREATE OR REPLACE FUNCTION GETCOUNTY(
    COUNTYNUMBER IN NUMBER
)
RETURN VARCHAR2;
IS
  COUNTYNAME   VARCHAR2(100);
begin
  SELECT CO_NAME 
    INTO countyname
    FROM COUNTY
   WHERE NBR_TENN_C = countynumber
  ;
  RETURN countyname;
end; 
Open in New Window
 
 
03.27.2008 at 09:20AM PDT, ID: 21223103
sdstuber, your syntax worked, I was using the db web interface (not sqlplus) when I got the error.

The function way of doing things is still giving me the "varchar2 encountered" error.

I will search for asp.net calling stored procedures and post a question if I don't find anything in the KB already that covers it.

Thanks again for everyone's responses.
 
 
 
20080236-EE-VQP-29 / EE_QW_2_20070628