[email protected]>declare 2 l_number number; 3 l_number:=123; 4 select * from emp where empno=:x using l_number; 5 / 未说明结合变量"X"给指点一下这个错误。
declare l_number number:=123; str varchar2(50); begin str:='select * from emp where empno=:x; execute immediate str into ... using l_number; end; /
[email protected]>declare 2 type rc is ref cursor; 3 l_rc rc; 4 l_dummy all_objects.object_name%type; 5 l_start number default dbms_utility.get_time; 6 i number; 7 begin 8 for i in 1 .. 1000 9 loop 10 open l_rc for 11 'select object_name 12 from all_objects 13 where object_id=:X' 14 using i; 15 fetch l_rc into l_dummy; 16 close l_rc; 17 end loop; 18 dbms_output.put_line 19 (round((dbms_utility.get_time - l_start)/100,2)|| 20 'seconds...'); 21 end ; 22 / 'select object_name * 错误位于第11行: ORA-06550: 行11、列27: PLS-00103: 出现符号"select object_name from all_objects "在需要下列之一时: select这个错误是什么原因,我在书上抄的关于绑定变量的例子怎么通不过
declare type rc is ref cursor; l_rc rc; l_dummy all_objects.object_name%type; _start number default dbms_utility.get_time; i number; begin for i in 1 .. 1000 loop open l_rc for 'select object_name from all_objects where object_id='||i; fetch l_rc into l_dummy; close l_rc; end loop; dbms_output.put_line (round((dbms_utility.get_time - l_start)/100,2)||'seconds...'); end ; /
You need define the variabe before use it ab below:variable x varchar2(10);And then use the variable with :x
[email protected]>declare 2 l_number number; 3 begin 4 for i in 1 .. 10000 5 loop 6 l_number:=dbms_random.random; 7 execute immediate 8 'insert into t values(:x1,:x2,:x3,:x4)' 9 using l_number,l_number,l_number,l_number; 10 end loop; 11 commit; 12 end; 13 / execute immediate * 错误位于第7行: ORA-06550: 行7、列16: PLS-00103: 出现符号"IMMEDIATE"在需要下列之一时: :=.(@%;
declare l_number number; begin for i in 1..10000 loop l_number:=dbms_random.random; execute immediate 'begin insert into t values(:x1,:x2,:x3,:x4); end;' using l_number,l_number,l_number,l_number; end loop; commit; end; / IMMEDIATE 只能出现在8I以上版本
2 l_number number;
3 l_number:=123;
4 select * from emp where empno=:x using l_number;
5 /
未说明结合变量"X"给指点一下这个错误。
l_number number:=123;
str varchar2(50);
begin
str:='select * from emp where empno=:x;
execute immediate str into ... using l_number;
end;
/
2 type rc is ref cursor;
3 l_rc rc;
4 l_dummy all_objects.object_name%type;
5 l_start number default dbms_utility.get_time;
6 i number;
7 begin
8 for i in 1 .. 1000
9 loop
10 open l_rc for
11 'select object_name
12 from all_objects
13 where object_id=:X'
14 using i;
15 fetch l_rc into l_dummy;
16 close l_rc;
17 end loop;
18 dbms_output.put_line
19 (round((dbms_utility.get_time - l_start)/100,2)||
20 'seconds...');
21 end ;
22 /
'select object_name
*
错误位于第11行:
ORA-06550: 行11、列27:
PLS-00103: 出现符号"select object_name
from all_objects
"在需要下列之一时:
select这个错误是什么原因,我在书上抄的关于绑定变量的例子怎么通不过
type rc is ref cursor;
l_rc rc;
l_dummy all_objects.object_name%type;
_start number default dbms_utility.get_time;
i number;
begin
for i in 1 .. 1000 loop
open l_rc for
'select object_name
from all_objects
where object_id='||i;
fetch l_rc into l_dummy;
close l_rc;
end loop;
dbms_output.put_line
(round((dbms_utility.get_time - l_start)/100,2)||'seconds...');
end ;
/
2 l_number number;
3 begin
4 for i in 1 .. 10000
5 loop
6 l_number:=dbms_random.random;
7 execute immediate
8 'insert into t values(:x1,:x2,:x3,:x4)'
9 using l_number,l_number,l_number,l_number;
10 end loop;
11 commit;
12 end;
13 /
execute immediate
*
错误位于第7行:
ORA-06550: 行7、列16:
PLS-00103: 出现符号"IMMEDIATE"在需要下列之一时:
:=.(@%;
l_number number;
begin
for i in 1..10000
loop
l_number:=dbms_random.random;
execute immediate
'begin
insert into t values(:x1,:x2,:x3,:x4);
end;'
using l_number,l_number,l_number,l_number;
end loop;
commit;
end;
/
IMMEDIATE 只能出现在8I以上版本