以下Oracle数据库代码中有哪些错误?
What are the errors in the following Oracle database code?
在 Oracle 中,STAFF
table 有四列:
id, first_name, last_name, salary
列 id
和 salary
是 NUMBER
数据类型,而列 first_name
和 last_name
是 VARCHAR2(20)
数据类型。
这是操纵 STAFF table 的 PL/SQL 代码。有没有错误?
v_id NUMBER := 200;
v_fname VARCHAR2(20);
v_lname
v_sal NUMBER;
BEGIN
SELECT first_name, last_name, salary
INTO v_fname, v_lname
FROM STAFF
WHERE id=v_id;
DBMS_OUTPUT.PUT(v_fname||‘ ‘||v_fname||’ makes ’||v_sal);
您似乎没有提供 DECLARE
语句,并且遗漏了 v_lname
的类型值。此外,您没有在 INTO
子句中包含 v_sal
。试试这个:
DECLARE
v_id NUMBER := 200;
v_fname VARCHAR2(20);
v_lname VARCHAR2(20);
v_sal NUMBER;
BEGIN
SELECT first_name, last_name, salary
INTO v_fname, v_lname, v_sal
FROM STAFF
WHERE id=v_id;
DBMS_OUTPUT.PUT(v_fname||' '||v_fname||' makes '||v_sal);
END;
你需要:
DECLARE
开头。
END;
在末尾,然后在换行符上 /
。
'
用于字符串文字而不是 ‘
DBMS_OUTPUT.PUT_LINE
而不是 DBMS_OUTPUT.PUT
(不会将行刷新到缓冲区)。
DECLARE
v_id NUMBER := 200;
v_fname VARCHAR2(20);
v_lname VARCHAR2(20);
v_sal NUMBER;
BEGIN
SELECT first_name, last_name, salary
INTO v_fname, v_lname, v_sal
FROM STAFF
WHERE id=v_id;
DBMS_OUTPUT.PUT_LINE(v_fname||' '||v_fname||' makes '||v_sal);
END;
/
db<>fiddle here
在 Oracle 中,STAFF
table 有四列:
id, first_name, last_name, salary
列 id
和 salary
是 NUMBER
数据类型,而列 first_name
和 last_name
是 VARCHAR2(20)
数据类型。
这是操纵 STAFF table 的 PL/SQL 代码。有没有错误?
v_id NUMBER := 200;
v_fname VARCHAR2(20);
v_lname
v_sal NUMBER;
BEGIN
SELECT first_name, last_name, salary
INTO v_fname, v_lname
FROM STAFF
WHERE id=v_id;
DBMS_OUTPUT.PUT(v_fname||‘ ‘||v_fname||’ makes ’||v_sal);
您似乎没有提供 DECLARE
语句,并且遗漏了 v_lname
的类型值。此外,您没有在 INTO
子句中包含 v_sal
。试试这个:
DECLARE
v_id NUMBER := 200;
v_fname VARCHAR2(20);
v_lname VARCHAR2(20);
v_sal NUMBER;
BEGIN
SELECT first_name, last_name, salary
INTO v_fname, v_lname, v_sal
FROM STAFF
WHERE id=v_id;
DBMS_OUTPUT.PUT(v_fname||' '||v_fname||' makes '||v_sal);
END;
你需要:
DECLARE
开头。END;
在末尾,然后在换行符上/
。'
用于字符串文字而不是‘
DBMS_OUTPUT.PUT_LINE
而不是DBMS_OUTPUT.PUT
(不会将行刷新到缓冲区)。
DECLARE
v_id NUMBER := 200;
v_fname VARCHAR2(20);
v_lname VARCHAR2(20);
v_sal NUMBER;
BEGIN
SELECT first_name, last_name, salary
INTO v_fname, v_lname, v_sal
FROM STAFF
WHERE id=v_id;
DBMS_OUTPUT.PUT_LINE(v_fname||' '||v_fname||' makes '||v_sal);
END;
/
db<>fiddle here