我在表'Company'
中填充了多个元组/行。其中一个是Microsoft 'Company_name'
字段,'City'
字段填充为Redmond。
我编译了这个PL / SQL文件。
- 创建一个能够返回公司X所在城市的功能 - X将是呼叫者提供的参数 - 使用您选择的公司测试您的功能。
CREATE OR REPLACE FUNCTION company_location_city(x IN company.company_name%TYPE)
return company.city%TYPE IS
company_location company.city%TYPE;
BEGIN
select city into company_location
from company
where company_name = x;
return company_location;
END;
然后用这条线跑。
select company_location_city('Microsoft') from dual;
我收到了这个错误,我不明白它试图告诉我什么。当然我们遇到了选择。
我正在运行Oracle风格。
错误(12,1):PLS-00103:遇到符号" SELECT"
显示错误的查询结果也应该有所帮助。
ORA-06575:包或函数COMPANY_LOCATION_CITY处于无效状态 06575. 00000 - "包或函数%s处于无效状态" *原因:SQL语句引用了一个PL / SQL函数 无效的状态。 Oracle试图编译该函数,但是 检测到错误。 *操作:检查SQL语句和PL / SQL函数的语法 a的错误或错误分配或缺失的权限 引用对象。 行错误:16列:8
答案 0 :(得分:1)
错误的 PLS 前缀表示它是pl \ sql引擎错误。因此,这意味着您的sql代码被视为pl \ sql,因为函数ddl代码是pl \ sql。你混淆了sql和pl / sql,你应该用分隔符拆分它们或删除其中一种代码。