2015-04-15 3 views
-2

Я новичок в SQL Server, так что я есть некоторые основные вопросы хранимых процедурхранимые процедуры в SQL Server

CREATE OR REPLACE PROCEDURE ADD_TOTAL_WEIGHT( 
    shipment_id varchar2, 
    item_no varchar2, 
    quantity number, 
    @total_weight int out) 
as 
BEGIN 
    insert into test_new_shipment_weight 
    values(1,100); 
END ADD_TOTAL_WEIGHT; 
  1. Почему возникают ошибки, когда я пытаюсь поставить @ перед входными параметрами?
  2. Я получаю ошибку

    Встречающиеся символ "@", когда ожидал ..... "

  3. Для этого:

    CREATE OR REPLACE PROCEDURE ADD_TOTAL_WEIGHT( 
        shipment_id varchar2, 
        item_no varchar2, 
        quantity number) 
    as 
        declare total_weight int -->error:"Encountered the symbol "DECLARE" when expecting one of the following:......" 
    BEGIN 
        insert into test_new_shipment_weight 
        values(1,100); 
    END ADD_TOTAL_WEIGHT; 
    

    Я пытался поставить @ до total_weight, но это не помогает. Я просмотрел объявление переменных и параметры онлайн, но этот синтаксис также не работает.

+1

Поскольку ваш синтаксис неверен. Определения параметров не окружены скобками. После окончательного 'END' не должно быть ничего. Все параметры должны начинаться с '@'. Используйте 'OUTPUT' не' out'. Также ваш оператор insert должен отображать столбцы в таблице, которую вы вставляете в –

+0

И SQL Server не имеет 'CREATE OR REPLACE' - либо' CREATE PROCEDURE', либо 'ALTER PROCEDURE' –

ответ

-2

Вы не можете делать CREATE или REPLACE на сервере sql при создании хранимой процедуры, поэтому вы получаете сообщение об ошибке. Здесь вам нужно создать процедуру.

CREATE PROCEDURE ADD_TOTAL_WEIGHT(

@shipment_id varchar2, 

@item_no varchar2, 

@quantity number, 

@total_weight int output) 

as 

BEGIN 

insert into test_new_shipment_weight (columnname1, columnname2) 

values(@item_no,@quantity); 

END 
0

Переместить декларацию @total_weight внутри блока begin..end

CREATE PROCEDURE ADD_TOTAL_WEIGHT 

    @shipment_id varchar2, 
    @item_no varchar2, 
    @quantity number 

as 
BEGIN 
    declare @total_weight int 
... 
Смежные вопросы