【发布时间】:2013-05-13 12:54:36
【问题描述】:
创建和使用不与存储在数据库中的数据交互的 pl/sql 过程很容易制作和执行,但显然用途有限。
但是我在处理这些存储的数据时遇到了一些困难。
以函数为例:
CREATE OR REPLACE PROCEDURE update_emp (emp_rec CONTACT%ROWTYPE) IS
fistname VARCHAR (40);
BEGIN
firstname := TRIM(fname);
UPDATE contact
SET FNAME = firstname
WHERE CONTACT_ID = emp_rec.id;
END update_emp;
/
设计用于包含列 FNAME 和主键 CONTACT_ID 的 CONTACT 表;上面的代码抛出编译错误:
必须声明标识符“FNAME”
如何让函数知道这个专栏?
【问题讨论】:
-
您正确使用参数名称来引用更新语句中的 ID 列。为什么不尝试对变量赋值做同样的事情呢?
-
这个
fistname VARCHAR (40);和firstname :=TRIM(fname);你错过了r减速呢 -
"...明显的使用受限。"为什么?我想说的恰恰相反。
标签: oracle function plsql arguments