Share |

ORA-01008: not all variables bound

You are trying to execute a statement which includes bind variables, but you do not provide all the needed values.
eg:
SQL> begin
2 execute immediate 'select * from emp where empno=:empid';
3 end;
4 /
begin
*
ERROR at line 1:
ORA-01008: not all variables bound
ORA-06512: at line 2
SQL> begin
2 execute immediate 'select * from emp where empno=:empid' using 1;
3 end;
4 /

PL/SQL procedure successfully completed.
Also, in java make sure you bind all bind variables (indicated with a ?):
      String query = "select * from dept where id=?";
      PreparedStatement  stmt = conn.prepareStatement(query);
      //stmt.setInt(1, 10);
      ResultSet rs = stmt.executeQuery();
      while (rs.next())
      {}
      rs.close();
      stmt.close();
In the previous example, we did not execute the setInt to supply a value for the bind variable. This results in the ORA-01008 error.
For an example in perl:
#!/usr/bin/perl

use DBI;
use strict;
use vars qw($dbh $sth);

# get a database handle
$dbh = DBI->connect('dbi:Oracle:', 'dev01@localhost/ORA112', 'this_is_not_a_password');

# get a statement handle
$sth=$dbh->prepare('SELECT * FROM dual where dummy=?');
#$sth->bind_param( 1, "X" );

# execute the statement handle
$sth->execute();

# loop through the results
while (my ($r) = $sth->fetchrow())
{
    print " $r \n";
}

$sth->finish();
$dbh->disconnect();
Will result in an error, because we commented out the call to method bind_param:
DBD::Oracle::st execute failed: ORA-01008: not all variables bound (DBD ERROR: OCIStmtExecute) [for Statement "SELECT * FROM dual where dummy=?" with ParamValues: :p1=undef] at oratest.py line 16.
DBD::Oracle::st fetchrow failed: ERROR no statement executing (perhaps you need to call execute first) [for Statement "SELECT * FROM dual where dummy=?" with ParamValues: :p1=undef] at oratest.py line 19.
 Was this information helpful?  Yes No
If it was not helpful, please take some time to explain why. This is not to ask questions, you can do so in the forum.

Welcome to our forum for Oracle error: ORA-01008 Add your own message



DECLARE
jobno Number := 1;

BEGIN
dbms_job.submit(
:jobno,
'BEGIN Pack.main_pro; END;',
sysdate,
'sysdate+1/24*60'
);
END;

I take 'ORA-01008: not all variables bound' error. What can I do?
You do not need the colon in front of the job id:

18-APR-2008 21:30:31 ORA-01008: not all variables bound ayvaz Reply 
DECLARE
jobno Number := 1;

BEGIN
dbms_job.submit(
jobno,
'BEGIN Pack.main_pro; END;',
sysdate,
'sysdate+1/24*60'
);
END;


 
this is for the package :

create or replace package refcursor_jdbc as
type ref_cursor is ref cursor;
function showstudents
return ref_cursor;
end;

this is the body of the package :

create or replace package body refcursor_jdbc as
function showstudents
return ref_cursor as
rc ref_cursor;
begin
open rc for
select * from students;
return rc;
end;
end;

But its not compiling correctly...donno whr's the problem...Lemme know where i have gone wrong..
Did you bind all columns inside your calling program?
Do you have as much variables as there are columns returned for 'select * from students'
 

select


count(*) from ob_search_v where ( (to_date(to_char(final_dt,'DD-MON-YYYY'),'DD-MON-YYYY') between to_date(:strDateFinalized1,'DD-MON-YYYY') and to_date(:strDateFinalized2,'DD-MON-YYYY')) )

:strDateFinalized1 and  :strDateFinalized2 are parameterised variable that get replaced by date value at runtime.

This query is resulting in ORA-01008: not all variables bound error

Can you please post the piece of code where you do the assignment of the bind variables?

 

You can download evalution licenses from http://technet.oracle.com

Be sure to read the license policies before you start using them

 

wat can i do please provide the solution..........we are using xp2 os......recently format the c-drive after the format 10g oracle is not installed.......before that it is working in xp2.....

Every Oracle installation package comes with an installation document.

You can follow these easy steps in order to get a fresh Oracle installation

 

 

we have declared one procedure in tha database as follows to fire for the scheduled jobs.

DECLARE


X


NUMBER

;

SYS


.

DBMS_JOB.SUBMIT


BEGIN



( job => X ,what => 'MQ_scheduled_stopjobs();'

 

 

 

 


,next_date =>

SYSDATE

 


,interval => 'SYSDATE+.2/24 '

--*/* .2 =10 minutes */*

 


,no_parse =>

TRUE

 

);

SYS


.

DBMS_JOB.BROKEN







(job => X,

 

broken


=>

TRUE);

SYS


.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(x

));




and we scheduled the firing time for every 5 minutes and job runs for every 2 minutes .As the procedure is firing at 5th minute,then next 6th minute job will happen after one minute.

so we should not get the error that jobs were stopped which is about to ru

 
namespace WindowsFormsApplication10

{

    public partial class Form6 : Form

    {

        public Form6()

        {

            InitializeComponent();

        }



        protected void Validateuserinfo()

        {

            string connStr = "Data Source=xe;User Id=prakhar08;Password=prakhargupta;Integrated Security=no;";

            OracleConnection con = new OracleConnection(connStr);

            string username = textBox1.Text;

            string password = maskedTextBox1.Text;

            string str = "select password from user_info where username=:username";

            OracleCommand cmd = new OracleCommand(str, con);

          

            con.Open();

            MessageBox .Show ("connected");

            //DataTable dt = new DataTable();

            OracleDataReader rd = cmd.ExecuteReader();

            while (rd.Read())

            {

                string chkpassword = rd.GetString(0);


                if (password == chkpassword)

                {


                    MessageBox.Show("verify");

                }


                else

                {


                    MessageBox.Show("INVALID Username and Password, Try Again!");

                }


                con.Close();


            }

        }

protected void Button1_Click(object sender, EventArgs e)

{

    Validateuserinfo();

}


private void button1_Click_1(object sender, EventArgs e)

{

    Validateuserinfo();

}


private void Form6_Load(object sender, EventArgs e)

{


}


 

        }

    }


You have a query with a bind variable: 







string str = "select password from user_info where username=:username";



But you do not bind a value to it using:

cmd.Parameters.Add("a username value");  







 

 PROCEDURE SP_GET_ISSUE (  poCURSOR                       OUT   CUSTOM_REF_CURSOR,
                                               poRETURNCODE                 OUT   NUMBER,
                                               piSTAFF_ID                        IN     NUMBER DEFAULT NULL,
                                         
                                               piISSUE_TYPE_ID               IN     NUMBER DEFAULT NULL,
                                               piDUE_DATE                      IN     VARCHAR2 DEFAULT NULL,
                                               piSTATUS_ID                    IN     NUMBER DEFAULT NULL,
                                               piISSUE_ID                       IN     NUMBER DEFAULT NULL,
                                               piSSN                              IN     VARCHAR2 DEFAULT NULL,
                                               piBYE                              IN      VARCHAR2 DEFAULT NULL
                                             
                                              )
    AS
    V_QRYSTRING VARCHAR2(2000);
    V_CRITERIA VARCHAR2(2000);
   BEGIN
 --poRETURNCODE := 0;
--      poCURSOR:= NULL;
  V_CRITERIA :=  ' AND I.STF_ID =:piSTAFF_ID' ;
   V_CRITERIA := V_CRITERIA|| ' AND  I.ISSTYP_ID =:piISSUE_TYPE_ID' ;
   V_CRITERIA := V_CRITERIA || ' AND  I.DUE_DATE =:piDUE_DATE' ;
   V_CRITERIA := V_CRITERIA || ' AND I.ISSSTCD_ID =:piSTATUS_ID' ;
   V_CRITERIA := V_CRITERIA || ' AND I.ID =:piISSUE_ID';
   V_CRITERIA :=V_CRITERIA || ' AND I.SSN =:piSSN' ;
   V_CRITERIA := V_CRITERIA || ' AND I.BYE =:piBYE' ;
  
--  V_CRITERIA := 'I.ISSSTCD_ID = ISC.ID'  || CHR(13)||
--                        'AND   I.STF_ID = S.ID'  || CHR(13)||
--                        'AND   I.ISSTYP_ID = IT.ID' ||CHR(13)||
--                        'AND    I.ISSSRCCD_ID = ISSSRCD.ID';
--                       
  
   IF (piSTAFF_ID IS NOT NULL ) THEN
   V_CRITERIA := V_CRITERIA || ' AND  I.STF_ID =:piSTAFF_ID' ;
   END IF;
      IF (piISSUE_TYPE_ID IS NOT NULL ) THEN
   V_CRITERIA := V_CRITERIA || ' AND I.ISSTYP_ID =:piISSUE_TYPE_ID' ;
   END IF;
      IF (piDUE_DATE IS NOT NULL ) THEN
   V_CRITERIA := V_CRITERIA || ' AND I.DUE_DATE =:piDUE_DATE' ;
   END IF;
      IF (piSTATUS_ID IS NOT NULL ) THEN
   V_CRITERIA := V_CRITERIA || ' AND I.ISSSTCD_ID =:piSTATUS_ID' ;
   END IF;
      IF (piISSUE_ID IS NOT NULL ) THEN
   V_CRITERIA := V_CRITERIA || ' AND I.ID =:piISSUE_ID' ;
   END IF;
      IF (piSSN IS NOT NULL ) THEN
   V_CRITERIA := V_CRITERIA || ' AND I.SSN =:piSSN' ;
   END IF;
     IF (piBYE IS NOT NULL ) THEN
   V_CRITERIA := V_CRITERIA || ' AND I.BYE =:piBYE' ;
   END IF;
  
   V_QRYSTRING :=   'SELECT  I.ISSSTCD_ID AS poSTATUS_ID, ' ||CHR(13) ||
                                             'ISC.DESCR    AS  poSTATUS_DESCR, ' ||CHR(13) ||
                                             'S.LAST_NAME_DISPLAY ||'' ''  ||S.FIRST_NAME_DISPLAY AS   poADJUDICATOR_NAME, ' ||CHR(13) ||
                                             'S.CESN_ID    AS poADJUDICATOR_CESN, ' ||CHR(13) ||
                                             'I.SSN           AS  poSSN, ' || CHR(13) ||
                                             'I.BYE           AS   poBYE, ' ||CHR(13) ||
                                             'I.DUE_DATE AS   poDUE_DATE, ' ||CHR(13) ||
                                             'I.ID             AS   poISSUE_ID,  ' ||CHR(13) ||
                                             'I.STF_ID    AS   poSTAFF_ID, ' ||CHR(13) ||
                                            'I.DETECTION_DATE  AS  poDETECTION_DATE, ' || CHR(13) ||
                                             'IT.SHORT_DESCR    AS  poISSUE_TYPE_DESCR, '||CHR(13) ||
                                             'I.DESCR                  AS  poDESCR, ' || CHR(13) ||
                                             'ISSSRCD.DESCR      AS  poSOURCE_DESCR, ' || CHR(13) ||
                                             'I.NOTES_TXT          AS  poNOTES_TXT, ' || CHR(13) ||
                                             'I.LAST_ASSIGNED_DATE  AS poLAST_ASSIGNED_TMST, ' || CHR(13) ||
                                             'I.INITIAL_ASSIGNED_DATE  AS poINITIAL_ASSIGNED_TMST ' || CHR(13) ||
                                 'FROM    SOAPTAB.ISSUES  I, ' || CHR(13) ||
                                           'SOAPTAB.ISSUE_STATUS_CODES ISC, ' || CHR(13) ||
                                           'SOAPTAB.ISSUE_TYPES  IT, ' || CHR(13) ||
                                           'SOAPTAB.ISSUE_SOURCE_CODES ISSSRCD, ' || CHR(13) ||
                                           'SOAPTAB.STAFF S '   || CHR(13) ||
                                'WHERE     I.ISSSTCD_ID = ISC.ID ' ||CHR(13) ||
                                           'AND   I.STF_ID = S.ID ' ||CHR(13) ||
                                           'AND   I.ISSTYP_ID    = IT.ID ' ||CHR(13) ||
                                           'AND    I.ISSSRCCD_ID = ISSSRCD.ID ' ||CHR(13) ||V_CRITERIA;
                                          
                                            DBMS_OUTPUT.PUT_LINE (V_QRYSTRING );
                                           OPEN poCURSOR FOR V_QRYSTRING
                                           USING piSTAFF_ID,piISSUE_TYPE_ID,piDUE_DATE,piSTATUS_ID,piISSUE_ID,piSSN,piBYE;
                                          
   END SP_GET_ISSUE;

You first have this block



 V_CRITERIA :=  ' AND I.STF_ID =:piSTAFF_ID' ;
   V_CRITERIA := V_CRITERIA|| ' AND  I.ISSTYP_ID =:piISSUE_TYPE_ID' ;
   V_CRITERIA := V_CRITERIA || ' AND  I.DUE_DATE =:piDUE_DATE' ;
   V_CRITERIA := V_CRITERIA || ' AND I.ISSSTCD_ID =:piSTATUS_ID' ;
   V_CRITERIA := V_CRITERIA || ' AND I.ID =:piISSUE_ID';
   V_CRITERIA :=V_CRITERIA || ' AND I.SSN =:piSSN' ;
   V_CRITERIA := V_CRITERIA || ' AND I.BYE =:piBYE' ;




So you define some bind variables

Next, you add again these conditions based on empty values or not. 

If you add conditional where conditions, you will need to include those as well in your OPEN ... USING ... syntax

 

 
 

i need an proc which has 7 parameters and all of them are optional then how do i define the procedure and handle
the optional parameters?

i did in this way,sme how its working,while showing the result its just showing only one row of the table,for ex for particual id having 3 rows of data,its showing only one row of data.

plz help me its very urgent


here goes the procedure:

 

PROCEDURE SP_GET_ISSUES (  poCURSOR                       OUT   CUSTOM_REF_CURSOR,
                                               poRETURNCODE                 OUT   NUMBER,
                                               piSTAFF_ID                        IN     NUMBER DEFAULT NULL,
                                              -- piFIELD_OFFICE_CODE       IN     VARCHAR2 DEFAULT NULL,
                                              --piSUPERVISOR_ID             IN     NUMBER DEFAULT NULL,
                                               piISSUE_TYPE_ID               IN     NUMBER DEFAULT NULL,
                                               piDUE_DATE                      IN     VARCHAR2 DEFAULT NULL,
                                               piSTATUS_ID                    IN     NUMBER DEFAULT NULL,
                                               piISSUE_ID                       IN     NUMBER DEFAULT NULL,
                                               piSSN                              IN     VARCHAR2 DEFAULT NULL,
                                               piBYE                              IN      VARCHAR2 DEFAULT NULL
                                             
                                              )
    AS

   BEGIN

 
<!--
/* Font Definitions */
@font-face
{font-family:"MS Shell Dlg 2";
panose-1:2 11 6 4 3 5 4 4 2 4;
mso-font-charset:0;
mso-generic-font-family:swiss;
mso-font-pitch:variable;
mso-font-signature:1627421319 -2147483648 8 0 66047 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
@page Section1
{size:8.5in 11.0in;
margin:1.0in 1.25in 1.0in 1.25in;
mso-header-margin:.5in;
mso-footer-margin:.5in;
mso-paper-source:0;}
div.Section1
{page:Section1;}
-->

PROCEDURE
SP_
GET_ISSUES ( 
poCURSOR                      
OUT   CUSTOM_REF_CURSOR,

                                              
poRETURNCODE                
OUT   NUMBER,

                                              
piSTAFF_ID                       
IN     NUMBER DEFAULT NULL,

                                              -- piFIELD_OFFICE_CODE       IN    
VARCHAR2 DEFAULT NULL,

                                              --piSUPERVISOR_ID             IN     NUMBER DEFAULT NULL,

                    
                          piISSUE_TYPE_ID              
IN     NUMBER DEFAULT NULL,

                                              
piDUE_DATE                     
IN     VARCHAR2 DEFAULT NULL,

                                              
piSTATUS_ID                    
IN     NUMBER DEFAULT NULL,

                                              
piISSUE_ID                      
IN     NUMBER DEFAULT NULL,

                                              
piSSN                             
IN     VARCHAR2 DEFAULT
NULL,

                                              
piBYE                             
IN      VARCHAR2 DEFAULT
NULL

                                             

                                              )

    AS

    --USING dYNAMIC SQL becoz all input parameters are
optional

   
V_QRYSTRING
VARCHAR2(2000);

    V_CRITERIA
VARCHAR2(2000);

   BEGIN

IF (piSTAFF_ID IS   NULL) AND (piISSUE_TYPE_ID
IS
NOT
NULL)
OR
(piDUE_DATE
IS
NOT
NULL)
THEN

   V_CRITERIA :=V_CRITERIA
||
' AND  I.STF_ID = ' || piSTAFF_ID || 
' AND I.ISSTYP_ID = ' || piISSUE_TYPE_ID|| ' AND I.DUE_DATE = 
TO_DATE('
|| '''' ||  piDUE_DATE || '''' ||  ',
'
|| '''' ||  ' MM/DD/YY'
||
'''' || ')';

   END IF;

                

  

   IF (piSTAFF_ID IS NOT NULL ) THEN

   V_CRITERIA := V_CRITERIA
||
' AND  I.STF_ID = ' || piSTAFF_ID ;

   END IF;

      IF (piISSUE_TYPE_ID
IS
NOT
NULL
)
THEN

   V_CRITERIA := V_CRITERIA
||
' AND I.ISSTYP_ID = ' || piISSUE_TYPE_ID;

   END IF;

      IF (piDUE_DATE IS NOT NULL ) THEN

   V_CRITERIA := V_CRITERIA
||
' AND I.DUE_DATE =  TO_DATE(' || '''' || 
piDUE_DATE ||
'''' ||  ', ' || '''' ||  '
MM/DD/YY'
|| '''' || ')' ;

   END IF;

 

      IF (piSTATUS_ID IS NOT NULL ) THEN

   V_CRITERIA := V_CRITERIA
||
' AND I.ISSSTCD_ID = '|| piSTATUS_ID ;

   END IF;

      IF (piISSUE_ID IS NOT NULL ) THEN

   V_CRITERIA := V_CRITERIA
||
' AND I.ID = ' || piISSUE_ID ;

   END IF;

      IF (piSSN IS NOT NULL ) THEN

   V_CRITERIA := V_CRITERIA
||
' AND I.SSN = ' || '''' || piSSN || '''' ;

   END IF;

    IF (piBYE IS NOT NULL)  AND (piSSN IS NULL) THEN

                             RAISE
SOAP_ERROR_ENTER_BYE_SSN;

     ELSIF
(piBYE
IS
NOT
NULL)
AND (piSSN IS NOT NULL) THEN

                     
V_CRITERIA
:= V_CRITERIA || 
'AND I.SSN =  '  || '''' || piSSN || '''' || ' AND  I.BYE = '  || '''' ||  piBye || '''';           

     END IF;

  



<!--
/* Font Definitions */
@font-face
{font-family:"MS Shell Dlg 2";
panose-1:2 11 6 4 3 5 4 4 2 4;
mso-font-charset:0;
mso-generic-font-family:swiss;
mso-font-pitch:variable;
mso-font-signature:1627421319 -2147483648 8 0 66047 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
@page Section1
{size:8.5in 11.0in;
margin:1.0in 1.25in 1.0in 1.25in;
mso-header-margin:.5in;
mso-footer-margin:.5in;
mso-paper-source:0;}
div.Section1
{page:Section1;}
-->

   V_QRYSTRING
:=   'SELECT  I.ISSSTCD_ID AS poSTATUS_ID, ' ||CHR(13) ||

                                             'ISC.DESCR    AS  poSTATUS_DESCR, ' ||CHR(13) ||

                                             'S.LAST_NAME_DISPLAY ||'' ''  ||S.FIRST_NAME_DISPLAY AS   poADJUDICATOR_NAME, ' ||CHR(13) ||

                                             'S.CESN_ID    AS
poADJUDICATOR_CESN, '
||CHR(13) ||

                                             'I.SSN           AS  poSSN, ' || CHR(13) ||

                                             'I.BYE           AS   poBYE, ' ||CHR(13) ||

                                             'I.DUE_DATE AS  
poDUE_DATE, '
||CHR(13) ||

                                             'I.ID             AS   poISSUE_ID,  '
||
CHR(13) ||

                                             'I.STF_ID    AS   poSTAFF_ID, ' ||CHR(13) ||

                                            'I.DETECTION_DATE  AS 
poDETECTION_DATE, '
|| CHR(13) ||

                                             'IT.SHORT_DESCR   
AS  poISSUE_TYPE_DESCR, '
||CHR(13) ||

                                             'I.DESCR                 
AS  poDESCR, ' || CHR(13) ||

                                             'ISSSRCD.DESCR      AS  poSOURCE_DESCR, ' || CHR(13) ||

                                             'I.NOTES_TXT          AS 
poNOTES_
TXT, ' || CHR(13) ||

                                             'I.LAST_ASSIGNED_DATE 
AS poLAST_ASSIGNED_TMST, '

||
CHR(13) ||

                                             'I.INITIAL_ASSIGNED_DATE 
AS poINITIAL_ASSIGNED_TMST, '

||
CHR(13) ||

                                             'I.ISSTYP_ID AS poISSUETYPE_ID ' ||CHR(13) ||

                                 'FROM   
SOAPTAB.ISSUES  I, '
|| CHR(13) ||

                                           'SOAPTAB.ISSUE_STATUS_CODES ISC, ' || CHR(13) ||

                                           'SOAPTAB.ISSUE_TYPES 
IT, '
|| CHR(13) ||

                                           'SOAPTAB.ISSUE_SOURCE_CODES ISSSRCD, ' || CHR(13) ||

                                           'SOAPTAB.STAFF S '   || CHR(13) ||

                                'WHERE    
I.ISSSTCD_ID = ISC.ID '
||CHR(13) ||

                                           'AND   I.STF_ID = S.ID ' ||CHR(13) ||

                                           'AND   I.ISSTYP_ID    = IT.ID ' ||CHR(13) ||

                                           'AND    I.ISSSRCCD_ID =
ISSSRCD.ID '
||CHR(13)
||V_CRITERIA
;

                                          

                                            DBMS_OUTPUT.PUT_LINE (V_QRYSTRING );

                             OPEN poCURSOR FOR V_QRYSTRING
;

                                           --USING 
piSTAFF_ID,piISSUE_TYPE_ID,piDUE_DATE,piSTATUS_ID,piISSUE_ID,piSSN,piBYE;

                                          

      EXCEPTION

      WHEN CURSOR_ALREADY_OPEN

      THEN

         BEGIN

            RAISE
SOAP_ERROR_001;

           
poRETURNCODE
:= 001;

          

         END;

      WHEN INVALID_CURSOR

      THEN

         BEGIN

            RAISE
SOAP_ERROR_003;

           
poRETURNCODE
:= 003;

         

         END;

      WHEN OTHERS

      THEN

         BEGIN

--           
RAISE
SOAP_ERROR_024;

--           
poRETURNCODE := 024;

            DBMS_OUTPUT.PUT_LINE(SQLERRM);

            END;

   END SP_GET_ISSUES;




Add your message

 Please provide your personal info 



 Please ask your message as briefly and clear as possible 

 Spam Protection 
Validation Code: vj4eh45o3k5czmuun


Ask Your Question

If you need more information about this particular error message, you can leave a forum message.

We are replying to this message whenever we have some spare time, so please do not consider this as a private 'solve my critical issue asap' service.

Should you need professional Oracle Assistance to make your project a success, please have a look at our consultancy services.


Spam Protection

In order to prevent automatic generation of messages, we are asking for a validation code. This code is unique and is generated every time a new message is asked.

If you do not enter the validation correctly, your message will not be recorded.


Forum Rules

Please be polite, do not USE ALL UPPERCASE, no insults, violance or any other threats.