把你的动态sql放到sqlplus中去执行看看有什么问题

解决方案 »

  1.   

    sql语句如下:
    SELECT ID_CARD,CITY_CODE,CONN_MODE,STATION_ID,RUN_CODE,DRAW_WAY,CHOOSE_WAY,DRAW_DATA,
    TO_CHAR(DRAW_TIME,'YYYY-MM-DD HH24:MI:SS'),MONEY_FROM,MONEY FROM CP_307_USER_DRAW_TAB WHERE USER_ID=:v1 AND SELL_TERM_ID=:v2把动态数据代码如下:
      strcpy(table_name,"CP_");
      strcat(table_name,table_prefix.arr);
      strcat(table_name,"_USER_DRAW_TAB"); 
      strcpy(sqlstmt.arr,"SELECT ID_CARD,CITY_CODE,CONN_MODE,STATION_ID,RUN_CODE,DRAW_WAY,CHOOSE_WAY,DRAW_DATA,TO_CHAR(DRAW_TIME,'YYYY-MM-DD  HH24:MI:SS'),MONEY_FROM,MONEY FROM ");
      strcat(sqlstmt.arr,table_name);   
      strcat(sqlstmt.arr," WHERE USER_ID=:v1 AND SELL_TERM_ID=:v2");
      sqlstmt.len = strlen(sqlstmt.arr);
      
      userlog("%s",sqlstmt.arr);
     
      EXEC SQL PREPARE S FROM :sqlstmt;
      EXEC SQL DECLARE C CURSOR FOR S;
      EXEC SQL OPEN C USING :t_phoneno,:t_sell_term_id;
      

  2.   

    把你的动态sql放到sqlplus中去执行看看有什么问题
      

  3.   

    把TO_CHAR(DRAW_TIME,'YYYY-MM-DD HH24:MI:SS')改为TO_CHAR(DRAW_TIME,'YYYY-MM-DD')试试!我怀疑proc*c把:MI:SS等当作了要绑定的变量了。