Запуск кода PL / SQL в Oracle 11g Express Edition - ошибка - PullRequest
1 голос
/ 10 января 2012

Я пытаюсь запустить следующий код PL / SQL в Oracle 11g XE.Насколько я понимаю, в коде нет ничего плохого, однако Oracle выдает мне ошибки, которые я не знаю, как их решить.

declare
bookIsbn        BookTitle.Isbn%type;
bookName        BookTitle.btName%type;
numOfCopies        number;

procedure getTotalLoans(
getbookIsbn            in    BookTitle.Isbn%type,
getbookName            out    BookTitle.btName%type,
getnumOfCopies        out    number) is
    begin
    SELECT BookTitle.btName, COUNT(BookCopy.isbn)
    INTO getbookName, getnumOfCopies
    FROM BookTitle, BookCopy, Loan
    WHERE getBookIsbn = BookCopy.isbn
    AND BookTitle.isbn = BookCopy.isbn
    AND BookCopy.bcId = Loan.bcId
    AND loan.dateback is null
    GROUP BY BookTitle.btName, BookTitle.isbn;
    end;

begin
--main block
getTotalLoans (4,bookName,numOfCopies);
    dbms_output.put_line('Book Name' || bookName || ' Number of copies on loan: ' || numOfCopies);
end;
/

И я получаю следующую ошибку:

ERROR at line 2:
ORA-06550: line 2, column 1:
PLS-00114: identifier 'BOOKISBNƒƒƒƒƒƒƒƒBOOKTI' too long
ORA-06550: line 2, column 34:
PLS-00103: Encountered the symbol "." when expecting one of the following:
constant exception <an identifier>
<a double-quoted delimited-identifier> table long double ref
char time timestamp interval date binary national charact
ORA-06550: line 3, column 1:
PLS-00114: identifier 'BOOKNAMEƒƒƒƒƒƒƒƒBOOKTI' too long
ORA-06550: line 3, column 34:
PLS-00103: Encountered the symbol "." when expecting one of the following:
constant exception <an identifier>
<a double-quoted delimited-identifier> table long double ref
char time timestamp interval date binary national charact
ORA-06550: line 4, column 1:
PLS-00114: identifier 'NUMOFCOPIESƒƒƒƒƒƒƒƒNUM' too long
ORA-06550: line 4, column 34:
PLS-00103: Encountered the symbol ";" when expecting one of the following:
constant exception <an identifier>
<a double-quoted delimited-identifier> table long double ref
char time timestamp

Любая помощь будет оценена.

Спасибо!

1 Ответ

3 голосов
/ 10 января 2012

Код, который вы дали, отлично работает для меня, когда я запускаю его. Однако ошибка предполагает наличие некоторых дополнительных символов между именами и типами переменных. То есть BOOKISBNƒƒƒƒƒƒƒƒBOOKTI, откуда взялись все символы f? Возможно, это непечатаемые символы, которые обработчик ошибок преобразует в печатные символы. Что если вы скопировали и вставили приведенное ниже в объявления переменных и попытались снова?

bookIsbn BookTitle.Isbn%type;
bookName BookTitle.btName%type;
numOfCopies number;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...