Plsql PL/SQL存储过程编译错误

Plsql PL/SQL存储过程编译错误,plsql,Plsql,我尝试创建存储过程,但在执行以下存储过程时,出现编译错误: create or replace procedure "Employee" is begin select unique ID from prod p where p.value in('R44', 'R76', 'R79', 'R20', 'R02', 'RY1', 'R71', 'R38', 'R58', 'RM8', 'RW8', 'R74', 'R73', 'R99', 'R72', 'R19', 'R33'

我尝试创建存储过程,但在执行以下存储过程时,出现编译错误:

create or replace procedure "Employee"    
is    
begin 
select unique ID from prod p where p.value in('R44',
'R76',
'R79',
'R20',
'R02',
'RY1',
'R71',
'R38',
'R58',
'RM8',
'RW8',
'R74',
'R73',
'R99',
'R72',
'R19',
'R33',
'RN3',
'R34',
'RP8',
'R22',
'R75',
'R01',
'R67',
'R27',
'R28',
'R57',
'RC5',
'RW7',
'RZ9',
'R77',
'R07',
'RW6')  

end;    
/       

你的代码有很多错误
在您的示例中,您还缺少一个
在序列后面
如果您希望在屏幕上显示该序列的输出,您不能这样做
以下是一个工作示例,可能会给您一个提示:

DECLARE
    CURSOR cProd IS
            select unique(ID) Id from prod p where p.value in('R44','R76',
            'R79','R20','R02','RY1','R71','R38','R58','RM8','RW8','R74','R73','R99','R72','R19','R33','RN3',
            'R34','RP8','R22','R75','R01','R67','R27','R28','R57','RC5','RW7','RZ9','R77','R07','RW6');
    rProd cProd%ROWTYPE;
BEGIN
    OPEN cProd;
    FETCH cProd INTO rProd;
    CLOSE cProd;

    DBMS_OUTPUT.PUT_LINE(rProd.Id);
END;  
/

编辑:

rProd
中,上面的示例存储了查询中的所有输出行

这是行不通的。谁能帮帮我吗?这有点问题。首先,select语句末尾缺少分号。第二(也是最重要的)如果PL/SQL中没有into子句,就不能执行select。我可能会建议您阅读这里的文档:您想对查询结果做什么?仔细阅读CHRISS2292的评论;这些都是有道理的。但是,除非您100%确定结果只有一行,否则“选择输入”在这里不起作用。另外,不要将过程命名为“员工”
(使用双引号),除非您希望被强制使用完全相同的大写字母和双引号来引用它。只要叫它
employee
(无引号)就行了,这样事情就简单了。(虽然
employee
对于一个过程来说是一个奇怪的名字。它做什么呢?)顺便说一句,当发布给出编译错误的代码时,请包括错误详细信息。在这种情况下,它会在
'RW6')
后面指示一行,并显示消息
PL/SQL:ORA-00933:SQL命令未正确结束
(它本身应该告诉您需要知道的内容)。