ORA-00909: 参数数量无效 SQL

ORA-00909: invalid number of arguments 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;

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

问题是您尝试对 3 个字符串使用 concat,这不可能以这种方式进行,因为 concat 需要 2 个字符串。 你可以使用 ||相反...

Pat_FName || ' ' || Pat_LName

...或者您可以“连接”您的连接 ;)

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

除了这个问题,您应该避免以这种方式连接表,而更喜欢使用 JOIN。 最后一个提示:当只与一个确切的字符串比较时,你应该避免使用“like”(在你的最后一行中,在 order by 之前),因为 like 很慢。在这种情况下,您应该改用 =。一般来说,看看 SQL 教程可能会有很大帮助。