问题描述
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;
解决方法
您的DECLARE
似乎是从另一种SQL方言中获取语法,因为它不是有效的Oracle PL / SQL语法。
如果您使用的是PL / SQL,则类似(假设您的查询将仅返回一行):
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查询,则:
SELECT T_SYS_FROM,BUDAT
FROM dss.acn_ahdj_h
WHERE T_SYS_FROM = DATE '2020-09-22'
ORDER BY T_SYS_USER;