oracle创建的视图带有编译错误
plsql表或视图不存在编译的解决方法如下:
1、表或视图确实不存在或名称写错。表名大小写。
2、Oracle对大小写敏感,通常在创建和查询时对名称数据库会自动转为大写,但语句中有引号时会按引号中的内容保留。
2. oracle数据中的视图上有红色标记,我查询的时候就说视图有错误,用JBDC连接查询的时候就报连接从未连接,麻
重新编译一下视图,如果还是有错误,那就检查视图的语法吧。既然都有红色的标记了,肯定是视图已经出错无效了。
3. oracle中普通用户创建视图,提示权限不足案例
操作系统:win10
数据库软件:oracle11g
数据库工具:PLSQL Developer 15 (64 bit)
在普通用户下尝试创建视图时,经常会遇到权限不足的问题。此现象在Oracle数据库中尤为常见。要解决此问题,通常需要将权限授予具有足够权限的用户,比如超级管理员或普通管理员。
权限不足的解决策略是:确保用户拥有创建视图、查询任意表以及查询任意字典的权限。这些权限需要通过系统管理员账户进行授权。系统管理员账户名为system,密码则应根据个人设置自行设定。授权步骤如下:
1. 打开SQL plus工具。路径为:Windows——程序——oracle-oraDb11g_home1——SQL plus。
2. 输入系统管理员账户(普通管理员)和密码(之前设置的),进入系统管理员界面。
3. 授权scott用户创建视图的权限,需同时授予三个权限:创建视图、查询任意表和查询任意字典。SQL语句为:
1、grant create view to B;
2、grant select any table to B;
3、grant select any dictionary to B;
4. 通过SQL plus工具返回到普通用户界面,尝试再次创建视图。
通过上述步骤,scott用户应能成功创建视图。验证创建是否成功,可以通过查看已有的视图列表来确认。
此案例反映的是实际操作中遇到的权限问题,提供了解决方案,并希望对遇到相同问题的用户有所帮助。原创案例分享,期待能对您有所启发。
4. oracle: 不知道为什么,我的视图可以查询,但是点编辑 或是从新编译那个视图,PLSQL就卡死了。谢谢
很有可能是视图锁了。或者是视图里的某一个表锁了
5. Oracle数据库job,调用存储过程,PLSQL工具执行后,没有报错,但是也没有任何效果,哪位大神帮忙分析一下
SQL> create or replace procere test_jobproce as
2
3 begin
4
5 insert into test_job values(sysdate);
6
7 end test_jobproce;
8
9 /
警告: 创建的过程带有编译错误。
SQL> show errors;
PROCEDURE TEST_JOBPROCE 出现错误:
LINE/COL ERROR
-------- -----------------------------------------------------------------
5/1 PL/SQL: SQL Statement ignored
5/13 PL/SQL: ORA-00942: 表或视图不存在
SQL> create table test_job (t1 date);
表已创建。
SQL> create or replace procere test_jobproce as
2
3 begin
4
5 insert into test_job values(sysdate);
6
7 end test_jobproce;
8 /
过程已创建。
SQL> declare test_job_really number;
2 begin
3 dbms_job.submit(test_job_really,'test_jobproce;',sysdate,'sysdate+1/1440')
4 commit;
5 end;
6 /
PL/SQL 过程已成功完成。
SQL> rpitn :test_job_really;
SP2-0734: 未知的命令开头 "rpitn :tes..." - 忽略了剩余的行。
SQL> print :test_job_really;
SP2-0552: 未声明绑定变量 "TEST_JOB_REALLY"。
SQL> desc dba_jobs;
名称 是否为空? 类型
----------------------------------------- -------- ---------------------------
JOB NOT NULL NUMBER
LOG_USER NOT NULL VARCHAR2(30)
PRIV_USER NOT NULL VARCHAR2(30)
SCHEMA_USER NOT NULL VARCHAR2(30)
LAST_DATE DATE
LAST_SEC VARCHAR2(8)
THIS_DATE DATE
THIS_SEC VARCHAR2(8)
NEXT_DATE NOT NULL DATE
NEXT_SEC VARCHAR2(8)
TOTAL_TIME NUMBER
BROKEN VARCHAR2(1)
INTERVAL NOT NULL VARCHAR2(200)
FAILURES NUMBER
WHAT VARCHAR2(4000)
NLS_ENV VARCHAR2(4000)
MISC_ENV RAW(32)
INSTANCE NUMBER
SQL> select job ,what from dba_jobs;
JOB
----------
WHAT
-------------------------------------------------------------------------------
4001
wwv_flow_cache.purge_sessions(p_purge_sess_older_then_hrs => 24);
4002
wwv_flow_mail.push_queue(wwv_flow_platform.get_preference('SMTP_HOST_ADDRESS'),
wv_flow_platform.get_preference('SMTP_HOST_PORT'));
3
test_jobproce;
JOB
----------
WHAT
-------------------------------------------------------------------------------
SQL> exec dbms_job.run(3);
PL/SQL 过程已成功完成。
SQL> select * from test_job
2 ;
T1
--------------
05-3月 -14
05-3月 -14
SQL> /
T1
--------------
05-3月 -14
05-3月 -14
SQL> /
T1
--------------
05-3月 -14
05-3月 -14
SQL> /
T1
--------------
05-3月 -14
05-3月 -14
SQL> exec dbms_job.run(3);
PL/SQL 过程已成功完成。
SQL> /
T1
--------------
05-3月 -14
05-3月 -14
05-3月 -14
SQL> /
T1
--------------
05-3月 -14
05-3月 -14
05-3月 -14
SQL> exec dbms_job.run(3);
PL/SQL 过程已成功完成。
SQL> /
T1
--------------
05-3月 -14
05-3月 -14
05-3月 -14
05-3月 -14
SQL>
6. oracle数据库导入 导入到创建的对象带有编译警告 不动了
你当前导入的对象上之前应该有,而且被锁定了