从存储过程返回多行

时间:2015-06-10 22:37:03

标签: sql oracle-sqldeveloper

如何使用SQL Developer BTW创建可以返回多行的存储过程。

现在,存储过程返回4个diff变量中的1行值(有4个cols)

我将如何制作它以便它可以返回超过1行,例如,如果我在我的日期查询它可以返回该日期的所有相关数据而不是仅返回1.

create or replace PROCEDURE P2
(
    ts IN TIMESTAMP,
    u_id OUT VARCHAR2,
    u_email OUT VARCHAR2,
    cmnt OUT VARCHAR2
)
AS
BEGIN
    SELECT U_ID , U_EML, C_TX INTO u_id, u_email, cmnt 
    FROM U_CM 
    WHERE U_CM_TS =  ts;
END;

ts是输入时间戳

如果我输入更多与之关联的多行的时间戳,我会收到错误吗?

我如何改变设计让我能够成功地做我想要的事情?我是新手,所以我不知道从哪里开始

1 个答案:

答案 0 :(得分:0)

使用引用游标:

@javax.persistence.AssociationOverride(name="student",joinColumns=@JoinColumn(name="c02"))

此外,尝试为列和表提供更详细的名称,以获得更易于维护的代码。例如,user_id,user_email而不是u_id,u_eml。什么是c_tx?我不知道。阅读有关表和列命名约定的内容。