我正在使用这个块有什么问题?请帮忙解决这个问题。 根据where子句只选择一行。
表格clazzes
Name Type Nullable Default Comments
---- ------------- -------- ------- --------
ID NUMBER(10)
NAME VARCHAR2(100) Y
PL / SQL阻止:
declare
type clazzes_row_type is record
(clazz_rownum number,
clazz_id clazzes.id%type,
clazz_name clazzes.name%type);
begin
clazzes_row_type.clazz_rownum :=111;
select id,name into clazzes_row_type.clazz_id,clazzes_row_type.clazz_name
from clazzes where name ='leo1';
dbms_output.put_line(clazzes_row_type.clazz_id);
dbms_output.put_line(clazzes_row_type.clazz_rownum);
dbms_output.put_line(clazzes_row_type.clazz_name);
end;
例外:
ORA-06550: line 8, column 1:
PLS-00330: invalid use of type name or subtype name
ORA-06550: line 8, column 1:
PL/SQL: Statement ignored
ORA-06550: line 9, column 21:
PLS-00330: invalid use of type name or subtype name
ORA-06550: line 9, column 75:
PL/SQL: ORA-00904: : invalid identifier
ORA-06550: line 9, column 1:
PL/SQL: SQL Statement ignored
ORA-06550: line 11, column 22:
PLS-00330: invalid use of type name or subtype name
ORA-06550: line 11, column 1:
PL/SQL: Statement ignored
ORA-06550: line 12, column 22:
PLS-00330: invalid use of type name or subtype name
ORA-06550: line 12, column 1:
PL/SQL: Statement ignored
ORA-06550: line 13, column 22:
PLS-00330: invalid use of type name or subtype name
ORA-06550: line 13, column 1:
PL/SQL: Statement ignored
答案 0 :(得分:9)
您应声明具有指定类型的变量。并使用构造函数实例化您的变量:
declare
type clazzes_row_type is record
(clazz_rownum number,
clazz_id clazzes.id%type,
clazz_name clazzes.name%type);
myvariable clazzes_row_type;
begin
myvariable := clazzes_row_type(111, null, null);
或使用您的选择:
begin
select 111,id,name into myvariable from clazzes where name ='leo1';