【问题标题】:Simple Select Gives me: PLS-00428: an INTO clause is expected [duplicate]简单选择给了我:PLS-00428:需要一个 INTO 子句[重复]
【发布时间】:2015-07-14 19:05:09
【问题描述】:

正如您在下面看到的,这是一个非常简单的选择语句。它不在存储过程中,我最近添加了变量 START_DT 和 END_DT 以便我可以更动态地使用它。我收到以下错误:

ORA-06550:第 8 行,第 1 列:PLS-00428:INTO 子句应在 这个 SELECT 语句 06550. 00000 - “第 %s 行,第 %s 列:\n%s”

我看了一遍,发现的大部分问题都与存储过程有关,所以如果这是重复的,我深表歉意。我对 PL/SQL 还很陌生,但我使用 SQL Server 已经 7 年多了,所以我想这是一个语法问题。下面是我的代码

DECLARE 
 START_DT DATE;
 END_DT DATE;
BEGIN

START_DT := TO_DATE('2015-06-01');
END_DT := TO_DATE('2015-06-30');

select TRUNC(txns.txn_gl_post_dt) DATED,
       acc.acc_nbr ACCT,
       ACC.ACC_POO_POOL POOL,
       txns.txn_amt CHGOFF_AMT
FROM   ACCOUNTS ACC
JOIN TXNS TXNS 
ON TXNS.TXN_AAD_ID = ACC.ACC_AAD_ID 
AND TXNS.TXN_TCD_CODE = 'ADV_CHGOFF'
WHERE ACC.ACC_STATUS_CD in ('CHGOFF','ACTIVE')
AND   TRUNC(TXNS.TXN_GL_POST_DT) BETWEEN START_DT AND END_DT

order by 1;

END;

我怀疑这是我处理变量的方式,有什么想法吗?

【问题讨论】:

  • PL/SQL 是 PL/SQL,无论您是使用它来定义存储过程还是使用匿名 PL/SQL 块。存储过程中有关此错误的每个答案都适用于您的问题。

标签: sql oracle plsql


【解决方案1】:

PL/SQL 块不能只运行查询。这些值需要被插入到某个地方——另一个表中、变量中、某种编码字符串中。

因此,你不能轻易做你想做的事。

【讨论】:

    猜你喜欢
    • 2021-12-10
    • 1970-01-01
    • 1970-01-01
    • 2019-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-05
    相关资源
    最近更新 更多