Oracle SQL将列粘贴到变量中

时间:2020-06-16 11:28:01

标签: oracle plsql oracle-sqldeveloper

预先,我只是从Oracle SQL开始,所以请多多包涵。 因此,我想将表中的列粘贴到变量中,问题是我必须通过在每个条目之后添加“,”来调整变量。 以下是我为实现这一目标所做的尝试。

DECLARE
    email clob;
    counter int;
    set counter := 0;

BEGIN
    WHILE counter < 500
    LOOP
        SELECT mail INTO email FROM spam 
        email += ","
        DBMS_OUTPUT.PUT_LINE( 'Email : ' || email )
        DBMS_OUTPUT.PUT_LINE( 'Counter : ' || counter )
        SET @counter  = @counter  + 1
    END LOOP   
END

1 个答案:

答案 0 :(得分:1)

嗯,您似乎想连接电子邮件地址。是这样吗?如果是,则:

# Desired result
# print(df)
         Date  Daycount
0  2020-05-01       0.0
1  2020-06-03      32.0
2  2020-07-01      28.0
3  2021-07-02     361.0
4  2022-08-03     391.0
  • 使用DECLARE email VARCHAR2(32000); BEGIN FOR cur_r IN (SELECT mail FROM spam WHERE ROWNUM < 500 ) LOOP email := email ||','|| cur_r.mail; DBMS_OUTPUT.PUT_LINE(cur_r.mail); END LOOP; email := RTRIM(email, ','); END;
  • 代替计数器
  • 您真的不能期望显示整个字符串(即最终的ROWNUM值),因为它的长度限制为255个字符

或者,如果您不希望结果字符串超过4000个字符,则可以使用email

LISTAGG