Pessoal, Obrigado pela ajuda...
O problema está na maneira em como eu adicionei o campo ... Eu adicionei dessa maneira : tb_log_shelf_life.arr[tb_log_shelf_life.len]='\0'; E ai compilou .... 2012/4/24 Josinei <josinei_barb...@yahoo.com.br> > ** > > > Leonardo, além do que o Chiappa disse, analise se você não possui nesse > programa, referências à objetos remotos (via DB Link). > > Digo isso, porque já vi esse problema e depois de muita análise e teste, > descobrimos que era por causa de alguma incompatibilidade do compilador > Pro*C do Linux com objetos remotos (acessados via DBLink) criado em bancos > de dados Oracle 10g (com a versão 8i não acontecia). > > No nosso caso, tínhamos dois ambientes: um Linux Red Hat com Oracle 10g e > um Solaris 8 com Oracle 8i. > No Solaris 8 compilava sem problemas. > A incompatibilidade era só no Linux. > > O nosso programa, acessava uma tabela em um banco de dados remoto (via > DBLink). > > A SOLUÇÃO foi criarmos uma view apontando para a tabela remota e um > sinônimo (de mesmo nome) para a view. O programa passou a referenciar esse > sinônimo e o problema não ocorreu mais. > Após isso, adotamos essa prática como padrão em acessos remotos. > > Atenciosamente, > Josinei Barbosa > > --- Em oracle_br@yahoogrupos.com.br, "J. Laurindo Chiappa" <jlchiappa@...> > escreveu > > > > > Colega, esse programinha é um tantinho longo, então nos dois minutos no > máximo que eu sempre dedico a qquer pergunta não consegui destrinchá-lo na > íntegra (e nem é o objetivo aqui), mas o que eu posso dizer é que na > linguagem C (pro*c nada mais é do que um pre-processador, um carinha que > enfia umas chamadas de libs específicas antes de gerar um fonte C) > normalmente segmentation fault, invalid pointers e erros do tipo muitas > vezes decorrem de algum array/variável em que vc está tentando colocar mais > conteúdo do que o declarado - um byte que seja, se vc tem uma área de x > caracteres e tentar colocar lá x+1 tipicamente ou o seu programa abenda... > > Assim, minha primeira recomendação é que vc CONFIRA detalhadamente cada > posição E o tamanho total das tuas áreas de armazenamento, como a > format_artcom e as r_key1 e r_key2 .... > > > > []s > > > > Chiappa > > > > --- Em oracle_br@yahoogrupos.com.br, Leonardo Silva <leonardo.drums@> > escreveu > > > > > > > Bom dia Pessoal, > > > > > > Gostaria de saber se alguém no grupo conhece pro-c, nunca havia > trabalhado > > > com esse tipo de programação antes porém agora necessito de fazer > algumas > > > alterações em alguns que temos aqui, efetuei as alterações necessárias > > > porém na hora de executar o programa ele me exibe um erro = > Segmentation > > > fault . > > > > > > Esse programa gera um arquivo em um determinado diretório, e eu > adicionei > > > mais uma coluna no mesmo ... > > > > > > O programa está sendo executado em uma base 10G, versão do banco = > > > 10.2.0.4.0 .. > > > > > > Se alguém puder me dar alguma dica será muito bem vinda.. abaixo o > programa > > > .. > > > > > > char *ident = "@(#) ct_artcom.pc V1.2 (03/2008)"; > > > char *copyright = "@(#) Copyright Makro International AG, > Aspermontstrasse > > > 24, 7006 CHUR, Switzerland"; > > > /* Compilation directive that defines if debug information, for */ > > > /* version v.2.27, will be redirect to stderr. */ > > > /*#define DEBUG227 1 */ > > > #include <stdio.h> > > > #include <stdlib.h> > > > #include <math.h> > > > #ifdef DEBUG227 > > > #include <time.h> > > > #endif > > > /* #define DEBUG */ > > > #include "makro.h" > > > #define SQLCA_INIT 1 > > > EXEC SQL INCLUDE SQLCA.H; > > > #define ORACA_INIT 1 > > > EXEC SQL INCLUDE ORACA.H; > > > EXEC SQL BEGIN DECLARE SECTION; > > > VARCHAR oracleid[30]; > > > int param_store_no; /* get store param */ > > > int save; > > > /* SHADOW data */ > > > VARCHAR r_key1[100][82], > > > r_key2[100][82]; > > > int art_no; > > > int store_no; > > > int st_no; > > > /* ARTICLE data */ > > > VARCHAR descr[34]; > > > /* ST_ARTICLE data */ > > > /* TB_SEQ_NO NOT NULL NUMBER(6) */ > > > /* TB_ACTION NOT NULL VARCHAR2(1) */ > > > int tb_cnart ; /* NOT NULL NUMBER(7) */ > > > VARCHAR tb_deart[34] ; /* VARCHAR2(33) */ > > > int tb_cngrp ; /* NUMBER(3) */ > > > int tb_cnsubgrp ; /* NUMBER(2) */ > > > int tb_cncom ; /* NUMBER(3) */ > > > int tb_qtunimak ; /* NUMBER(4) */ > > > int tb_qtunifor ; /* NUMBER(4) */ > > > VARCHAR tb_catipemb[3] ; /* VARCHAR2(2) */ > > > VARCHAR tb_careffor[15] ; /* VARCHAR2(11) */ > > > int tb_cnartpri ; /* NUMBER(7) */ > > > int tb_qtminped ; /* NUMBER(5) */ > > > int tb_capes ; /* NUMBER(1) */ > > > int tb_bosug ; /* SEG/TER/QUA/QUI/SEX > > > NUMBER(5) */ > > > VARCHAR tb_boemidsp[2] ; /* VARCHAR2(1) */ > > > VARCHAR tb_cafrqsug[2] ; /* VARCHAR2(1) */ > > > VARCHAR tb_casaz [12] ; /* VARCHAR2(12) */ > > > VARCHAR tb_catipart[2] ; /* VARCHAR2(1) */ > > > int tb_cntipimp ; /* NUMBER(1) */ > > > double tb_vcvas ; /* NUMBER(11,2) */ > > > VARCHAR tb_cactgart[2] ; /* VARCHAR2(1) */ > > > VARCHAR tb_boaro[2] ; /* VARCHAR2(1) */ > > > int tb_cnipi ; /* NUMBER(1) */ > > > double tb_vcipi ; /* NUMBER(11,2) */ > > > VARCHAR tb_boembins[2] ; /* VARCHAR2(1) */ > > > int tb_cnfor ; /* NUMBER(5) */ > > > int tb_cnfilfor ; /* NUMBER(4) */ > > > int tb_cntipicm ; /* NUMBER(1) */ > > > int tb_cnalicom ; /* NUMBER(1) */ > > > int tb_cnaliven ; /* NUMBER(1) */ > > > double tb_pctaxiva ; /* NUMBER(5,2) */ > > > double tb_pcbasred ; /* NUMBER(5,2) */ > > > int tb_cnblq ; /* NUMBER(1) */ > > > VARCHAR tb_caclsart [2] ; /* VARCHAR2(1) */ > > > double tb_pcmarobj_old ; /* NUMBER(5,2) */ > > > double tb_pcmarobj ; /* NUMBER(7,2) */ > > > VARCHAR tb_catippre[3] ; /* VARCHAR2(2) */ > > > VARCHAR tb_boartprm[2] ; /* VARCHAR2(1) */ > > > int tb_qdprzent ; /* NUMBER(2) */ > > > int tb_caresrep ; /* VARCHAR2(1) */ > > > double tb_vccusrep ; /* NUMBER(11,2) */ > > > double tb_vcprvrep ; /* NUMBER(11,2) */ > > > double tb_vccusult ; /* NUMBER(11,2) */ > > > double tb_vccfiori ; /* NUMBER(11,2) */ > > > double tb_vcprvatu ; /* NUMBER(11,2) */ > > > double tb_vccrdicm ; /* NUMBER(11,2) */ > > > double tb_vccuslsi ; /* NUMBER(11,2) */ > > > VARCHAR tb_catiprep[2] ; /* VARCHAR2(1) */ > > > int tb_mmail_no ; /* NUMBER(4) */ > > > int tb_bofasobs ; /* NUMBER(1) */ > > > VARCHAR tb_dtultrec[11] ; /* DATE */ > > > double tb_suggested_sell_pr ; /* NUMBER(10,2) */ > > > int tb_min_pr_value_cd ; /* NUMBER(1) */ > > > double tb_min_pr_value_amnt ; /* NUMBER(11,4) */ > > > int tb_min_shop_value_cd ; /* NUMBER(1) */ > > > double tb_min_shop_value_amnt ; /* NUMBER(11,4) */ > > > /* campos MBS */ > > > VARCHAR tb_mbs_buyer_uid[7] ; /* VARCHAR2(6) */ > > > int tb_mbs_status ; /* NUMBER(1) */ > > > int tb_mbs_smooth_fact ; /* NUMBER(2) */ > > > int tb_mbs_aro_article ; /* NUMBER(1) */ > > > VARCHAR tb_mbs_orig[5] ; /* VARCHAR2(4) */ > > > double tb_mbs_mut_perc ; /* NUMBER(10,3)*/ > > > int tb_mbs_cd_meat_manaus ; /* NUMBER(1) */ > > > int tb_mbs_brand_cd ; /* NUMBER(1) */ > > > int tb_mbs_cust_grp_no ; /* NUMBER(1) */ > > > int tb_mbs_obsolete_exception ; /* NUMBER(1) */ > > > int tb_mbs_oper_type ; /* NUMBER(1) */ > > > int tb_mbs_obs_excp_days ; /* NUMBER(3) */ > > > int tb_mbs_pay_per ; /* NUMBER(3) */ > > > int tb_mbs_reorder_way ; /* NUMBER(1) */ > > > int tb_mbs_ord_prop_inf_cd ; /* NUMBER(1) */ > > > int tb_mbs_sell_price_resp ; /* NUMBER(1) */ > > > int tb_mbs_pis_finsocial_cd ; /* NUMBER(2) */ > > > VARCHAR tb_mbs_block_cd[2] ; /* VARCHAR2(1) */ > > > int tb_mbs_ord_enter_price ; /* NUMBER(1) */ > > > int tb_mbs_ord_limit_cd ; /* NUMBER(1) */ > > > double tb_mbs_ord_limit_amnt ; /* NUMBER(11,2)*/ > > > double tb_mbs_lgr_pis_credit ; /* NUMBER(11,4)*/ > > > double tb_mbs_lgr_finsocial_credit ; /* NUMBER(11,4)*/ > > > int tb_mbs_weight_std_art_cd ; /* NUMBER(1) */ > > > double tb_mbs_weight_std_art ; /* NUMBER(10,3)*/ > > > int tb_mbs_weight_railcd ; /* NUMBER(1) */ > > > double tb_mbs_price_factor ; /* NUMBER(6,3) */ > > > int tb_mbs_pricing_ind ; /* NUMBER(1) */ > > > VARCHAR tb_mbs_start_date_pricing[11] ; /* DATE */ > > > double tb_tlv_max_disc_amnt ; /* NUMBER(10,2)*/ > > > double tb_tlv_limit_day_qty ; /* NUMBER(11,3)*/ > > > VARCHAR tb_tlv_limit_date[11] ; /* DATE */ > > > int tb_tlv_block_cd ; /* NUMBER(1) */ > > > int tb_mbs_pay_type_cd ; /* NUMBER(2) */ /* > > > v.1.2 */ > > > VARCHAR tb_mbs_reg_no[11] ; /* VARCHAR2(11)*/ /* > > > v.1.3 */ > > > VARCHAR tb_log_shelf_life[20] ; /* VARCHAR2(20)*/ /* > > > V.1.5 */ > > > /* ---- */ > > > int ord_prop_inf_cd; > > > VARCHAR block_cd[2]; > > > int obsolete_phase; > > > VARCHAR last_del_date[10]; > > > double suggested_sell_pr; > > > int min_pr_value_cd; > > > double min_pr_value_amnt; > > > int min_shop_value_cd; > > > double min_shop_value_amnt; > > > EXEC SQL END DECLARE SECTION; > > > FILE *artcom; > > > char *format_artcom = > > > "%7d" > > > /*tb_cnart */ > > > "%-33.33s" > > > /*tb_deart */ > > > "%1d" > > > /*tb_cnblq */ > > > "%1d" > > > /*tb_bofasobs */ > > > "%-8.8s" > > > /*tb_dtultrec */ > > > "%10.2f" > > > /*tb_suggested_sell_pr */ > > > "%1d" > > > /*tb_min_pr_value_cd */ > > > "%11.4f" > > > /*tb_min_pr_value_amnt */ > > > "%1d" > > > /*tb_min_shop_value_cd */ > > > "%11.4f" > > > /*tb_min_shop_value_amnt */ > > > "%3d" /*tb_cngrp > > > NUMBER(3) */ > > > "%3d" /*tb_cnsubgrp > > > NUMBER(2) */ > > > "%3d" /*tb_cncom > > > NUMBER(3) */ > > > "%4d" /*tb_qtunimak > > > NUMBER(4) */ > > > "%4d" /*tb_qtunifor > > > NUMBER(4) */ > > > "%-2.2s" /*tb_catipemb[3] > > > VARCHAR2(2) */ > > > "%-14.14s" /*tb_careffor[15] > > > VARCHAR2(11) */ > > > "%7d" /*tb_cnartpri > > > NUMBER(7) */ > > > "%5d" /*tb_qtminped > > > NUMBER(5) */ > > > "%1d" /*tb_capes > > > NUMBER(1) */ > > > "%05d" /*tb_bosug SEG/TER/QUA/QUI/SEX > > > NUMBER(5)*/ > > > "%1.1s" /*tb_boemidsp[2] > > > VARCHAR2(1) */ > > > "%1.1s" /*tb_cafrqsug[2] > > > VARCHAR2(1) */ > > > "%12.12s" /*tb_casaz [12] > > > VARCHAR2(12) */ > > > "%1.1s" /*tb_catipart[2] > > > VARCHAR2(1) */ > > > "%1d" /*tb_cntipimp > > > NUMBER(1) */ > > > "%11.2f" /*tb_vcvas > > > NUMBER(11,2) */ > > > "%1.1s" /*tb_cactgart[2] > > > VARCHAR2(1) */ > > > "%1.1s" /*tb_boaro[2] > > > VARCHAR2(1) */ > > > "%1d" /*tb_cnipi > > > NUMBER(1) */ > > > "%11.2f" /*tb_vcipi > > > NUMBER(11,2) */ > > > "%1.1s" /*tb_boembins[2] > > > VARCHAR2(1) */ > > > "%5d" /*tb_cnfor > > > NUMBER(5) */ > > > "%4d" /*tb_cnfilfor > > > NUMBER(4) */ > > > "%1d" /*tb_cntipicm > > > NUMBER(1) */ > > > "%1d" /*tb_cnalicom > > > NUMBER(1) */ > > > "%1d" /*tb_cnaliven > > > NUMBER(1) */ > > > "%7.2f" /*tb_pctaxiva > > > NUMBER(5,2) */ > > > "%7.2f" /*tb_pcbasred > > > NUMBER(5,2) */ > > > "%1.1s" /*tb_caclsart [2] > > > VARCHAR2(1) */ > > > "%5.2f" /*tb_pcmarobj_old > > > NUMBER(5,2) */ > > > "%-2.2s" /*tb_catippre[3] > > > VARCHAR2(2) */ > > > "%1.1s" /*tb_boartprm[2] > > > VARCHAR2(1) */ > > > "%2d" /*tb_qdprzent > > > NUMBER(2) */ > > > "%1d" /*tb_caresrep NUMBER (VARCHAR2 na > > > loja) */ > > > "%11.2f" /*tb_vccusrep > > > NUMBER(11,2) */ > > > "%11.2f" /*tb_vcprvrep > > > NUMBER(11,2) */ > > > "%11.2f" /*tb_vccusult > > > NUMBER(11,2) */ > > > "%11.2f" /*tb_vccfiori > > > NUMBER(11,2) */ > > > "%11.2f" /*tb_vcprvatu > > > NUMBER(11,2) */ > > > "%11.2f" /*tb_vccrdicm > > > NUMBER(11,2) */ > > > "%11.2f" /*tb_vccuslsi > > > NUMBER(11,2) */ > > > "%1.1s" /*tb_catiprep[2] > > > VARCHAR2(1) */ > > > "%4d" /*tb_mmail_no > > > NUMBER(4) */ > > > "%-6.6s" /*tb_mbs_buyer_uid[7] > > > VARCHAR2(6) */ > > > "%1d" /*tb_mbs_status > > > NUMBER(1) */ > > > "%2d" /*tb_mbs_smooth_fact > > > NUMBER(2) */ > > > "%1d" /*tb_mbs_aro_article > > > NUMBER(1) */ > > > "%-4.4s" /*tb_mbs_orig[5] > > > VARCHAR2(4) */ > > > "%10.3f" /*tb_mbs_mut_perc > > > NUMBER(10,3) */ > > > "%1d" /*tb_mbs_cd_meat_manaus > > > NUMBER(1) */ > > > "%1d" /*tb_mbs_brand_cd > > > NUMBER(1) */ > > > "%1d" /*tb_mbs_cust_grp_no > > > NUMBER(1) */ > > > "%1d" /*tb_mbs_obsolete_exception > > > NUMBER(1) */ > > > "%1d" /*tb_mbs_oper_type > > > NUMBER(1) */ > > > "%3d" /*tb_mbs_obs_excp_days > > > NUMBER(3) */ > > > "%3d" /*tb_mbs_pay_per > > > NUMBER(3) */ > > > "%1d" /*tb_mbs_reorder_way > > > NUMBER(1) */ > > > "%1d" /*tb_mbs_ord_prop_inf_cd > > > NUMBER(1) */ > > > "%1d" /*tb_mbs_sell_price_resp > > > NUMBER(1) */ > > > "%2d" /*tb_mbs_pis_finsocial_cd > > > NUMBER(2) */ > > > "%-1.1s" /*tb_mbs_block_cd[2] > > > VARCHAR2(1) */ > > > "%1d" /*tb_mbs_ord_enter_price > > > NUMBER(1) */ > > > "%1d" /*tb_mbs_ord_limit_cd > > > NUMBER(1) */ > > > "%11.2f" /*tb_mbs_ord_limit_amnt > > > NUMBER(11,2) */ > > > "%11.4f" /*tb_mbs_lgr_pis_credit > > > NUMBER(11,4) */ > > > "%11.4f" /*tb_mbs_lgr_finsocial_credit > > > NUMBER(11,4) */ > > > "%1d" /*tb_mbs_weight_std_art_cd > > > NUMBER(1) */ > > > "%10.3f" /*tb_mbs_weight_std_art > > > NUMBER(10,3) */ > > > "%1d" /*tb_mbs_weight_railcd > > > NUMBER(1) */ > > > "%11.3f" /*tb_mbs_price_factor > > > NUMBER(6,3) */ > > > "%1d" /*tb_mbs_princig_ind > > > NUMBER(1) */ > > > "%-8.8s" > > > /*tb_mbs_start_date_pricing */ > > > "%10.2f" /*tb_tlv_max_disc_amnt > > > NUMBER(10,2) */ > > > "%11.3f" /*tb_tlv_limit_day_qty > > > NUMBER(11,3) */ > > > "%-8.8s" /*tb_tlv_limit_date > > > DATE */ > > > "%1d" /*tb_tlv_block_cd > > > NUMBER(1) */ > > > "%2d" /*tb_mbs_pay_type_cd NUMBER(2) > > > v.1.2 */ > > > "%-11.11s" /*tb_mbs_reg_no VARCHAR2(1) > > > v.1.3 */ > > > "%7.2f" /*tb_pcmarobj > > > NUMBER(5,2) */ > > > "%20.20S" /*tb_log_shelf_life VARCHAR2(20) > > > V.1.5 */ > > > "\n"; > > > EXEC SQL WHENEVER SQLERROR GOTO error; > > > /*----------------------------------------------------------*/ > > > /* main() */ > > > /*----------------------------------------------------------*/ > > > main(argc, argv) > > > int argc; > > > char *argv[]; > > > { > > > int i, eof, st; > > > #ifdef DEBUG227 > > > time_t start_t; > > > time_t finish_t; > > > double elapsed; > > > time( &start_t ); > > > #endif > > > chk_args(2, argc, argv, 0, " [store_no]"); > > > EXEC SQL CONNECT :oracleid; > > > param_store_no = atoi(argv[3]); > > > chk_store(param_store_no); > > > eof = read_sh_rec_article(); > > > while (!eof) { > > > if (store_no == param_store_no) { > > > make_sh_vk_sta_all_mut(); > > > } > > > eof = read_sh_rec_article(); > > > } > > > create_file_artcom(); > > > fprintf(artcom, "*%8d*\n", rundate); > > > fclose(artcom); > > > #ifdef DEBUG227 > > > time( &finish_t ); > > > elapsed = difftime( finish_t, start_t ); > > > fprintf( stderr, "Elapsed: %10.0f seconds\n", elapsed ); > > > #endif > > > my_exit(OK); > > > error: > > > ora_error("main"); > > > my_exit(ORAERROR); > > > } /* main() */ > > > /*----------------------------------------------------------*/ > > > /* create_file_artcom() */ > > > /*----------------------------------------------------------*/ > > > create_file_artcom() > > > { > > > int eof; > > > char file[100]; > > > sprintf(file, "artcom%02d", param_store_no); > > > artcom = makro_open("MS_SEND", file, "w"); > > > eof = read_sh_rec_vk_sta_all_mut(); > > > while (!eof) { > > > if (store_no == param_store_no) { > > > read_article(); > > > load_file_artcom(); > > > } > > > eof = read_sh_rec_vk_sta_all_mut(); > > > } /* while (!eof) */ > > > } /* create_file_artcom() */ > > > /*----------------------------------------------------------*/ > > > /* make_sh_vk_sta_all_mut() */ > > > /*----------------------------------------------------------*/ > > > make_sh_vk_sta_all_mut() > > > { > > > EXEC SQL SELECT NVL(COUNT(*),0) > > > INTO save > > > FROM ST_ARTICLE STA > > > WHERE STA.ART_NO = :art_no > > > AND STA.STORE_NO = :param_store_no; > > > if (save != 0) { > > > EXEC SQL EXECUTE > > > BEGIN > > > PRC$INS_SHADOW('VK_STA_ALL_MUT', TO_CHAR(:param_store_no)||','|| > > > TO_CHAR(:art_no) ); > > > END; > > > END-EXEC; > > > } > > > return; > > > error: > > > ora_error("make_sh_vk_sta_all_mut"); > > > my_exit(ORAERROR); > > > } /* make_sh_vk_sta_all_mut() */ > > > /*----------------------------------------------------------*/ > > > /* read_sh_rec_article() */ > > > /*----------------------------------------------------------*/ > > > int > > > read_sh_rec_article() > > > { > > > static int first_time= 1, till_now, this_time, where; > > > if (first_time) { > > > first_time = 0; > > > till_now = 0; > > > this_time = 100; > > > where = 100; > > > EXEC SQL DECLARE C_SHADOW1 CURSOR FOR > > > SELECT KEY||','||:param_store_no > > > FROM SHADOW > > > WHERE TABLENAME = 'ARTICLE' > > > ORDER BY KEY; > > > EXEC SQL OPEN C_SHADOW1; > > > } > > > if (this_time == where) { > > > if (this_time < 100) /* Last FETCH reached EOR */ > > > goto end_of_table; > > > EXEC SQL FETCH C_SHADOW1 > > > INTO :r_key1; > > > this_time = sqlca.sqlerrd[2] - till_now; > > > till_now += this_time; > > > where = 0; > > > if (this_time == 0) /* This FETCH was reading nothing */ > > > goto end_of_table; > > > } > > > r_key1[ where ].arr[ r_key1[ where ].len ] = '\0'; > > > art_no = store_no = 0; > > > sscanf((char*)r_key1[ where ].arr, "%d,%d", &art_no,&store_no ); > > > #ifdef DEBUG > > > fprintf(stderr, "read_sh_rec_article: art_no=%7d store_no=%d\n", > > > art_no,store_no); > > > #endif > > > where++; > > > return(OK); > > > end_of_table: > > > EXEC SQL CLOSE C_SHADOW1; > > > first_time = 1; /* makes function re-entrant */ > > > return(EOR); > > > error: > > > ora_error("read_sh_rec_article()"); > > > my_exit(ORAERROR); > > > } /* read_sh_rec_article() */ > > > /*----------------------------------------------------------*/ > > > /* read_sh_rec_vk_sta_all_mut() */ > > > /*----------------------------------------------------------*/ > > > int > > > read_sh_rec_vk_sta_all_mut() > > > { > > > static int first_time= 1, till_now, this_time, where; > > > if (first_time) { > > > first_time = 0; > > > till_now = 0; > > > this_time = 100; > > > where = 100; > > > EXEC SQL DECLARE C_SHADOW2 CURSOR FOR > > > SELECT KEY > > > FROM SHADOW > > > WHERE TABLENAME = 'VK_STA_ALL_MUT' > > > ORDER BY KEY; > > > EXEC SQL OPEN C_SHADOW2; > > > } > > > if (this_time == where) { > > > if (this_time < 100) /* Last FETCH reached EOR */ > > > goto end_of_table; > > > EXEC SQL FETCH C_SHADOW2 > > > INTO :r_key2; > > > this_time = sqlca.sqlerrd[2] - till_now; > > > till_now += this_time; > > > where = 0; > > > if (this_time == 0) /* This FETCH was reading nothing */ > > > goto end_of_table; > > > } > > > r_key2[ where ].arr[ r_key2[ where ].len ] = '\0'; > > > art_no = store_no = 0; > > > sscanf((char*)r_key2[ where ].arr, "%d,%d", &store_no,&art_no ); > > > #ifdef DEBUG > > > fprintf(stderr, "read_sh_rec_vk_sta_all_mut: store_no=%3d > art_no=%7d\n", > > > store_no,art_no); > > > #endif > > > where++; > > > return(OK); > > > end_of_table: > > > EXEC SQL CLOSE C_SHADOW2; > > > first_time = 1; /* makes function re-entrant */ > > > return(EOR); > > > error: > > > ora_error("read_sh_rec_vk_sta_all_mut()"); > > > my_exit(ORAERROR); > > > } /* read_sh_rec_vk_sta_all_mut() */ > > > > > > /*----------------------------------------------------------*/ > > > /* read_article() */ > > > /*----------------------------------------------------------*/ > > > read_article() > > > { > > > EXEC SQL > > > SELECT CNART TB_CNART > > > ,DEART TB_DEART > > > ,CNGRP TB_CNGRP > > > ,CNSUBGRP TB_CNSUBGRP > > > ,CNCOM TB_CNCOM > > > ,QTUNIMAK TB_QTUNIMAK > > > ,QTUNIFOR TB_QTUNIFOR > > > ,CATIPEMB TB_CATIPEMB > > > ,CAREFFOR TB_CAREFFOR > > > ,CNARTPRI TB_CNARTPRI > > > ,QTMINPED TB_QTMINPED > > > ,CAPES TB_CAPES > > > ,BOSUG TB_BOSUG > > > ,BOEMIDSP TB_BOEMIDSP > > > ,CAFRQSUG TB_CAFRQSUG > > > ,SEASON_FLAG TB_CASAZ > > > ,CATIPART TB_CATIPART > > > ,CNTIPIMP TB_CNTIPIMP > > > ,VCVAS TB_VCVAS > > > ,CACTGART TB_CACTGART > > > ,BOARO TB_BOARO > > > ,IPI_CD TB_CNIPI > > > ,IPI_VALUE TB_VCIPI > > > ,BOEMBINS TB_BOEMBINS > > > ,CNFOR TB_CNFOR > > > ,CNFILFOR TB_CNFILFOR > > > ,ICMS_TYPE TB_CNTIPICM > > > ,CNALICOM TB_CNALICOM > > > ,CNALIVEN TB_CNALIVEN > > > ,PCTAXIVA TB_PCTAXIVA > > > ,PCBASRED TB_PCBASRED > > > ,CNBLQ TB_CNBLQ > > > ,CACLS TB_CACLSART > > > ,0 TB_PCMAROBJ_OLD > > > ,CATIPPRE TB_CATIPPRE > > > ,BOARTPRM TB_BOARTPRM > > > ,QDPRZENT TB_QDPRZENT > > > ,CARESREP TB_CARESREP > > > ,VCCUSREP TB_VCCUSREP > > > ,VCPRVREP TB_VCPRVREP > > > ,VCCUSULT TB_VCCUSULT > > > ,VCCFIORI TB_VCCFIORI > > > ,VCPRVATU TB_VCPRVATU > > > ,VCCRDICM TB_VCCRDICM > > > ,VCCUSLSI TB_VCCUSLSI > > > ,CATIPREP TB_CATIPREP > > > ,MMAIL_NO TB_MMAIL_NO > > > ,CNFASOBS TB_BOFASOBS > > > ,TO_CHAR(DTULTREC,'YYYYMMDD') TB_DTULTREC > > > ,SUGGESTED_SELL_PR TB_SUGGESTED_SE > > > ,MIN_PR_VALUE_CD TB_MIN_PR_VALUE > > > ,MIN_PR_VALUE_AMNT TB_MIN_PR_VALUE > > > ,MIN_SHOP_VALUE_CD TB_MIN_SHOP_VAL > > > ,MIN_SHOP_VALUE_AMNT TB_MIN_SHOP_VAL > > > ,MBS_BUYER_UID > > > ,MBS_STATUS > > > ,MBS_SMOOTH_FACT > > > ,MBS_ARO_ARTICLE > > > ,MBS_ORIG > > > ,MBS_MUT_PERC > > > ,MBS_CD_MEAT_MANAUS > > > ,MBS_BRAND_CD > > > ,MBS_CUST_GRP_NO > > > ,MBS_OBSOLETE_EXCEPTION > > > ,MBS_OPER_TYPE > > > ,MBS_OBS_EXCP_DAYS > > > ,MBS_PAY_PER > > > ,MBS_REORDER_WAY > > > ,MBS_ORD_PROP_INF_CD > > > ,MBS_SELL_PRICE_RESP > > > ,MBS_PIS_FINSOCIAL_CD > > > ,MBS_BLOCK_CD > > > ,MBS_ORD_ENTER_PRICE > > > ,MBS_ORD_LIMIT_CD > > > ,MBS_ORD_LIMIT_AMNT > > > ,MBS_LGR_PIS_CREDIT > > > ,MBS_LGR_FINSOCIAL_CREDIT > > > ,MBS_WEIGHT_STD_ART_CD > > > ,MBS_WEIGHT_STD_ART > > > ,MBS_WEIGHT_RAILCD > > > ,MBS_PRICE_FACTOR > > > ,MBS_PRICING_IND > > > ,TO_CHAR(MBS_START_DATE_PRICING,'YYYYMMDD') > > > TB_MBS_START_DATE_PRICING > > > ,TLV_MAX_DISC_AMNT > > > ,TLV_LIMIT_DAY_QTY > > > ,TO_CHAR(TLV_LIMIT_DATE,'YYYYMMDD') TLV_LIMIT_DATE > > > ,TLV_BLOCK_CD > > > ,MBS_PAY_TYPE_CD /* > > > v.1.2 */ > > > ,MBS_REG_NO MBS_REG_NO /* v.1.3 */ > > > ,PCMAROBJ TB_PCMAROBJ > > > ,LOG_SHELF_LIFE TB_LOG_SHELF_LIFE /* > > > v.1.5*/ > > > INTO :tb_cnart > > > ,:tb_deart > > > ,:tb_cngrp > > > ,:tb_cnsubgrp > > > ,:tb_cncom > > > ,:tb_qtunimak > > > ,:tb_qtunifor > > > ,:tb_catipemb > > > ,:tb_careffor > > > ,:tb_cnartpri > > > ,:tb_qtminped > > > ,:tb_capes > > > ,:tb_bosug > > > ,:tb_boemidsp > > > ,:tb_cafrqsug > > > ,:tb_casaz > > > ,:tb_catipart > > > ,:tb_cntipimp > > > ,:tb_vcvas > > > ,:tb_cactgart > > > ,:tb_boaro > > > ,:tb_cnipi > > > ,:tb_vcipi > > > ,:tb_boembins > > > ,:tb_cnfor > > > ,:tb_cnfilfor > > > ,:tb_cntipicm > > > ,:tb_cnalicom > > > ,:tb_cnaliven > > > ,:tb_pctaxiva > > > ,:tb_pcbasred > > > ,:tb_cnblq > > > ,:tb_caclsart > > > ,:tb_pcmarobj_old > > > ,:tb_catippre > > > ,:tb_boartprm > > > ,:tb_qdprzent > > > ,:tb_caresrep > > > ,:tb_vccusrep > > > ,:tb_vcprvrep > > > ,:tb_vccusult > > > ,:tb_vccfiori > > > ,:tb_vcprvatu > > > ,:tb_vccrdicm > > > ,:tb_vccuslsi > > > ,:tb_catiprep > > > ,:tb_mmail_no > > > ,:tb_bofasobs > > > ,:tb_dtultrec > > > ,:tb_suggested_sell_pr > > > ,:tb_min_pr_value_cd > > > ,:tb_min_pr_value_amnt > > > ,:tb_min_shop_value_cd > > > ,:tb_min_shop_value_amnt > > > ,:tb_mbs_buyer_uid > > > ,:tb_mbs_status > > > ,:tb_mbs_smooth_fact > > > ,:tb_mbs_aro_article > > > ,:tb_mbs_orig > > > ,:tb_mbs_mut_perc > > > ,:tb_mbs_cd_meat_manaus > > > ,:tb_mbs_brand_cd > > > ,:tb_mbs_cust_grp_no > > > ,:tb_mbs_obsolete_exception > > > ,:tb_mbs_oper_type > > > ,:tb_mbs_obs_excp_days > > > ,:tb_mbs_pay_per > > > ,:tb_mbs_reorder_way > > > ,:tb_mbs_ord_prop_inf_cd > > > ,:tb_mbs_sell_price_resp > > > ,:tb_mbs_pis_finsocial_cd > > > ,:tb_mbs_block_cd > > > ,:tb_mbs_ord_enter_price > > > ,:tb_mbs_ord_limit_cd > > > ,:tb_mbs_ord_limit_amnt > > > ,:tb_mbs_lgr_pis_credit > > > ,:tb_mbs_lgr_finsocial_credit > > > ,:tb_mbs_weight_std_art_cd > > > ,:tb_mbs_weight_std_art > > > ,:tb_mbs_weight_railcd > > > ,:tb_mbs_price_factor > > > ,:tb_mbs_pricing_ind > > > ,:tb_mbs_start_date_pricing > > > ,:tb_tlv_max_disc_amnt > > > ,:tb_tlv_limit_day_qty > > > ,:tb_tlv_limit_date > > > ,:tb_tlv_block_cd > > > ,:tb_mbs_pay_type_cd /* > > > v.1.2 */ > > > ,:tb_mbs_reg_no /* > > > v.1.3 */ > > > ,:tb_pcmarobj /* > > > pcmarobj com sinal */ > > > ,:tb_log_shelf_life /* > > > v.1.5*/ > > > FROM VW_ARTCOM > > > WHERE CNART = :art_no > > > AND CNLOJ = :store_no; > > > if (sqlca.sqlerrd[2] == 0) > > > return(FALSE); > > > tb_deart.arr[ tb_deart.len]='\0'; > > > tb_catipemb.arr[ tb_catipemb.len]='\0'; > > > tb_careffor.arr[ tb_careffor.len]='\0'; > > > tb_boemidsp.arr[ tb_boemidsp.len]='\0'; > > > tb_cafrqsug.arr[ tb_cafrqsug.len]='\0'; > > > tb_casaz.arr[ tb_casaz.len]='\0'; > > > tb_catipart.arr[ tb_catipart.len]='\0'; > > > tb_cactgart.arr[ tb_cactgart.len]='\0'; > > > tb_boaro.arr[ tb_boaro.len]='\0'; > > > tb_boembins.arr[ tb_boembins.len]='\0'; > > > tb_caclsart.arr[ tb_caclsart.len]='\0'; > > > tb_catippre.arr[ tb_catippre.len]='\0'; > > > tb_boartprm.arr[ tb_boartprm.len]='\0'; > > > tb_catiprep.arr[ tb_catiprep.len]='\0'; > > > tb_dtultrec.arr[ tb_dtultrec.len]='\0'; > > > tb_mbs_buyer_uid.arr[ tb_mbs_buyer_uid.len]='\0'; > > > tb_mbs_block_cd.arr[ tb_mbs_block_cd.len]='\0'; > > > tb_mbs_orig.arr[ tb_mbs_orig.len]='\0'; > > > tb_mbs_start_date_pricing.arr[ tb_mbs_start_date_pricing.len]='\0'; > > > tb_tlv_limit_date.arr[ tb_tlv_limit_date.len]='\0'; > > > tb_mbs_reg_no.arr[ tb_mbs_reg_no.len]='\0'; > > > > > > #ifdef DEBUG > > > fprintf(stderr, "read_article: store_no=%3d art_no=%7d descr=%s\n", > > > store_no,tb_cnart,tb_deart.arr); > > > #endif > > > return(TRUE); > > > error: > > > ora_error("read_article"); > > > my_exit(ORAERROR); > > > } /* read_article() */ > > > /*----------------------------------------------------------*/ > > > /* load_file_artcom() */ > > > /*----------------------------------------------------------*/ > > > load_file_artcom() > > > { > > > #ifdef DEBUG > > > fprintf( stderr, format_artcom, > > > tb_cnart > > > ,tb_deart.arr > > > ,tb_cnblq > > > ,tb_bofasobs > > > ,tb_dtultrec.arr > > > ,tb_suggested_sell_pr > > > ,tb_min_pr_value_cd > > > ,tb_min_pr_value_amnt > > > ,tb_min_shop_value_cd > > > ,tb_min_shop_value_amnt > > > ,tb_cngrp > > > ,tb_cnsubgrp > > > ,tb_cncom > > > ,tb_qtunimak > > > ,tb_qtunifor > > > ,tb_catipemb.arr > > > ,tb_careffor.arr > > > ,tb_cnartpri > > > ,tb_qtminped > > > ,tb_capes > > > ,tb_bosug > > > ,tb_boemidsp.arr > > > ,tb_cafrqsug.arr > > > ,tb_casaz.arr > > > ,tb_catipart.arr > > > ,tb_cntipimp > > > ,tb_vcvas > > > ,tb_cactgart.arr > > > ,tb_boaro.arr > > > ,tb_cnipi > > > ,tb_vcipi > > > ,tb_boembins.arr > > > ,tb_cnfor > > > ,tb_cnfilfor > > > ,tb_cntipicm > > > ,tb_cnalicom > > > ,tb_cnaliven > > > ,tb_pctaxiva > > > ,tb_pcbasred > > > ,tb_caclsart.arr > > > ,tb_pcmarobj_old > > > ,tb_catippre.arr > > > ,tb_boartprm.arr > > > ,tb_qdprzent > > > ,tb_caresrep > > > ,tb_vccusrep > > > ,tb_vcprvrep > > > ,tb_vccusult > > > ,tb_vccfiori > > > ,tb_vcprvatu > > > ,tb_vccrdicm > > > ,tb_vccuslsi > > > ,tb_catiprep.arr > > > ,tb_mmail_no > > > ,tb_mbs_buyer_uid.arr > > > ,tb_mbs_status > > > ,tb_mbs_smooth_fact > > > ,tb_mbs_aro_article > > > ,tb_mbs_orig.arr > > > ,tb_mbs_mut_perc > > > ,tb_mbs_cd_meat_manaus > > > ,tb_mbs_brand_cd > > > ,tb_mbs_cust_grp_no > > > ,tb_mbs_obsolete_exception > > > ,tb_mbs_oper_type > > > ,tb_mbs_obs_excp_days > > > ,tb_mbs_pay_per > > > ,tb_mbs_reorder_way > > > ,tb_mbs_ord_prop_inf_cd > > > ,tb_mbs_sell_price_resp > > > ,tb_mbs_pis_finsocial_cd > > > ,tb_mbs_block_cd.arr > > > ,tb_mbs_ord_enter_price > > > ,tb_mbs_ord_limit_cd > > > ,tb_mbs_ord_limit_amnt > > > ,tb_mbs_lgr_pis_credit > > > ,tb_mbs_lgr_finsocial_credit > > > ,tb_mbs_weight_std_art_cd > > > ,tb_mbs_weight_std_art > > > ,tb_mbs_weight_railcd > > > ,tb_mbs_price_factor > > > ,tb_mbs_pricing_ind > > > ,tb_mbs_start_date_pricing.arr > > > ,tb_tlv_max_disc_amnt > > > ,tb_tlv_limit_day_qty > > > ,tb_tlv_limit_date.arr > > > ,tb_tlv_block_cd > > > ,tb_mbs_pay_type_cd /* > > > v.1.2 */ > > > ,tb_mbs_reg_no.arr /* > > > v.1.3 */ > > > ,tb_pcmarobj /* > > > pcmarobj com sinal */ > > > ,tb_log_shelf_life /* > > > v.1.5*/ > > > ); > > > #endif > > > if ( art_no > 999999 ) > > > { > > > printf ("ct_artcom : artigo %d loja %d maior que o suportado \n" , > > > art_no, param_store_no ); > > > } > > > else > > > { > > > fprintf( artcom, format_artcom, > > > tb_cnart > > > ,tb_deart.arr > > > ,tb_cnblq > > > ,tb_bofasobs > > > ,tb_dtultrec.arr > > > ,tb_suggested_sell_pr > > > ,tb_min_pr_value_cd > > > ,tb_min_pr_value_amnt > > > ,tb_min_shop_value_cd > > > ,tb_min_shop_value_amnt > > > ,tb_cngrp > > > ,tb_cnsubgrp > > > ,tb_cncom > > > ,tb_qtunimak > > > ,tb_qtunifor > > > ,tb_catipemb.arr > > > ,tb_careffor.arr > > > ,tb_cnartpri > > > ,tb_qtminped > > > ,tb_capes > > > ,tb_bosug > > > ,tb_boemidsp.arr > > > ,tb_cafrqsug.arr > > > ,tb_casaz.arr > > > ,tb_catipart.arr > > > ,tb_cntipimp > > > ,tb_vcvas > > > ,tb_cactgart.arr > > > ,tb_boaro.arr > > > ,tb_cnipi > > > ,tb_vcipi > > > ,tb_boembins.arr > > > ,tb_cnfor > > > ,tb_cnfilfor > > > ,tb_cntipicm > > > ,tb_cnalicom > > > ,tb_cnaliven > > > ,tb_pctaxiva > > > ,tb_pcbasred > > > ,tb_caclsart.arr > > > ,tb_pcmarobj_old > > > ,tb_catippre.arr > > > ,tb_boartprm.arr > > > ,tb_qdprzent > > > ,tb_caresrep > > > ,tb_vccusrep > > > ,tb_vcprvrep > > > ,tb_vccusult > > > ,tb_vccfiori > > > ,tb_vcprvatu > > > ,tb_vccrdicm > > > ,tb_vccuslsi > > > ,tb_catiprep.arr > > > ,tb_mmail_no > > > ,tb_mbs_buyer_uid.arr > > > ,tb_mbs_status > > > ,tb_mbs_smooth_fact > > > ,tb_mbs_aro_article > > > ,tb_mbs_orig.arr > > > ,tb_mbs_mut_perc > > > ,tb_mbs_cd_meat_manaus > > > ,tb_mbs_brand_cd > > > ,tb_mbs_cust_grp_no > > > ,tb_mbs_obsolete_exception > > > ,tb_mbs_oper_type > > > ,tb_mbs_obs_excp_days > > > ,tb_mbs_pay_per > > > ,tb_mbs_reorder_way > > > ,tb_mbs_ord_prop_inf_cd > > > ,tb_mbs_sell_price_resp > > > ,tb_mbs_pis_finsocial_cd > > > ,tb_mbs_block_cd.arr > > > ,tb_mbs_ord_enter_price > > > ,tb_mbs_ord_limit_cd > > > ,tb_mbs_ord_limit_amnt > > > ,tb_mbs_lgr_pis_credit > > > ,tb_mbs_lgr_finsocial_credit > > > ,tb_mbs_weight_std_art_cd > > > ,tb_mbs_weight_std_art > > > ,tb_mbs_weight_railcd > > > ,tb_mbs_price_factor > > > ,tb_mbs_pricing_ind > > > ,tb_mbs_start_date_pricing.arr > > > ,tb_tlv_max_disc_amnt > > > ,tb_tlv_limit_day_qty > > > ,tb_tlv_limit_date.arr > > > ,tb_tlv_block_cd > > > ,tb_mbs_pay_type_cd /* > > > v.1.2 */ > > > ,tb_mbs_reg_no.arr /* > > > v.1.3 */ > > > ,tb_pcmarobj /* > > > pcmarobj com sinal */ > > > ,tb_log_shelf_life /* > > > v.1.5*/ > > > ); > > > return; > > > } > > > } /* load_file_artcom() */ > > > > > > > > > > > > > > > -- > > > Atenciosamente > > > > > > Leonardo Silva > > > > > > > > > E da mesma maneira também o Espírito ajuda as nossas fraquezas; porque > não > > > sabemos o que havemos de pedir como convém, mas o mesmo Espírito > intercede > > > por nós com gemidos inexprimíveis.Romanos 8:26 > > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > -- Atenciosamente Leonardo Silva E da mesma maneira também o Espírito ajuda as nossas fraquezas; porque não sabemos o que havemos de pedir como convém, mas o mesmo Espírito intercede por nós com gemidos inexprimíveis.Romanos 8:26 [As partes desta mensagem que não continham texto foram removidas] ------------------------------------ -------------------------------------------------------------------------------------------------------------------------- >Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira >responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ -------------------------------------------------------------------------------------------------------------------------- >Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » >Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: >http://www.oraclebr.com.br/ ------------------------------------------------------------------------------------------------------------------------ Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ <*> Para sair deste grupo, envie um e-mail para: oracle_br-unsubscr...@yahoogrupos.com.br <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html