Plsql PL-SQL将查询结果存储到变量中
你好 我有一个PL-SQL查询,如下所示。我试图执行一个查询并将结果存储到一个变量中。到目前为止,我有一个有效的查询:Plsql PL-SQL将查询结果存储到变量中,plsql,Plsql,你好 我有一个PL-SQL查询,如下所示。我试图执行一个查询并将结果存储到一个变量中。到目前为止,我有一个有效的查询: SELECT DECODE(COUNT(*), 0, 'N', 'Y') REC_EXISTS FROM (SELECT COUNT(*) AS TOTAL_COUNT FROM DEV.BASEOBJECT INNER JOIN DEV.ANIMAL ON
SELECT DECODE(COUNT(*), 0, 'N', 'Y') REC_EXISTS
FROM
(SELECT
COUNT(*) AS TOTAL_COUNT
FROM DEV.BASEOBJECT INNER JOIN
DEV.ANIMAL ON DEV.BASEOBJECT.ID = DEV.ANIMAL.BASEOBJECT_ID
GROUP BY DEV.BASEOBJECT.ID,
DEV.BASEOBJECT.FIRST_NAME,
DEV.BASEOBJECT.LAST_NAME,
DEV.BASEOBJECT.CITY,
DEV.BASEOBJECT.STATE,
DEV.BASEOBJECT.ZIP,
DEV.ANIMAL.ID,
DEV.ANIMAL.NAME,
DEV.ANIMAL.BREED,
DEV.ANIMAL.DATE_OF_BIRTH,
DEV.ANIMAL.GENDER,
DEV.ANIMAL.SPECIES
HAVING (COUNT(*) > 1));
但当我尝试使用此查询将结果保存到变量中时:
DECLARE
v_name VARCHAR2(2);
BEGIN
SELECT DECODE(COUNT(*), 0, 'N', 'Y') REC_EXISTS
INTO v_name
FROM
(SELECT
COUNT(*) AS TOTAL_COUNT
FROM DEV.BASEOBJECT INNER JOIN
DEV.ANIMAL ON DEV.BASEOBJECT.ID = DEV.ANIMAL.BASEOBJECT_ID
GROUP BY DEV.BASEOBJECT.ID,
DEV.BASEOBJECT.FIRST_NAME,
DEV.BASEOBJECT.LAST_NAME,
DEV.BASEOBJECT.CITY,
DEV.BASEOBJECT.STATE,
DEV.BASEOBJECT.ZIP,
DEV.ANIMAL.ID,
DEV.ANIMAL.NAME,
DEV.ANIMAL.BREED,
DEV.ANIMAL.DATE_OF_BIRTH,
DEV.ANIMAL.GENDER,
DEV.ANIMAL.SPECIES
HAVING (COUNT(*) > 1));
END
我得到一个错误:
ERROR
ORA-06550: line 1, column 8:
PLS-00103: Encountered the symbol "" when expecting one of the following:
begin function package pragma procedure subtype type use
<an identifier> <a double-quoted delimited-identifier> form
current cursor
The symbol "" was ignored.
错误
ORA-06550:第1行第8列:
PLS-00103:在预期以下情况时遇到符号“”:
开始函数包pragma过程子类型类型使用
形式
当前光标
符号“”被忽略。
最终,这将是一个存储过程,但我还没有准备好该部分,因为我想验证到目前为止我所做的工作是否正常
蒂亚
coson您是如何运行此功能的?你在用什么工具?我认为问题在于您的工具/IDE试图将其编译为函数/过程。这段代码看起来还可以,如果您在SQL*Plus中以脚本的形式运行,可能不会出现任何问题。如果将其作为脚本运行,则应在查询后添加一个
dbmbs\u输出。将行(v\u名称)
放在后面以查看结果。没错。我试图使用VS2010接口来运行sql查询。和我一起工作的另一个开发人员让我可以访问PLSQLDeveloper,一切都很好;结束语句之后。