3

这是我的家庭作业中的一项任务:

DEFINE countryid = CA
DECLARE 
country_record countries%ROWTYPE;
BEGIN
  SELECT *
  INTO country_record
  FROM countries
  WHERE country_id = '&countryid';
END;

根据任务要求countryid 应使用 define 语句声明并应赋予默认值 CA,然后应根据用户输入的值执行 select。
当我运行脚本时,我得到 4 个错误,当我注释掉 DEFINE countryid = CA 脚本成功执行时。
我的问题: PL/SQL Developer 中是否提供定义语句?
如果是,我做错了什么,你能建议一个正确的用法吗?

编辑:我收到以下错误:

ORA-06550 row 3 column 8
PLS-00201 identificator 'COUNTRY_RECORD' have to be declared
ORA-06550 row 4 column 3
PL/SQL ORA-00904: invalid identificator
ORA-06550 row 2 column 3
PL/SQL SQL statement ignored
4

3 回答 3

8

DEFINE 是一个 SQLPLUS 的东西,因此除了 COMMAND 窗口之外,PLSQL Developer 不支持它。对于 sql / test 窗口,只需将其删除(它将看到 & 并为您提供一个弹出窗口供您以这种方式定义它)。

于 2012-11-29T12:22:14.617 回答
0

在 PLSQL Developer 中,您可以使用此代码,但使用Command Window

DEFINE countryid = 'CA' DECLARE country_record countries%ROWTYPE; BEGIN SELECT * INTO country_record FROM countries WHERE country_id = '&countryid'; 结尾;

于 2012-11-29T19:31:43.233 回答
0
DEFINE countryid = CA
DECLARE 
country_record countries%ROWTYPE;
BEGIN
  SELECT *
  INTO country_record
  FROM countries
  WHERE country_id = :countryid;
END;
于 2016-11-17T17:01:49.210 回答