ORA-00909:无效的参数数SQL



select check_num,concat(Pat_FName,' ',Pat_LName),Book_Title,
concat(Au_FName,' ',Au_LName),check_out_date,Check_Due_Date
from checkout,Patron,Author,Book,Writes
where
Author.Au_ID=writes.Au_ID and
Writes.Book_Num=Book.Book_Num and
Book.Book_Num=checkout.book_num and
checkout.pat_ID=Patron.Pat_ID
and Pat_Type like 'Faculty'
order by check_out_date desc;

如何解决这个问题?我不知道如何解决它,因为它只是一直显示。

问题是你试图使用concat为3个字符串,这是不可能的,因为concat期望2个字符串。你可以用||来代替…

Pat_FName || ' ' || Pat_LName

…或者你可以"concat"你的concats;)

CONCAT(CONCAT(Pat_FName,' '), Pat_LName)

除此之外,您应该避免以这种方式连接表,而更倾向于使用JOIN。最后一个提示:你应该避免使用"like"(在order by之前的最后一行),因为like比较慢,所以只比较一个确切的字符串。在这种情况下,应该使用=。一般来说,看一看SQL教程可能会有很大帮助。

最新更新