1

次の「ANDCAST(FLAGS AS BIGINT)&1 = 1」では、Oracle spに対してこれを作成する方法について、アプリがOracleユーザーも処理できるようにする必要があります。

ALTER PROCEDURE [OGEN].[DBD_GET_STOCK_SUMMARY]
@FACILITY_KEY VARCHAR(1000),
@START_DATE DATETIME,
@END_DATE DATETIME
AS
BEGIN
    SELECT COUNT(*) COUNT, OGEN.DATEONLY(CREATED_ON) [DATE]
    FROM OGEN.NDC_M_FORMULARY


    WHERE OGEN.DATEONLY(CREATED_ON) BETWEEN OGEN.DATEONLY(@START_DATE) AND OGEN.DATEONLY(@END_DATE)
    AND FACILITY_KEY IN (SELECT VALUE FROM OGEN.COMMA_TO_TABLE(@FACILITY_KEY)) 
    **AND CAST(FLAGS AS BIGINT) & 1 = 1**
    GROUP BY OGEN.DATEONLY(CREATED_ON) 
END 


GO
4

2 に答える 2

1

の代わりに、またはoracleで次のようにBIGINT使用できます ...NUMBERBINARY_INTEGER

CAST (FLAGS  AS NUMBER(19))
于 2012-07-05T19:34:12.440 に答える
0
select count(*) count, trunc(CREATED_ON) "DATE"
  from NDC_M_FORMULARY
 where trunc(CREATED_ON) BETWEEN trunc(:startDate) AND trunc(:endDate)
   and FACILITY_KEY IN (select cast (regexp_substr(:facilityKey,'[^,]+', 1, level) as number)
                          from dual
                       connect by regexp_substr(:facilityKey, '[^,]+', 1, level) is not null)
   and bitand(cast (flags as int), 1) = 1
 group by trunc(CREATED_ON)
于 2012-07-07T15:40:20.310 に答える