ошибка числового значения или значения в процедуре, которую я вызывал в Java

1

Когда я вызываю процедуру в java в моем вызываемом выражении, он говорит, что у меня есть числовая или значащая ошибка в моем коде. Тем не менее, когда я пытался запустить файл SQL только в базе данных оракула, он отлично работает. На нем появляется числовая или значащая ошибка, и результат, который мне нужен, получается отлично. Поэтому я не понимаю, почему всякий раз, когда эта процедура вызывается в моем классе java, она продолжает говорить об этой ошибке. Я попытался найти линию, где так называемая ошибка, и вот она...

Вот код моей процедуры

CREATE OR REPLACE
PROCEDURE RENTING
(P_NNAME IN VARCHAR2,
P_ADD IN VARCHAR2,
P_PHONE IN NUMBER,
P_ORDER IN VARCHAR2,
P_EMP_ID IN NUMBER,
P_VALID OUT NUMBER,
P_OR_NO OUT NUMBER
)
IS
V_AVAI  TITLE.AVAILABLE%TYPE;
P_OR VARCHAR2(5000);
P_OR_2 VARCHAR2(5000);
ORD_NO NUMBER(6);
TID NUMBER(38);
NUM NUMBER(3);
CTR NUMBER(3);
GO NUMBER(1);
BEGIN
P_OR:=P_ORDER;
ORD_NO:=SEQ_ORDER_NO.NEXTVAL;

INSERT INTO TRANSACTIONS (ORDER_NO, CUST_NICKNAME, CUST_ADD, CUST_CONTACT)
VALUES (ORD_NO, P_NNAME, P_ADD, P_PHONE);

INSERT INTO RENTS (ORDER_NO,ORDERS,DATERENTED,EMP_ID,DATERETURNED)
VALUES (ORD_NO,P_OR,SYSDATE,P_EMP_ID,NULL);

LOOP
  CTR:=INSTR(P_OR,';');
  NUM:=LENGTH(P_OR);
  IF CTR!=0 THEN
    CTR:=CTR-1;
    P_OR_2:=SUBSTR(P_OR,1,CTR);
    TID:=TO_NUMBER(P_OR_2);        //here the part of the conversion that is wrong in java
    CTR:=CTR+2;
    P_OR:=SUBSTR(P_OR,CTR,NUM);
    SELECT AVAILABLE 
    INTO V_AVAI
    FROM TITLE
    WHERE TITLE_ID=TID;
    IF V_AVAI!=0 THEN
      UP(TID);
      P_VALID:=1;
    ELSIF V_AVAI=0 THEN
      P_VALID:=0;
    END IF;
  ELSIF CTR = 0 THEN
    P_OR_2:=SUBSTR(P_OR,1,NUM);
    TID:=TO_NUMBER(P_OR_2);
    SELECT AVAILABLE 
    INTO V_AVAI
    FROM TITLE
    WHERE TITLE_ID=TID;
    IF V_AVAI!=0 THEN
      UP(TID);
      P_VALID:=1;
      P_OR_NO:=ORD_NO;
    ELSIF V_AVAI=0 THEN
      P_VALID:=0;
    END IF;
    GO:=1;
  END IF;
  EXIT WHEN GO=1;
END LOOP;
END RENTING;
/
  • 1
    Вы также должны опубликовать код Java, который пытается вызвать вашу хранимую процедуру.
Теги:

1 ответ

0

Запустите программу в отладчике и оцените аргументы. Возможно, вы пытаетесь поместить строку, которая не может быть преобразована в NUMBER.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню