Создать процедуру и вставить значения в таблицу - PullRequest
0 голосов
/ 28 ноября 2018

Создайте процедуру с именем insert_credit для вставки значений в таблицу credit_card, передав 5 параметров в качестве параметров.

Имя процедуры: insert_credit

Входной параметр: credit_id with data type as number,credit_card_number with data type as varchar,credit_card_expire with data type as varchar,holder_name with data type as varchar and card_type with data type as varchar

Используемая таблица: credit_card

Я написал это:

CREATE OR REPLACE PROCEDURE insert_credit(
       p_credit_id IN credit_card.credit_id%TYPE,  
       p_credit_card_number IN credit_card.credit_card_number%TYPE,  
       p_credit_card_expire IN credit_card.credit_card_expire%TYPE,  
       p_holder_name IN credit_card.holder_name%TYPE,  
       p_card_type IN credit_card.card_type%TYPE)  
IS  
BEGIN  

   INSERT INTO credit_card ("credit_id", "credit_card_number",   "credit_card_expire", "holder_name","card_type")   
  VALUES (p_credit_id, p_credit_card_number,p_credit_card_expire,  
 p_holder_name,p_card_type);  

  COMMIT;  

END;  
/                                                                            

При выполнении я получаю:

"Предупреждение:Процедура создана с ошибками компиляции. "

1 Ответ

0 голосов
/ 28 ноября 2018

Если вы хотите отладить свою процедуру, вы можете запустить ее как анонимный блок и объявить все входные параметры.

/*CREATE OR REPLACE PROCEDURE insert_credit(
       p_credit_id IN credit_card.credit_id%TYPE,  
       p_credit_card_number IN credit_card.credit_card_number%TYPE,  
       p_credit_card_expire IN credit_card.credit_card_expire%TYPE,  
       p_holder_name IN credit_card.holder_name%TYPE,  
       p_card_type IN credit_card.card_type%TYPE)  
IS  */
declare
p_credit_id credit_card.credit_id%TYPE := somevalue
...
..
...
P_card_type

BEGIN  

   INSERT INTO credit_card ("credit_id", "credit_card_number",   "credit_card_expire", "holder_name","card_type")   
  VALUES (p_credit_id, p_credit_card_number,p_credit_card_expire,  
 p_holder_name,p_card_type);  

  COMMIT;  

END; 

Теперь вы сможете получить строку, в которой вы получаете ошибку.После выполнения блока без ошибок вы можете удалить часть объявления и раскомментировать закомментированный код.

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