BIND_VARIABLE v17
The BIND_VARIABLE
procedure associates a value with an IN
or IN OUT
bind variable in a SQL command.
BIND_VARIABLE(<c> NUMBER, <name> VARCHAR2, <value> { BLOB | CLOB | FLOAT | INTEGER | NUMBER | ROWID | TIMESTAMP | VARCHAR2 } [, <out_value_size> NUMBER ])
Parameters
c
Cursor ID of the cursor for the SQL command with bind variables.
name
Name of the bind variable in the SQL command.
value
Value to be assigned.
out_value_size
If name
is an IN OUT
variable, defines the maximum length of the output value. If not specified, the length of value
is assumed.
Examples
The following anonymous block uses bind variables to insert a row into the emp
table.
DECLARE curid NUMBER; v_sql VARCHAR2(150) := 'INSERT INTO emp VALUES ' || '(:p_empno, :p_ename, :p_job, :p_mgr, ' || ':p_hiredate, :p_sal, :p_comm, :p_deptno)'; v_empno emp.empno%TYPE; v_ename emp.ename%TYPE; v_job emp.job%TYPE; v_mgr emp.mgr%TYPE; v_hiredate emp.hiredate%TYPE; v_sal emp.sal%TYPE; v_comm emp.comm%TYPE; v_deptno emp.deptno%TYPE; v_status INTEGER; BEGIN curid := DBMS_SQL.OPEN_CURSOR; DBMS_SQL.PARSE(curid,v_sql,DBMS_SQL.native); v_empno := 9001; v_ename := 'JONES'; v_job := 'SALESMAN'; v_mgr := 7369; v_hiredate := TO_DATE('13-DEC-07','DD-MON-YY'); v_sal := 8500.00; v_comm := 1500.00; v_deptno := 40; DBMS_SQL.BIND_VARIABLE(curid,':p_empno',v_empno); DBMS_SQL.BIND_VARIABLE(curid,':p_ename',v_ename); DBMS_SQL.BIND_VARIABLE(curid,':p_job',v_job); DBMS_SQL.BIND_VARIABLE(curid,':p_mgr',v_mgr); DBMS_SQL.BIND_VARIABLE(curid,':p_hiredate',v_hiredate); DBMS_SQL.BIND_VARIABLE(curid,':p_sal',v_sal); DBMS_SQL.BIND_VARIABLE(curid,':p_comm',v_comm); DBMS_SQL.BIND_VARIABLE(curid,':p_deptno',v_deptno); v_status := DBMS_SQL.EXECUTE(curid); DBMS_OUTPUT.PUT_LINE('Number of rows processed: ' || v_status); DBMS_SQL.CLOSE_CURSOR(curid); END; Number of rows processed: 1
- On this page
- Parameters
- Examples