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:需要更多帮助吗?