Sql Oracle表字段类型声明问题
我有一个使用Sql Oracle表字段类型声明问题,sql,oracle,plsql,Sql,Oracle,Plsql,我有一个使用%TYPE声明变量的过程。到目前为止,它只适用于一个表,即员工: CREATE OR REPLACE PROCEDURE MYPROCEDURE DECLARE filed2 EMPLOYEES.name%TYPE; END; 现在,我想将其扩展到其他表,这些表具有相同的几个常用表。因此,我将表名作为参数传递。这里如何使用类型语法,因为表名在变量中。如果我正在尝试这个: CREATE OR REPLACE PROCEDURE MYPROCEDURE (myTable IN VARC
%TYPE
声明变量的过程。到目前为止,它只适用于一个表,即员工
:
CREATE OR REPLACE PROCEDURE MYPROCEDURE
DECLARE
filed2 EMPLOYEES.name%TYPE;
END;
现在,我想将其扩展到其他表,这些表具有相同的几个常用表。因此,我将表名作为参数传递。这里如何使用类型
语法,因为表名在变量中。如果我正在尝试这个:
CREATE OR REPLACE PROCEDURE MYPROCEDURE (myTable IN VARCHAR2)
DECLARE
filed2 myTable.name%TYPE;
END;
我犯了一个错误。我怎样才能做到呢?不,你不能。类型声明是静态的。可以使用
%type
来推断它,但它仍将编译为静态类型定义
在您的情况下,您尝试引用
varchar2
中的“属性”,这是不可能的(Oracle在varchar2
上没有属性)。@CrazyC:需要更多帮助吗?