2016-10-06 140 views
0
create or replace view v_placement 
as 
select * from (
select c.consultant_id, 
     p.placement_id, 
     p.plt_short_desc, 
     p.plt_required_start_date, 
     p.plt_estimated_end_date, 
     p.plt_actual_start_date, 
     p.plt_actual_end_date, 
     p.plt_renewal_no, 
     p.plt_to_permanent, 
     p.max_salary, 
     p.min_salary, 
     p.actual_salary 
from lds_account a, 
    lds_placement p, 
    my_users m, 
    lds_consultant c 
where a.account_id=p.fk1_account_id 
and c.consultant_id=m.consultant_id 
and upper(m.user_name)=NVL(v('APP_USER')),user) 

我創造了這個觀點的顧問視圖展示位置和我得到錯誤信息:創建視圖只允許帳戶

ORA-00909:參數

一個無效的數字。 account_id是帳戶中的主鍵table = p.fk1_account_id是放置表中的外鍵,c.consultant_id是顧問表中的主鍵= m.consultant_id是my_users表中用於存儲密碼和用戶名的外鍵。

我要當一個特定的顧問登錄可以看到你的where子句

+0

每當您收到編譯錯誤消息時,它都會指向發現錯誤的行和確切位置。在大多數情況下,這非常有幫助;它是你的,它可能指向只有一個參數的NVL。嘗試學習如何閱讀和利用錯誤消息,它將在未來爲您提供良好的服務。當你在這裏發帖時,一定要包含完整的錯誤信息,而不只是其中的一部分 - 它會幫助我們幫助你。乾杯! – mathguy

回答

3

壞parenteses只有他的位置:

and upper(m.user_name)=NVL(v('APP_USER'),user)) 

而且,你不需要select * from和最終的括號...

create or replace view v_placement 
as 
select c.consultant_id, 
     p.placement_id, 
     p.plt_short_desc, 
     p.plt_required_start_date, 
     p.plt_estimated_end_date, 
     p.plt_actual_start_date, 
     p.plt_actual_end_date, 
     p.plt_renewal_no, 
     p.plt_to_permanent, 
     p.max_salary, 
     p.min_salary, 
     p.actual_salary 
from lds_account a, 
    lds_placement p, 
    my_users m, 
    lds_consultant c 
where a.account_id=p.fk1_account_id 
and c.consultant_id=m.consultant_id 
and upper(m.user_name)=NVL(v('APP_USER'),user) 
+0

很高興看到其他人也打倒無用的括號 –

相關問題