首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复declare语句?

如何修复declare语句?
EN

Stack Overflow用户
提问于 2020-10-02 17:18:02
回答 1查看 35关注 0票数 0

你能帮我修复一下下面的SQL语句吗,我的第一行有错误。谢谢

代码语言:javascript
复制
DECLARE @T_SYS_FROM SMALLINT,VARCHAR(8);
    SET @T_SYS_FROM = 20200922,DATE;
    SELECT 
      T_SYS_FROM, 
      N_D_AHDJ,
      N_FUND_ID,
      N_AHDJ,
      T_SYS_USER,
      BUDAT
    FROM 
      dss.acn_ahdj_h
    where
      T_SYS_FROM=@ T_SYS_FROM
    ORDER by
      T_SYS_USER;
EN

回答 1

Stack Overflow用户

发布于 2020-10-02 17:27:17

您的DECLARE看起来像是采用了另一种SQL方言中的语法,因为它不是有效的Oracle /SQL语法。

如果您使用的是PL/SQL,则如下所示(假设您的查询将只返回一行):

代码语言:javascript
复制
DECLARE 
  v_your_date DATE := DATE '2020-09-22';
  v_T_SYS_FROM dss.acn_ahdj_h.T_SYS_FROM%TYPE;
  v_N_D_AHDJ   dss.acn_ahdj_h.N_D_AHDJ%TYPE;
  v_N_FUND_ID  dss.acn_ahdj_h.N_FUND_ID%TYPE;
  v_N_AHDJ     dss.acn_ahdj_h.N_AHDJ%TYPE;
  v_T_SYS_USER dss.acn_ahdj_h.T_SYS_USER%TYPE;
  v_BUDAT      dss.acn_ahdj_h.BUDAT%TYPE;
BEGIN
  SELECT T_SYS_FROM, 
         N_D_AHDJ,
         N_FUND_ID,
         N_AHDJ,
         T_SYS_USER,
         BUDAT
  INTO   v_T_SYS_FROM, 
         v_N_D_AHDJ,
         v_N_FUND_ID,
         v_N_AHDJ,
         v_T_SYS_USER,
         v_BUDAT
  FROM   dss.acn_ahdj_h
  WHERE  T_SYS_FROM = v_your_date
  ORDER BY T_SYS_USER;
END;
/

如果需要SQL查询,则:

代码语言:javascript
复制
SELECT T_SYS_FROM, 
       N_D_AHDJ,
       N_FUND_ID,
       N_AHDJ,
       T_SYS_USER,
       BUDAT
FROM   dss.acn_ahdj_h
WHERE  T_SYS_FROM = DATE '2020-09-22'
ORDER BY T_SYS_USER;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64169088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档