CREATE OR REPLACE PROCEDURE Clerk_HandheldDevices_GetList
(
SCANTIME_IA NVARCHAR2,
SCANTIME_IB NVARCHAR2,
sitename_IN NVARCHAR2,
devicetype_IN NVARCHAR2
)
AS
BEGIN
 
insert into pda_devicelist(devicemac,sitename,username) SELECT devicemac,sitename,username from pda_devicelist;
insert into pda_scandata_disp( SCANHAWB)  SELECT count(SCANHAWB)as SCANHAWB  FROM  pda_scandata_disp WHERE SCANTIME>=TO_DATE(SCANTIME_IA,'yyyy-mm-dd hh24:mi:ss') and SCANTIME<=TO_DATE(SCANTIME_IB,'yyyy-mm-dd hh24:mi:ss') and scanstation=sitename_IN and devicetype=devicetype_IN;
insert into pda_scandata_sign( SCANHAWB)  SELECT count(SCANHAWB)as SCANHAWC from pda_scandata_sign where scantime>=to_date(SCANTIME_IA,'yyyy-mm-dd hh24:mi:ss') and scantime<=to_date(SCANTIME_IB,'yyyy-mm-dd hh24:mi:ss') and scanstation=sitename_IN and devicetype=devicetype_IN;
insert into pda_scandata_sign ( SCANHAWB) SELECT count(SCANHAWB)as SCANHAWD from pda_scandata_sign where scantime>=to_date(SCANTIME_IA,'yyyy-mm-dd hh24:mi:ss') and scantime<=to_date(SCANTIME_IB,'yyyy-mm-dd hh24:mi:ss') and scanstation=sitename_IN and devicetype=devicetype_IN and SCANHAWB='10';
insert into pda_scandata_sign ( SCANHAWB) SELECT count(SCANHAWB)as SCANHAWE from pda_scandata_sign where scantime>=to_date(SCANTIME_IA,'yyyy-mm-dd hh24:mi:ss') and scantime<=to_date(SCANTIME_IB,'yyyy-mm-dd hh24:mi:ss') and scanstation=sitename_IN and devicetype=devicetype_IN and SCANHAWB='11';
 RETURN ;END Clerk_HandheldDevices_GetList;
这是我写的存储过程
我在程序里执行调用的时候报出
ORA-06550: 第 1 行, 第 46 列: 
PLS-00103: 出现符号 ":"在需要下列之一时:
 ( - + case mod new not null
   <an identifier> <a double-quoted delimited-identifier>
   <a bind variable> continue avg count current exists max min
   prior sql stddev sum variance execute forall merge time
   timestamp interval date
   <a string literal with character set specification>
   <a number> <a single-quoted SQL string> pipe
   <一个带有字符集说明的可带引号的字符串文字>
   <一个可带引号的 SQL 字符串> purge
符号 "(在 ":" 继续之前已插入。
ORA-06550: 第 1 行, 第 63 列: 
PLS-00103: 出现符号 ":"在需要下列之一时:
 ( - + case mod new not null
   <an identifier> <a double-quoted delimited-identifier>
   <a bind variable> continue avg count current exists max min
   prior sql stddev sum variance execute foral
ORA-06550: 第 1 行, 第 79 列: 
PLS-00103: 出现符号 ":"在需要下列之一时:
 ( - + case mod new not null
   <an identifier> <a double-quoted delimited-identifier>
   <a bind variable> continue avg count cur大侠们,我哪里错了?求指点。。存储oracledatesql

解决方案 »

  1.   

    代码写的让人好没耐心看完.....没看到错误的地方,但是1、传入传出参数里面应该加上 IN OUT 或者IN OUT
    2、后面的RETURN是干什么的?这个不是函数哦
      

  2.   

    .... 细看了一下,感觉这个过程没啥问题,结构没啥问题,你那一堆insert也没啥问题,调用的时候出的问题么?换个方式试一下呢
      

  3.   


    就是调用的时候程序报出PLS-00103: 出现符号 ":"在需要下列之一时:符号 "(在 ":" 继续之前已插入。
    不知道是那里有问题。           
     OracleParameter[] parameters = {
                        new OracleParameter(":sitename_IN", OracleType.NVarChar),
                        new OracleParameter(":devicetype_IN", OracleType.NVarChar),
                        new OracleParameter(":SCANTIME_IA", OracleType.NVarChar),
                        new OracleParameter(":SCANTIME_IB", OracleType.NVarChar) };
                parameters[0].Value = sitename_IN;
                parameters[1].Value = devicetype_IN;
                parameters[2].Value = SCANTIME_IA;
                parameters[3].Value = SCANTIME_IB;            return DbHelperOra.RunProcedure("Clerk_HandheldDevices_GetList", parameters, "Table");这是我写的!!