PL / SQL процедуры / функции - PullRequest
0 голосов
/ 30 октября 2018

Я пытаюсь написать функцию invoiceCheck с одним входным параметром (номером счета), чтобы проверить, существует ли счет в моей базе данных.

Create or replace function invoiceCheck(invoice_number_text IN
char)
 RETURN char IS
invoice_id_text invoices.invoice_id%type;
invoice_total_text invoices.invoice_total%type;
invoice_due_date_text invoices.invoice_due_date%type;
BEGIN
select invoice_total
into invoice_total_text
from invoices
where invoices.invoice_number=invoice_number_text ;
return invoice_total_text;
END; 

Я также написал процедуру InvoiceDetail, которая имеет один входной параметр (номер счета). В этой процедуре я вызвал функцию invoiceCheck, чтобы проверить, существует ли счет, и если да, я хочу отобразить invoice_id, invoice_total и invoice_due_date для этого счета. Если нет, я хочу распечатать сообщение “invoice not in the database” из моей процедуры. Вот моя процедура:

Create or replace procedure InvoiceDetail(invoice_number_text IN
char) IS
exist_invoice_number char;
invoice_total_text invoices.invoice_total%type;
invoice_id_text invoices.invoice_id%type;
invoice_due_date_text invoices.invoice_due_date%type;
BEGIN
select count(*) into exist_invoice_number from invoices
where invoices.invoice_id = invoice_id_text;
if exist_invoice_number is not null  then
invoice_id_text := invoiceCheck(invoice_number_text);
 invoice_total_text := invoiceCheck(invoice_number_text);
 invoice_due_date_text := invoiceCheck(invoice_number_text);
dbms_output.put_line('Invoice ID:' ||invoice_id_text);
 dbms_output.put_line('Invoice Total:' ||invoice_total_text);
 dbms_output.put_line ( 'Invoice Due Date:' || invoice_due_date_text);
else
 dbms_output.put_line('Invoice not in the database');
end if;
END;

Когда я иду, чтобы выполнить номер счета-фактуры QP58872, используя:

set SERVEROUTPUT ON;
execute InvoiceDetail('QP58872');

Я получаю эту ошибку

ORA-01861: литерал не соответствует строке формата

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...