【问题标题】:PLSQL Quoted String Not Properly Terminated [closed]PLSQL引用的字符串未正确终止[关闭]
【发布时间】:2013-12-06 05:19:33
【问题描述】:

我无法找到带引号的字符串未正确结束的错误。我到处找,我的语法似乎是正确的。这个问题只是在我介绍 if 语句时才出现的。任何想法,将不胜感激。谢谢。如果您需要更多信息,请告诉我。

declare

bk_id book.book_code%type;
bk_authorName author.author_first%type;
bk_authorLastName author.author_last%type;
bk_title book.title%type;
bk_pubcode book.publisher_code%type;
bk_category book.type%type;
bk_price book.price%type;
bk_paper book.paperback%type;
TempData := 10;

cursor book_cursor is select author.author_first, author.author_last,  book.title, book.type, book.price from book, author, wrote where book.book_code=wrote.book_code and author.author_num=wrote.author_num;

begin

open book_cursor;

dbms_output.put_line('First Name    Last Name       Title                        Type    Price');
dbms_output.put_line('________________________________________________________________________');
dbms_output.put_line('Date: '||Systimestamp);
loop

fetch book_cursor into  bk_authorName, bk_authorLastName, bk_title, bk_category, bk_price;

if(bk_price<TempData) then

dbms_output.put_line(bk_authorName || ' ' || bk_authorLastName || ' ' || bk_title || ' ' || bk_category || ' ' || bk_price || 'Special Deal');

else

dbms_output.put_line(bk_authorName || ' ' || bk_authorLastName || ' ' || bk_title || ' " || bk_category || ' ' || bk_price);

end if;

exit when book_cursor%notfound;

end loop;

close book_cursor;

end;

【问题讨论】:

  • 只看语法高亮就足以看出你的错字在哪里......
  • 我在 Mac 终端中没有语法高亮。你在哪里看到的?
  • 这个问题似乎是题外话,因为它是关于一个错字
  • @Klinetel:这里有语法高亮显示。
  • ELSE 子句中bk_category 之前有一个双引号而不是单引号。

标签: sql oracle plsql oracle11g oracle10g


【解决方案1】:

实际上这个语法的问题是你使用了双引号而不是单引号。 这是更正后的代码。试试这个,应该可以的。

    declare

    bk_id book.book_code%type;
    bk_authorName author.author_first%type;
    bk_authorLastName author.author_last%type;
    bk_title book.title%type;
    bk_pubcode book.publisher_code%type;
    bk_category book.type%type;
    bk_price book.price%type;
    bk_paper book.paperback%type;
    TempData := 10;

    cursor book_cursor is select author.author_first, author.author_last,  book.title, book.type, book.price from book, author, wrote where book.book_code=wrote.book_code and author.author_num=wrote.author_num;

    begin

    open book_cursor;

    dbms_output.put_line('First Name    Last Name       Title                        Type    Price');
    dbms_output.put_line('________________________________________________________________________');
    dbms_output.put_line('Date: '||Systimestamp);
    loop

    fetch book_cursor into  bk_authorName, bk_authorLastName, bk_title, bk_category, bk_price;

    if(bk_price<TempData) then

    dbms_output.put_line(bk_authorName || ' ' || bk_authorLastName || ' ' || bk_title || ' ' || bk_category || ' ' || bk_price || 'Special Deal');

    else

    dbms_output.put_line(bk_authorName || ' ' || bk_authorLastName || ' ' || bk_title || ' ' || bk_category || ' ' || bk_price);

    end if;

    exit when book_cursor%notfound;

    end loop;

    close book_cursor;

    end; 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多