Procedury SQL

0

Witam. Chcę napisać procedurę, która doda do bazy nowego klienta, jednak mam z tym problem. Oto tabela klienci:

CREATE TABLE Klienci (
Id_klienta NUMBER CONSTRAINT klient_pk PRIMARY KEY,
Id_osoby NUMBER NOT NULL CONSTRAINT kl_unique UNIQUE,
Znizka NUMBER,
CONSTRAINT kl_os_fk FOREIGN KEY (Id_osoby) REFERENCES Osoby(Id_osoby)
);

Napisałem taką procedurę:

create or replace procedure dodajklienta
@id_osoby int
@id_klienta int
@znizka int
as 
insert klienci
values(@id_osoby, @id_klienta, @znizka)

execute klienci 15, 13, 0
select *from klienci;

Jednak nie działa tak jak powinno. Wzorowałem się na przykładzie z tej strony: http://main3.amu.edu.pl/~przemeks/files/programowanie_sql_cd.pdf
Wywala mi błąd podczas kompilacji procedury:
PROCEDURE dodajklienta compiled
Warning: wykonywanie ukończono z ostrzeżeniem

A gdy chcę dodać klienta za pomocą execute klienci 15, 13, 0 nic się nie dzieje i wywala błędy.

0

Może bardziej coś w tym stylu:

CREATE OR REPLACE PROCEDURE dodajklienta
@id_osoby INT
@id_klienta INT
@znizka INT
AS 
BEGIN
INSERT klienci(id_osoby, id_klienta, znizka) VALUES(@id_osoby, @id_klienta, @znizka)
END
 
EXECUTE klienci 15, 13, 0
SELECT *FROM klienci;
0

Może bardziej coś w tym stylu:

CREATE OR REPLACE PROCEDURE dodajklienta
@id_osoby INT,
@id_klienta INT,
@znizka INT
AS 
BEGIN
INSERT klienci(id_osoby, id_klienta, znizka) VALUES(@id_osoby, @id_klienta, @znizka)
END
 
EXECUTE klienci 15, 13, 0
SELECT *FROM klienci;
0

CREATE OR REPLACE PROCEDURE dodajklienta
EXECUTE **klienci **15, 13, 0

INSERT INTO klienci

0

Dzięki za próbę pomocy, ale udało mi się wreszcie samemu rozwiązać problem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1