Một số vấn đề:
-
VARHAR2
chúng tôi là lỗi đánh máy và phải làVARCHAR2
.- Thay vào đó, bạn có thể chỉ định các kiểu dữ liệu để tham chiếu đến các cột trong bảng tương ứng bằng cách sử dụng
table_name.column_name%TYPE
.
- Thay vào đó, bạn có thể chỉ định các kiểu dữ liệu để tham chiếu đến các cột trong bảng tương ứng bằng cách sử dụng
- Quy trình không xuất ra bất kỳ thứ gì - bạn cần thay đổi một trong các
IN
tham số cho mộtOUT
(hoặcIN OUT
tham số). - Truy vấn của bạn không chỉ định tên bảng.
- Bạn có thể sử dụng
SELECT ... INTO ...
chứ không phải làCURSOR
.
Một cái gì đó như thế này:
CREATE OR REPLACE PROCEDURE FIRSTPROC (
ID1 IN table_name.id1val%TYPE,
ID2 OUT table_name.id2val%TYPE
)
AS
BEGIN
DBMS_OUTPUT.PUT_LINE(ID1);
SELECT id2val
INTO ID2
FROM table_name
WHERE id1val = ID1;
EXCEPTION
WHEN NO_DATA_FOUND THEN
ID2 := 0; -- Or you could use NULL
WHEN TOO_MANY_ROWS THEN
ID2 := 0; -- Or you could use NULL
END;
/