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


Responder a