救命:表或视图不存在(单独执行时没有问题,一放入过程就出现问题了)

HumanZHOU HumanZHOU 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
SQL> select count(*) from dba_users;

COUNT(*)
----------
31

没有问题

下面:
create or replace procedure ckuName(userName varchar2)
as
num integer;
userName_local varchar2(20);
begin
userName_local := upper(userName);
select count(*) into num from DBA_USERS ;
if num>0 then
execute immediate 'drop user '||userName;
dbms_output.put_line('用户删除成功');
else
dbms_output.put_line('用户不存在');
end if;
end;
/
出错:
Warning: Procedure created with compilation errors

SQL> show error;
Errors for PROCEDURE SYSTEM.CKUNAME:

LINE/COL ERROR
-------- ---------------------------------
7/38 PL/SQL: ORA-00942: 表或视图不存在7/8 PL/SQL: SQL Statement ignored
...全文

相关推荐

导入pde时报表或视图不存在的问题.txt

Oracle导入pde时报表或视图不存在的问题

Android蜗牛

ORACLE单独授权表或视图或存储过程.doc

ORACLE数据库需要授权部分数据表给某个用户,而不是全数据库授权给用户。则可以根据附件内容进行操作。

julia9494

Oracle删除表前判断表名是否存在若存在则删除

在Oracle中若删除一个不存在的表,如 “DROP TABLE notExistTable”,则会提示: ORA-00942:表或视图不存在, 若使用程序执行该语句则会报异常,这就需要我们再删除表前判断该表是否存在,若存在则删除. 下面是不使用存储过程实现删除表的SQL: 代码如下: <span xss=removed>DECLARE num NUMBER; BEGIN SELECT COUNT(1) INTO num FROM USER_TABLES WHERE TABLE_NAME = UPPER(‘tab

weixin_38635092

SQL单独授权表或视图或存储过程.doc

不需要整个数据库授权给某个数据库用户,只是需要提供个别数据表、视图、存储过程给某用户。详细内容请见附件

julia9494

Sql Server中判断表、列不存在则创建的方法

一、Sql Server中如何判断表中某列是否存在 首先跟大家分享Sql Server中判断表中某列是否存在的两个方法,方法示例如下: 比如说要判断表A中的字段C是否存在两个方法:  第一种方法  IF EXISTS ( SELECT 1 FROM SYSOBJECTS T1 INNER JOIN SYSCOLUMNS T2 ON T1.ID=T2.ID WHERE T1.NAME='A' AND T2.NAME='C' ) PRINT '存在' ELSE PRINT '不存在' 第二种方法,短小精悍,可谓精典  IF COL_LENGTH('A', 'C') I

weixin_38633576
评论 8
收藏 已收藏
分享
返回顶部
HumanZHOU
Oracle 高级技术 3,499 成员 18,710 内容