Click here to Skip to main content
15,889,865 members
Please Sign up or sign in to vote.
1.80/5 (2 votes)
See more:
I Have A Store Procedure To Update A Table Against Parametrised Variable Then How Can I Execute

SQL
CREATE OR REPLACE PROCEDURE EMPLOYEE_S_UPDATE (S_SALARY VARCHAR2)
AS
   F_NAME         VARCHAR2 (23);
   G_GENDER       VARCHAR (6);
   D_DEPARTMENT   VARCHAR2 (22);
   P_POSITION     VARCHAR2 (23);
BEGIN
   SELECT DEPARTMENT, FULL_NAME, GENDER, POSITION
     INTO D_DEPARTMENT, F_NAME, G_GENDER, P_POSITION
     FROM EMPLOYEE_S;
    --WHERE SALARY = S_SALARY;
   UPDATE EMPLOYEE_S
      SET DEPARTMENT = D_DEPARTMENT,
          FULL_NAME = F_NAME,
          GENDER = G_GENDER,
          POSITION = P_POSITION
    WHERE SALARY = S_SALARY;
   COMMIT;
END;
Posted
Updated 14-Aug-15 2:50am
v2

Based on the tag you're using Perl. In that case you can use a question mark (?) as a place holder for the parameter and then use bind_param to set the value for the parameter before execute.

Have a look at:
- A Short Guide to DBI[^]
- 5.3. Binding Parameters to Statements [^]
 
Share this answer
 
v2
SQL
EXEC dbo.EMPLOYEE_S_UPDATE @S_SALARY = 10;
or
SQL
EXEC dbo.EMPLOYEE_S_UPDATE 10;
 
Share this answer
 
I suppose, that it should exactly work:
PERL
#!/usr/local/bin/perl
use DBI;
use DBD::ODBC;
my $dbh = DBI->connect("dbi:ODBC:dsnentry", '', '', {PrintError => 0})
+;
die "Unable for connect to server" unless $dbh;
$dbh->{odbc_SQL_ROWSET_SIZE} = 2;
$query="EXEC EMPLOYEE_S_UPDATE 10";
my $result=$dbh->prepare($query) or print "cannot prepare" ;
$result->{LongReadLen}=512*1024;
$result->{LongTruncOk}=1;
$result->execute() or print $result->errstr();
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900