Plsql 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

你好

我有一个PL-SQL查询,如下所示。我试图执行一个查询并将结果存储到一个变量中。到目前为止,我有一个有效的查询:

    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,一切都很好;结束语句之后。