有错误,高手秀一秀
create or replace procedure a(type in varchar2(18)) is
v_type varchar2(18);str varchar2(18);
begin
str:='select * from user_objects where object_type='||'v_type';
execute immediate str;
end;
还有,警告: 创建的过程带有编译错误。为啥在USER_OBJECTS中却存在啊
create or replace procedure a(type in varchar2(18)) is
v_type varchar2(18);str varchar2(18);
begin
str:='select * from user_objects where object_type='||'v_type';
execute immediate str;
end;
还有,警告: 创建的过程带有编译错误。为啥在USER_OBJECTS中却存在啊
解决方案 »
- 我通过日志挖掘 找到了这样的数据 而且我确定 这就是我插入的数据
- 询问中文搜索引擎coreseek(sphinx)配置 oracle odbc数据源配置问题
- Oracle客户端 - Oracle SQL Handler(超方便实用且免费,能运行于 Windows 7、Linux、Mac)
- 求开发XML报表用的template builder插件
- red linux 5.4安装oracle10报错
- 如何将orcl 数据库中所有 L9999用户的表,复制到LC数据库,用户也是L9999
- 多表关联的执行率问题
- 无监听器!!!
- 问个不同平台上面的程序编写差异的问题
- SQL语句求教
- 新手,来问个弱智的问题!oracle的数据视图,会占用多少存储空间?
- oracle中能不能用SQL实现按照5的所有倍数分组
create or replace procedure a(type in varchar2(18)) is
v_type varchar2(18);str varchar2(18);
begin
str:='select * from user_objects where object_type='||'v_type';
execute immediate str;
end; 要保证能执行,还要进一步修改,如下面create or replace procedure a(p_obj_name in varchar2) is
v_type varchar2(100);
str varchar2(2000);
begin
str:='select object_type from user_objects where object_name=:1';
execute immediate str into v_type using p_obj_name;
dbms_output.put_line(v_type);
exception when others then
dbms_output.put_line('error');
end;
/执行
SQL>SET SERVEROUTPUT ON
SQL>EXECUTE a('A')返回
PROCEDURE
执行不行SQL> execu a(procedure);
BEGIN a(procedure); END; *
ERROR 位于第 1 行:
ORA-06550: 第 1 行, 第 9 列:
PLS-00103: 出现符号 "PROCEDURE"在需要下列之一时:
()-+casemodnotnull
others<an identifier><a double-quoted delimited-identifier>
<a bind variable>tableavgcountcurrentexistsmaxminpriorsql
stddevsumvarianceexecutemultisetthebothleadingtrailingforall
mergeyearmonthDAY_hourminutesecondtimezone_hour
timezone_minutetimezone_regiontimezone_abbrtimetimestamp
intervaldate
<a string literal with character set specification>
<a number><a single-quoted SQL string>pipe
符号 "PROCEDURE" 被忽略。
execute a('PROCEDURE')楼主编译的是自己写的代码吗?那段代码在执行时会出错的。
create or replace procedure a(type in varchar2) is
str varchar2(200);
begin
str:='select * from user_objects where OBJECT_TYPE=upper('''||type||''')';
dbms_output.put_line(str);
execute immediate str;
end;
SQL> execu a('PROCEDURE');
select * from user_objects where OBJECT_TYPE=upper('PROCEDURE')PL/SQL 过程已成功完成。
但是execute immediate str;好像没执行啊