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資料庫導入 導入到創建的對象帶有編譯警告 不動了
你當前導入的對象上之前應該有,而且被鎖定了