我是PL / SQL的新手,并尝试了在线搜索,但无济于事-我们将不胜感激!
我正在寻找一种与此类似的程序:
PROCEDURE pProcedureOne
(pDateOne DATE,
pDateTwo tableA.DateTwo%TYPE,
pDateThree tableB.DateThree%TYPE,
pTypeOne tableC.TypeOne%TYPE,
pTestId tableD.TestIdentifier%TYPE DEFAULT NULL,
pShouldChange BOOLEAN DEFAULT FALSE)
IS
在这种情况下,'%TYPE'
关键字是什么意思?
答案 0 :(得分:3)
tableA.DateTwo%TYPE
的意思是“ DateTwo
表中tableA
列的数据类型”。您会在文档中看到这种称为“锚定类型”的
出于几个原因,使用锚定类型非常有用
varchar2(100)
列后来被修改以允许varchar2(255)
,并且您必须浏览数十或数百种引用该列的方法以确保其局部变量更新到足够长的时间。tableA.DateTwo%TYPE
的过程,那么如果有不同的DateTwoPrime
列表示稍有不同的日期,则该信息将非常有用。答案 1 :(得分:1)
%TYPE表示不必定义字段类型,因为它将从字段的类型继承它。
因此pDateTwo不需要自己的类型定义,因为它必须与tableA.DateTwo具有相同的类型。
答案 2 :(得分:1)
这意味着使用您要引用的table.column的数据类型。因此,例如,如果tableC.TypeOne为VARCHAR2(10),则这是分配给pTypeOne的数据类型。
答案 3 :(得分:1)
这意味着pDateTwo
的数据类型将与tableA.DateTwo
的数据类型相同。