Retour chariot

Bonjour à tous;
J'ai un problème au niveau de l'organisation du fichier final des acquisitions de mes expériences au sein du laboratoire. Alors le problème est le suivant: à chaque minute je fais l'acquisition du signalet j'enregistre dans le meme fichier durant 180 minutes et chaque acquisition est composée de 2000 points; mon obejectif est de faire une ligne vide entre les différentes acquisitions, je m'explique je fais l'acquisition de la première minute je l'enregsitre dans le fichier et dans ce meme fichier le programme doit sauter une ligne pour ajouter l'acquisition prochaine et ainsi de suite, c'est juste pour faciliter la tache en séparant entre les différentes acquisitions i et i+1 par une ligne vide. Merci beaucoup pour vos suggestions.
Cordialement;

Bonsoir à tous;
Je pense que je n'ai pas expliqué mon problème comme il faut. Mon expérience dure 180 minutes pour suivre un processus en agroalimentaire par les ondes ultrasonores, pour chaque minute je fais l'acquisition du signal rétrodiffusé par l'échantillon, alors j'enregistre tous les acquisitions dans le meme fichier, ce fichier est composé d'une seule colonne et 180*2000 lignes, alors pour que le fichier soit lisible il faut séparer entre l'acquisition i et l'acquisition i+1 par une ligne vide. Donc dans le corps du programme il faut injecter une instruction pour le faire c'est à dire chaque fois il enregistre le signal avant de terminer il doit sauter une ligne de telle facon à avoir une ligne vide pour que je puisse séparer entre deux acquisitions successives.
Par exemple:
3.458
6.478
1.589
6.421
1.456
5.263
9.478
8.235
les quatres premières lignes correspondent à la première acquisition.
les autres lignes correspond correspondent à la deuxième acquisition.
le vide entre les deux acquisitions est mon problème, comment apparaitre ce vide entre deux acquisitions successives et dans le meme fichier?
S'il vous plait si vous avez des suggestions je vous serai très reconaissant car le traitement que je ferai ultérieurement sur ce fichier m'exige à former ce fichier de cette façon.
Cordialement;

Similar Messages

  • Re à Sanaa T (suite)retour chariot MCGoHome

    Merci de l'intérêt que vous portez à ma requête et désolé de l'envoi involontaire de mon début de message.
    En fait, je voulais préciser que le retour chariot a été résolu temporairement en forçant sa commande pour une position de moins de 1µm de la position extrême dans un sens, à savoir 90mm.
    AUssi, j'ai remarqué que donc le chariot n'atteint pas 90 mm mais 89.9 mm, à cause d'un Following error (erreur de position instantanée) trop important,de l'ordre de 3 pas sur les 450000 pas correspondant à 90 mm (rapport de 0.2).
    Avec l'ancien système (carte isa au lieu de la nouvelle PCI MUltiflex), le following error était nul et les 90 mm étaient atteints.
    J'aimerais savoir s'il existe une aide à la configuration du set up du CW demo, avec les ordres de grandeurs voire les codes relatifs au following error, asservissement PID..., car je ne l'ai pas trouvé sur le site pmccorp.com ou le CD Motion Control qui m'a été fourni avec la carte PCI Multiflex.
    En outre, je ne vois pas comment avoir une vitesse constante car Labview change automatiquement les paramètres d'en haut (accélération, décélération,...)
    La solution temporaire n'est pas satisfaisante car il manque des acquisitions de valeurs sur les derniers µms.
    Je vous fournis une capture écran des séquences 6 et 7 avec le retour commandé par le MCGoHome.
    Merci.
    Attachments:
    séq 6-73.bmp ‏2305 KB

    Merci de l'intérêt que vous portez à ma requête et désolé de l'envoi involontaire de mon début de message.
    En fait, je voulais préciser que le retour chariot a été résolu temporairement en forçant sa commande pour une position de moins de 1µm de la position extrême dans un sens, à savoir 90mm.
    AUssi, j'ai remarqué que donc le chariot n'atteint pas 90 mm mais 89.9 mm, à cause d'un Following error (erreur de position instantanée) trop important,de l'ordre de 3 pas sur les 450000 pas correspondant à 90 mm (rapport de 0.2).
    Avec l'ancien système (carte isa au lieu de la nouvelle PCI MUltiflex), le following error était nul et les 90 mm étaient atteints.
    J'aimerais savoir s'il existe une aide à la configuration du set up du CW demo, avec les ordres de grandeurs voire les codes relatifs au following error, asservissement PID..., car je ne l'ai pas trouvé sur le site pmccorp.com ou le CD Motion Control qui m'a été fourni avec la carte PCI Multiflex.
    En outre, je ne vois pas comment avoir une vitesse constante car Labview change automatiquement les paramètres d'en haut (accélération, décélération,...)
    La solution temporaire n'est pas satisfaisante car il manque des acquisitions de valeurs sur les derniers µms.
    Je vous fournis une capture écran des séquences 6 et 7 avec le retour commandé par le MCGoHome.
    Merci.
    Attachments:
    séq 6-73.bmp ‏2305 KB

  • Les retours chariots ne sont pas pris en compte dans viewer, alors qu'ils le sont dans desktop et Plus.

    Tout est dans le titre.
    J'ai trouvé une discussion dans laquelle le problème était relevé, mais il n'y a aucune réponse.

    Sorry,
    it could be better in English.
    One field in a worksheet contains carriage returns.
    It works fine in Desktop and Plus but seems not to be supported in Viewer.

  • Need Help to see why the performance is not good

    Hi,
    We have an application that all process are developed in PL/SQL on Oracle 9i Database :
    Oracle9i Enterprise Edition Release 9.2.0.6.0 - 64bit Production
    PL/SQL Release 9.2.0.6.0 - Production
    Why I have created this package. the application is a production management on chemical industries. I need to sometimes trace the Manufacturing order execution to eventually answer some incoherent data. If I analyze directly the data in the Table is not always responding because the origin of problem can be provide of some execution that perform some calculation.
    In the procedure or function a use my package PAC_LOG_ERROR.PUT_LINE(xxxxxx) to save the information. This command save the information in the memory before. At the end of the procedure or function a perform the insert with the COMMIT calling PAC_LOG_ERROR.LOGS or PAC_LOG_ERROR.ERRORS on the catch exception.
    This package is always call. On each routines performed I execute it. In the trace log of the database we have see a problem we the procedure GET_PROC_NAME in the package. We have identify that is called more that 800x and increase the performance. Who increase is this select command :
        SELECT * INTO SOURCE_TEXT
        FROM (SELECT TEXT FROM all_source
            WHERE OWNER = SOURCE_OWNER AND
                  NAME=SOURCE_NAME AND
                  TYPE IN ('PROCEDURE','FUNCTION','PACKAGE BODY') AND
                  LINE <= SOURCE_LINE AND SUBSTR(TRIM(TEXT),1,9) IN ('PROCEDURE','FUNCTION ')
            ORDER BY LINE DESC)
        WHERE ROWNUM = 1;I use it to get the procedure or function name where my log proc is called. I now that I can pass in parameters, but I have think to use an automatic method, that can help to not have some problem with others developer team to make a copy/past and not update the parameters. Because the Log info is read by the Help Desk and if we have an error on the information, it not a good help.
    COULD YOU PLEASE HELP ME TO OPTIMIZE OR SAID THE BETTER METHOD TO DO IT ?
    Here my package :
    create or replace
    PACKAGE PAC_LOG_ERROR AS
    -- Name         : pac_log_error.sql
    -- Author       : Calà Salvatore - 02 July 2010
    -- Description  : Basic Error and Log management.
    -- Usage notes  : To active the Log management execute this statement
    --                UPDATE PARAM_TECHNIC SET PRM_VALUE = 'Y' WHERE PRM_TYPE = 'TRC_LOG';
    --                COMMIT;
    --                To set the period in day before to delete tracability
    --                UPDATE PARAM_TECHNIC SET PRM_VALUE = 60 WHERE PRM_TYPE = 'DEL_TRC_LOG';
    --                COMMIT;
    --                To set the number in day where the ERROR is save before deleted
    --                UPDATE PARAM_TECHNIC SET PRM_VALUE = 60 WHERE PRM_TYPE = 'DEL_TRC_LOG';
    --                COMMIT;
    -- Requirements : Packages PAC_PUBLIC and OWA_UTIL
    -- Revision History
    -- --------+---------------+-------------+--------------------------------------
    -- Version |    Author     |  Date       | Comment
    -- --------+---------------+-------------+--------------------------------------
    -- 1.0.0   | S. Calà       | 02-Jul-2010 | Initial Version
    -- --------+---------------+-------------+--------------------------------------
    --         |               |             |
    -- --------+---------------+-------------+--------------------------------------
      PROCEDURE INITIALIZE;
      PROCEDURE CLEAN;
      PROCEDURE RESETS(IN_SOURCE IN VARCHAR2 DEFAULT NULL);
      PROCEDURE PUT_LINE(TXT IN VARCHAR2);
      PROCEDURE ERRORS(REF_TYPE IN VARCHAR2 DEFAULT 'SITE', REF_VALUE IN VARCHAR2 DEFAULT '99', ERR_CODE IN NUMBER DEFAULT SQLCODE, ERR_MSG IN VARCHAR2 DEFAULT SQLERRM);
      PROCEDURE LOGS(REF_TYPE IN VARCHAR2 DEFAULT 'SITE', REF_VALUE IN VARCHAR2 DEFAULT '99');
    END PAC_LOG_ERROR;
    create or replace
    PACKAGE BODY PAC_LOG_ERROR
    AS
      /* Private Constant */
      CR    CONSTANT CHAR(1)  := CHR(13);  -- Retour chariot
      LF    CONSTANT CHAR(1)  := CHR(10);  -- Saut de ligne
      CR_LF CONSTANT CHAR(2)  := LF || CR; --Saut de ligne et retour chariot
      TAB   CONSTANT PLS_INTEGER := 50;
      sDelay   CONSTANT PLS_INTEGER := 30;
      /* Private Record */
      TYPE REC_LOG IS RECORD(
        ERR_DATE TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
        ERR_TXT  VARCHAR2(4000)
      /* Private Type Table */
      TYPE TAB_VALUE IS TABLE OF REC_LOG INDEX BY PLS_INTEGER;
      TYPE TAB_POINTER IS TABLE OF TAB_VALUE INDEX BY VARCHAR2(80);
      /* Private Variables Structures */
      LOG_TRC PARAM_TECHNIC.PRM_VALUE%TYPE;
      LIST_PARAM TAB_POINTER;
      /* Private Programs */
      FUNCTION GET_PROC_NAME( SOURCE_OWNER IN all_source.OWNER%TYPE
                             ,SOURCE_NAME  IN all_source.NAME%TYPE
                             ,SOURCE_LINE  IN all_source.LINE%TYPE) RETURN VARCHAR2
      AS
        SOURCE_TEXT  all_source.TEXT%TYPE;
        TYPE RECORD_TEXT IS TABLE OF all_source.TEXT%TYPE;
        RETURN_TEXT     RECORD_TEXT;
      BEGIN
        SELECT * INTO SOURCE_TEXT
        FROM (SELECT TEXT FROM all_source
            WHERE OWNER = SOURCE_OWNER AND
                  NAME=SOURCE_NAME AND
                  TYPE IN ('PROCEDURE','FUNCTION','PACKAGE BODY') AND
                  LINE <= SOURCE_LINE AND SUBSTR(TRIM(TEXT),1,9) IN ('PROCEDURE','FUNCTION ')
            ORDER BY LINE DESC)
        WHERE ROWNUM = 1;
        IF SOURCE_TEXT IS NOT NULL OR  SOURCE_TEXT != '' THEN
          SOURCE_TEXT := TRIM(SUBSTR(SOURCE_TEXT,1,INSTR(SOURCE_TEXT,'(')-1));     
          SOURCE_TEXT := LTRIM(LTRIM(TRIM(SOURCE_TEXT),'PROCEDURE'),'FUNCTION');
          SOURCE_TEXT := SOURCE_NAME||'.'|| TRIM(SOURCE_TEXT);
        ELSE
          SOURCE_TEXT := 'ANONYMOUS BLOCK';
        END IF;
        RETURN SOURCE_TEXT;
      END GET_PROC_NAME;
      PROCEDURE SELECT_MASTER(REF_TYPE IN VARCHAR2, PARAM_VALUE IN VARCHAR2, SITE OUT VARCHAR2, REF_MASTER OUT VARCHAR2)
      AS
      BEGIN
          REF_MASTER := '';
          SITE := '99';
          CASE UPPER(REF_TYPE)
            WHEN 'PO' THEN -- Process Order
              SELECT SITE_CODE INTO SITE FROM PO_PROCESS_ORDER WHERE PO_NUMBER = PARAM_VALUE;
            WHEN 'SO' THEN -- Shop Order
              SELECT P.SITE_CODE,P.PO_NUMBER INTO SITE,REF_MASTER FROM SO_SHOP_ORDER S
              INNER JOIN PO_PROCESS_ORDER P ON P.PO_NUMBER = S.PO_NUMBER
              WHERE S.NUMOF = PARAM_VALUE;
            WHEN 'SM' THEN -- Submixing
              SELECT SITE_CODE,NUMOF INTO SITE,REF_MASTER FROM SO_SUBMIXING WHERE IDSM = PARAM_VALUE;
            WHEN 'IDSM' THEN -- Submixing
              SELECT SITE_CODE,NUMOF INTO SITE,REF_MASTER FROM SO_SUBMIXING WHERE IDSM = PARAM_VALUE;
            WHEN 'PR' THEN -- Pourring
              SELECT B.SITE_CODE,P.NUMOF INTO SITE,REF_MASTER FROM SO_POURING P
              INNER JOIN SO_SUBMIXING B ON B.IDSM=P.IDSM
              WHERE P.IDSM = PARAM_VALUE;
            WHEN 'NUMSMP' THEN -- Pourring
              SELECT SITE_CODE,NUMOF INTO SITE,REF_MASTER FROM SAMPLE WHERE NUMSMP = TO_NUMBER(PARAM_VALUE);
    --        WHEN 'MSG' THEN -- Messages
    --          SELECT SITE_CODE,PO_NUMBER INTO SITE,REF_MASTER FROM CMS_INTERFACE.MAP_ITF_PO WHERE MSG_ID = PARAM_VALUE;
            ELSE
              SITE := sys_context('usr_context', 'site_attribute');
          END CASE;
      EXCEPTION
        WHEN OTHERS THEN
          REF_MASTER := '';
          SITE := sys_context('usr_context', 'site_attribute');
      END SELECT_MASTER;
      PROCEDURE ADD_LIST_PROC
      AS
      PRAGMA AUTONOMOUS_TRANSACTION;
      BEGIN
        MERGE INTO LOG_PARAM A
        USING (SELECT OWNER, TYPE
                     ,NAME PROC
                     , CASE NAME WHEN SUBNAME THEN NULL
                                 ELSE SUBNAME
                       END SUBPROC
               FROM (
                  SELECT owner,TYPE,UPPER(NAME) NAME,UPPER(trim(substr(substr(trim(text),1,instr(trim(text),'(')-1),instr(substr(trim(text),1,instr(trim(text),'(')-1),' ')))) SUBNAME
                         FROM ALL_SOURCE where owner in ('CMS_ADM','CMS_INTERFACE')
                                             and type in ('FUNCTION','PROCEDURE','PACKAGE BODY')
                                             and (instr(substr(trim(text),1,instr(trim(upper(text)),'(')-1),'FUNCTION') = 1 or instr(substr(trim(text),1,instr(trim(upper(text)),'(')-1),'PROCEDURE')=1)
               )-- ORDER BY OWNER,PROC,SUBPROC NULLS FIRST
        ) B
        ON (A.OWNER = B.OWNER AND A.TYPE = B.TYPE AND A.PROC=B.PROC AND NVL(A.SUBPROC,' ') = NVL(B.SUBPROC,' '))
        WHEN NOT MATCHED THEN
          INSERT (OWNER,TYPE,PROC,SUBPROC) VALUES (B.OWNER,B.TYPE,B.PROC,B.SUBPROC)
        WHEN MATCHED THEN
          UPDATE SET ACTIVE = ACTIVE;
        DELETE LOG_PARAM A
        WHERE NOT EXISTS (SELECT OWNER, TYPE
                     ,NAME PROC
                     , CASE NAME WHEN SUBNAME THEN NULL
                                 ELSE SUBNAME
                       END SUBPROC
               FROM (
                  SELECT owner,TYPE,NAME,upper(trim(substr(substr(trim(text),1,instr(trim(text),'(')-1),instr(substr(trim(text),1,instr(trim(text),'(')-1),' ')))) SUBNAME
                         FROM ALL_SOURCE where owner in ('CMS_ADM','CMS_INTERFACE')
                                             and type in ('FUNCTION','PROCEDURE','PACKAGE BODY')
                                             and (instr(substr(trim(text),1,instr(trim(text),'(')-1),'FUNCTION') = 1 or instr(substr(trim(text),1,instr(trim(text),'(')-1),'PROCEDURE')=1)
               ) WHERE A.OWNER = OWNER AND A.TYPE = TYPE AND A.PROC=PROC AND NVL(A.SUBPROC,' ') = NVL(SUBPROC,' '));
        COMMIT;
      EXCEPTION
        WHEN OTHERS THEN
          NULL;
      END ADD_LIST_PROC;
      PROCEDURE INITIALIZE
      AS
      BEGIN
        LIST_PARAM.DELETE;
        CLEAN;
    --    ADD_LIST_PROC;
      EXCEPTION
        WHEN OTHERS THEN
          NULL;
      END INITIALIZE;
      PROCEDURE CLEAN
      AS
        PRAGMA AUTONOMOUS_TRANSACTION;
        dtTrcLog DATE;
        dtTrcErr DATE;
      BEGIN
        BEGIN
          SELECT dbdate-NUMTODSINTERVAL(to_number(PRM_VALUE),'DAY') INTO dtTrcLog
          FROM PARAM_TECHNIC WHERE PRM_TYPE = 'DEL_TRC_LOG';
        EXCEPTION
          WHEN OTHERS THEN
            dtTrcLog := dbdate -NUMTODSINTERVAL(sDelay,'DAY');
        END;
        BEGIN
          SELECT dbdate-NUMTODSINTERVAL(to_number(PRM_VALUE),'DAY') INTO dtTrcErr
          FROM PARAM_TECHNIC WHERE PRM_TYPE = 'DEL_TRC_ERR';
        EXCEPTION
          WHEN OTHERS THEN
            dtTrcErr := dbdate -NUMTODSINTERVAL(sDelay,'DAY');
          END;
        DELETE FROM ERROR_LOG WHERE ERR_TYPE ='LOG' AND ERR_DATE < dtTrcLog;
        DELETE FROM ERROR_LOG WHERE ERR_TYPE ='ERROR' AND ERR_DATE < dtTrcErr;
        COMMIT;
      EXCEPTION
        WHEN OTHERS THEN
          NULL; -- Do nothing if error occurs and catch exception
      END CLEAN;
      PROCEDURE RESETS(IN_SOURCE IN VARCHAR2 DEFAULT NULL)
      AS
        SOURCE_OWNER all_source.OWNER%TYPE;
        SOURCE_NAME      all_source.NAME%TYPE;
        SOURCE_LINE      all_source.LINE%TYPE;
        SOURCE_TEXT  all_source.TEXT%TYPE;
        SOURCE_PROC  VARCHAR2(32727);
      BEGIN
        OWA_UTIL.WHO_CALLED_ME(owner    => SOURCE_OWNER,
                               name     => SOURCE_NAME,
                               lineno   => SOURCE_LINE,
                               caller_t => SOURCE_TEXT);
        IF SOURCE_PROC IS NULL THEN
          SOURCE_PROC := SUBSTR(GET_PROC_NAME(SOURCE_OWNER,SOURCE_NAME,SOURCE_LINE),1,125);
        ELSE
          SOURCE_PROC := IN_SOURCE;
        END IF;
        LIST_PARAM.DELETE(SOURCE_PROC);
      EXCEPTION
        WHEN OTHERS THEN
          NULL;
      END RESETS;
      PROCEDURE PUT_LINE(TXT IN VARCHAR2)
      AS
        PRAGMA AUTONOMOUS_TRANSACTION;
        SOURCE_OWNER     all_source.OWNER%TYPE;
        SOURCE_NAME     all_source.NAME%TYPE;
        SOURCE_LINE     all_source.LINE%TYPE;
        SOURCE_TEXT all_source.TEXT%TYPE;
        SOURCE_PROC VARCHAR2(128); 
      BEGIN
        IF TXT IS NULL OR TXT = '' THEN
          RETURN;
        END IF;
        OWA_UTIL.WHO_CALLED_ME(owner    => SOURCE_OWNER,
                               name     => SOURCE_NAME,
                               lineno   => SOURCE_LINE,
                               caller_t => SOURCE_TEXT);
        SOURCE_PROC := GET_PROC_NAME(SOURCE_OWNER,SOURCE_NAME,SOURCE_LINE);
        IF LIST_PARAM.EXISTS(SOURCE_PROC) THEN
          LIST_PARAM(SOURCE_PROC)(LIST_PARAM(SOURCE_PROC).COUNT+1).ERR_TXT := TXT;
        ELSE 
          LIST_PARAM(SOURCE_PROC)(1).ERR_TXT := TXT;
        END IF;
      EXCEPTION
        WHEN OTHERS THEN
          NULL;   
      END PUT_LINE;
      PROCEDURE LOGS(REF_TYPE IN VARCHAR2 DEFAULT 'SITE', REF_VALUE IN VARCHAR2 DEFAULT '99')
      AS
        PRAGMA AUTONOMOUS_TRANSACTION;
        MASTER_VALUE ERROR_LOG.ERR_MASTER%TYPE;
        SITE PARAMTAB.SITE_CODE%TYPE;
        SOURCE_OWNER     all_source.OWNER%TYPE;
        SOURCE_NAME     all_source.NAME%TYPE;
        SOURCE_LINE     all_source.LINE%TYPE;
        SOURCE_TEXT all_source.TEXT%TYPE;
        SOURCE_PROC VARCHAR2(128);
        ERR_KEY NUMBER;
      BEGIN
    --    NULL;
        OWA_UTIL.WHO_CALLED_ME(owner    => SOURCE_OWNER,
                               name     => SOURCE_NAME,
                               lineno   => SOURCE_LINE,
                               caller_t => SOURCE_TEXT);
        SOURCE_PROC := SUBSTR(GET_PROC_NAME(SOURCE_OWNER,SOURCE_NAME,SOURCE_LINE),1,128);
        LIST_PARAM.DELETE(SOURCE_PROC);
    --    SELECT NVL(MAX(ACTIVE),'N') INTO LOG_TRC FROM LOG_PARAM WHERE TRIM(UPPER((PROC||'.'||SUBPROC))) = TRIM(UPPER(SOURCE_PROC))
    --                                      AND OWNER =SOURCE_OWNER AND TYPE = SOURCE_TEXT ;
    --    IF LOG_TRC = 'N' THEN
    --      LIST_PARAM.DELETE(SOURCE_PROC);
    --      RETURN;
    --    END IF;   
    --    SELECT_MASTER(REF_TYPE => UPPER(REF_TYPE), PARAM_VALUE => REF_VALUE, SITE => SITE, REF_MASTER => MASTER_VALUE);
    --    ERR_KEY := TO_CHAR(LOCALTIMESTAMP,'YYYYMMDDHH24MISSFF6');
    --    FOR AIX IN 1..LIST_PARAM(SOURCE_PROC).COUNT LOOP
    --      INSERT INTO ERROR_LOG (ERR_KEY, ERR_SITE,ERR_SLAVE  ,ERR_MASTER  ,ERR_TYPE ,ERR_PROC,ERR_DATE,ERR_TXT)
    --      VALUES (ERR_KEY,SITE,REF_VALUE,MASTER_VALUE,'LOG',SOURCE_PROC,LIST_PARAM(SOURCE_PROC)(AIX).ERR_DATE ,LIST_PARAM(SOURCE_PROC)(AIX).ERR_TXT);
    --    END LOOP; 
    --    UPDATE SESSION_CONTEXT SET SCX_ERR_KEY = ERR_KEY WHERE SCX_ID = SYS_CONTEXT('USERENV','SESSIONID');
    --    LIST_PARAM.DELETE(SOURCE_PROC);
    --    COMMIT;
      EXCEPTION
        WHEN OTHERS THEN
          LIST_PARAM.DELETE(SOURCE_PROC);
      END LOGS;
      PROCEDURE ERRORS(REF_TYPE IN VARCHAR2 DEFAULT 'SITE', REF_VALUE IN VARCHAR2 DEFAULT '99', ERR_CODE IN NUMBER DEFAULT SQLCODE, ERR_MSG IN VARCHAR2 DEFAULT SQLERRM)
      AS
        PRAGMA AUTONOMOUS_TRANSACTION;
        MASTER_VALUE ERROR_LOG.ERR_MASTER%TYPE;
        SITE         PARAMTAB.SITE_CODE%TYPE;
        SOURCE_OWNER all_source.OWNER%TYPE;
        SOURCE_NAME      all_source.NAME%TYPE;
        SOURCE_LINE      all_source.LINE%TYPE;
        SOURCE_TEXT  all_source.TEXT%TYPE;
        SOURCE_PROC  VARCHAR2(4000);
        ERR_KEY NUMBER := TO_CHAR(LOCALTIMESTAMP,'YYYYMMDDHH24MISSFF6');
      BEGIN
        OWA_UTIL.WHO_CALLED_ME(owner    => SOURCE_OWNER,
                               name     => SOURCE_NAME,
                               lineno   => SOURCE_LINE,
                               caller_t => SOURCE_TEXT);
        SOURCE_PROC := SUBSTR(GET_PROC_NAME(SOURCE_OWNER,SOURCE_NAME,SOURCE_LINE),1,125);
        SELECT_MASTER(REF_TYPE => UPPER(REF_TYPE), PARAM_VALUE => REF_VALUE, SITE => SITE, REF_MASTER => MASTER_VALUE);
       IF LIST_PARAM.EXISTS(SOURCE_PROC) THEN
          FOR AIX IN 1..LIST_PARAM(SOURCE_PROC).COUNT LOOP
            INSERT INTO ERROR_LOG (ERR_KEY,ERR_SITE,ERR_SLAVE,ERR_MASTER,ERR_PROC,ERR_DATE,ERR_TXT,ERR_CODE,ERR_MSG)
            VALUES (ERR_KEY,SITE,REF_VALUE,MASTER_VALUE,SOURCE_PROC,LIST_PARAM(SOURCE_PROC)(AIX).ERR_DATE, LIST_PARAM(SOURCE_PROC)(AIX).ERR_TXT,ERR_CODE,ERR_MSG);
          END LOOP; 
         LIST_PARAM.DELETE(SOURCE_PROC);
        ELSE
          INSERT INTO ERROR_LOG (ERR_KEY,ERR_SITE,ERR_SLAVE,ERR_MASTER,ERR_PROC,ERR_DATE,ERR_TXT,ERR_CODE,ERR_MSG)
          VALUES (ERR_KEY,SITE,REF_VALUE,MASTER_VALUE,SOURCE_PROC,CURRENT_TIMESTAMP,'Error info',ERR_CODE,ERR_MSG);
        END IF;
        UPDATE SESSION_CONTEXT SET SCX_ERR_KEY = ERR_KEY WHERE SCX_ID = sys_context('usr_context', 'session_id');
        COMMIT;
      EXCEPTION
        WHEN OTHERS THEN
          LIST_PARAM.DELETE(SOURCE_PROC);
      END ERRORS;
    END PAC_LOG_ERROR;

    This package is always call. On each routines performed I execute it. In the trace log of the database we have see a problem we the procedure GET_PROC_NAME in the package. We have identify that is called more that 800x and increase the performance. Who increase is this select command :
        SELECT * INTO SOURCE_TEXT
        FROM (SELECT TEXT FROM all_source
            WHERE OWNER = SOURCE_OWNER AND
                  NAME=SOURCE_NAME AND
                  TYPE IN ('PROCEDURE','FUNCTION','PACKAGE BODY') AND
                  LINE <= SOURCE_LINE AND SUBSTR(TRIM(TEXT),1,9) IN ('PROCEDURE','FUNCTION ')
            ORDER BY LINE DESC)
        WHERE ROWNUM = 1;Complex SQL like inline views and views of views can overwhelm the cost-based optimizer resulting in bad execution plans. Start with getting an execution plan of your problem query to see if it is inefficient - look for full table scans in particular. You might bet better performance by eliminating the IN and merging the results of 3 queries with a UNION.

  • [Qt 4][Testing] Helloworld build errors [solved]

    Hello!
    I tried to build a simple qt 4 hello world and it did not work.
    I took trolltech example, used qmake -project, qmake and make.
    I got this errors:
    shaika-dzari:$ make
    g++ -c -pipe -march=i686 -mtune=generic -O2 -pipe -Wall -W -D_REENTRANT -DQT_NO_DEBUG -I/opt/qt/mkspecs/linux-g++ -I. -I/opt/qt/include -I. -I. -I. -o main.o main.cpp
    main.cpp:37:25: erreur: QApplication : Aucun fichier ou répertoire de ce type
    main.cpp:38:24: erreur: QPushButton : Aucun fichier ou répertoire de ce type
    main.cpp:49:3: attention : pas de retour chariot à la fin du fichier
    main.cpp: In function 'int main(int, char**)':
    main.cpp:42: erreur: 'QApplication' was not declared in this scope
    main.cpp:42: erreur: expected `;' before 'app'
    main.cpp:44: erreur: 'QPushButton' was not declared in this scope
    main.cpp:44: erreur: expected `;' before 'hello'
    main.cpp:45: erreur: 'hello' was not declared in this scope
    main.cpp:48: erreur: 'app' was not declared in this scope
    main.cpp: At global scope:
    main.cpp:40: attention : unused parameter 'argc'
    main.cpp:40: attention : unused parameter 'argv'
    make: *** [main.o] Erreur 1
    Make seem to use /opt/qt/mkspecs/ but I think it should use /usr/share/qt/mkspecs for qt 4 ( I use qt 4 package from testing ).
    If I unset $QTDIR, qmake seem to load it again.
    I found in /usr/share/qt/mkspecs/linux-g++/qmake.conf this line:
    load(qt_config)
    I have 2 qtconfig on my system and both are in my path:
    shaika-dzari:$ whereis qtconfig
    qtconfig: /usr/bin/qtconfig /opt/qt/bin/qtconfig
    shaika-dzari:$ echo $PATH
    /bin:/usr/bin:/sbin:/usr/sbin:/usr/X11R6/bin:/opt/bin:/opt/java/bin:/opt/java/jre/bin:/opt/kde/bin:/opt/mozilla/bin:/usr/share/netbeans/bin/:/opt/qt/bin:/usr/local/bin:/opt/openoffice2/program:/opt/realplayer:/opt/skype:/usr/local/bin:/opt/openoffice2/program:/opt/realplayer:/opt/skype:/opt/qt/bin
    My qt package:
    local/qt 4.3.3-2
    The QT gui toolkit.
    local/qt-enhanced 3.3.8-15 (kdemod)
    The Qt GUI toolkit (KDEmod)
    I want to be sure before making a bug report. Is it because i use qt-enhanced from kdemod?
    When i used qt4 package from community, I did not have any problem.
    Any suggestions?
    Thank you.
    Last edited by Shaika-Dzari (2008-01-04 23:11:26)

    Up!
    Sorry to double post...
    I tried to build monkeystudio ( Qt4 ide ) and it did not work too.
    I looked in /etc/profile.d and I found qt.sh:
    shaika-dzari:$ cat /etc/profile.d/qt.sh
    export QTDIR=/opt/qt
    export QT_XFT=true
    export QMAKESPEC=$QTDIR/mkspecs/linux-g++
    export PATH=$PATH:$QTDIR/bin
    export MANPATH=$MANPATH:$QTDIR/man
    export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/qt/lib/pkgconfig
    This is wrong for qt4...
    I wrote this script and execute it with my user.
    After that, I was able to build my example:
    export QTDIR=/usr
    export QMAKESPEC=$QTDIR/share/qt/mkspecs/linux-g++
    export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/qt4/lib/pkgconfig
    Any explaination?
    @+

  • CW demo PID pour suppression de Following error

    Bonjour,
    J'ai déjà écrit dans ce forum, concernant un problème de retour chariot sur une table 1 axe de chez Schneeberger avec une application Labview 6.1 nécessitant une carte PCI 6035E (acquisition données), et une Multiflex PCI (remplaçant une isa sur un ancien système).
    L'erreur a été trouvée dans une séquence commandant le retour, non exécutée à cause de la non détection de la position maximale dans un sens (450000 pas ou 90 mm).
    Pourquoi elle ne la détecte pas? La position réelle se distingue de la position optimale par une erreur de position (following error).
    Sortant de Labview, et passant sous CW demo, je fais une succession de Move + et Move - sur une certaine distance, et le problème d'erreur de position se remarque également (la position de retour à la position initiale change constamment: c'est donc un problème intrinsèque à la configuration du système et non de Labview.
    Consultant le CD motion control fourni avec la carte, j'ai appris que la configuration du PID avec ses paramètres de gain proportionnel, dérivé, intégral,...conditionnait l'erreur de position.
    Seulement, il ne donne pas de piste concernant les valeurs à apporter.
    J'aimerais connaitre le programme ou l'endroit où je pourrais obtenir le moyen de trouver ces valeurs (puisque je ne peux les tester directement), voire même ces valeurs.
    Fournie en pièce jointe, une capture écran de la présence du Following error dans l'application du CW demo (les valeurs de paramètres du PID sont celles données par défaut)
    Attachments:
    CWdemoreglage.JPG ‏133 KB

    Bonjour,
    Afin d'essayer de vous venir en aide, quelle est la carte de contrôle d'axes que vous utilisez?
    Cordialement
    David D.
    Ingénieur d'Applications
    National Instruments France

  • Style de paragraphe complexe

    Bonjour à tous,
    dans mes documents, j'ai un style de paragraphe qui crée des procédures ou des désignations numérotées.
    le style, "procédure 1" place le texte en retrait de 22 mm à gauche mais avec la première ligne ayant un retrait de -7 mm pour placer le chiffre de chaque procédure.
    le chiffre est entre parenthèses (1) pour les définitions  et entre crochets [1] pour les procédures et systématiquement en caractères gras
    (exemple)
    [1] Démonter les vis du couvercle
    [2] Retirer le couvercle et sortir les
           pignons intermédiaires.
    est-il possible d'inclure dans le style de paragraphe, une fonction qui mette en gras, les chiffres et caractères contenus dans les premiers 7 mm de la première ligne et laisse en caractères normaux le reste du texte de ce paragraphe.
    j'ai consulté toutes les possibilités de configuration d'un style de paragraphe mais je n'ai rien trouvé
    J'ai oublié de préciser que j'utilise Indesign Cs6 sur Pc wondows
    Merci de vos commentaires

    OK… Comme je te le faisais remarquer dans ma précédente réponse, ta séquence de styles imbriqués ne peut pas fonctionner car il n'y a pas de retours forcés, mais des vrais retours. Certains les appellent retours chariot, saut de paragraphe. Ils sont symbolisés par ce caractère : ¶. Les retours forcés apparaissent comme ceci : ¬
    Tu te compliques la tâche inutilement. Tu as besoin d'un style de paragraphe et de deux styles de caractère. Dans ton style de paragraphe, dans l'onglet Retrait et espacement, tu vas définir un retrait à gauche de 7 mm et un retrait négatif de -7 mm sur la première ligne. Dans l'onglet Tabulations, tu indiques une tabulation à 7 mm.
    Mais j'ai l'impression que tu l'avais déjà fait. Tu appliques ensuite le style GREP qui sert à passer les chiffres entourés de crochets ou de parenthèses en gras. En ce qui concerne les premières lettres des phrases en capitales, la séquence de styles imbriqués que je t'ai proposée fonctionne bien sauf pour la toute première lettre du paragraphe, celle qui suit la tabulation. Tu peux donc utiliser le même style de caractère (celui qui est défini en caps) comme style GREP et faire en sorte que ce style de caractère s'applique à n'importe quelle lettre à la condition que cette lettre soit précédée d'une tabulation.
    Voici d'abord la capture d'écran des styles imbriqués :
    et la syntaxe pour capitaliser la première lettre :
    (?<=\t)[\l\u]
    dont voici une capture, avec également la syntaxe du style GREP pour graisser les repères.
    Je m'aperçois que je n'ai pas répondu à la dernière question concernant l'ajout d'un point final. Là, il s'agit de remplacer rechercher : les styles GREP ont pour fonction de mettre en forme du texte existant, pas d'en ajouter. Tu peux effectuer ce rechercher-remplacer, mais il a l'inconvénient d'ajouter un point final même s'il y en a déjà un. Ceci dit, on peut ensuite lancer un autre rechercher-remplacer pour enlever 2 points successifs.
    Je redis aussi ici que tu aurais tout intérêt à explorer les possibilités qu'offre la numérotation automatique d'InDesign (partie Puce et numérotation des styles de paragraphe).

  • [WRT300N+WPC300N]: Chariot Performance is Poor

    I got a WRT300N router and a WPC300N carbus wireless card yesterday.
    And I test them under a clean environment (no other wireless devices around).
    The best result I can get in chariot is 35Mbps, which is not good enough.
    I don't understand. Did I do something wrong?
    My questions are:
    1. Do these device really can reach 270Mbps?
       If not, what is the best result I can get? 
    2. What is the best way to arrange 3 antenna of the router?
       All in one direction? Or in different directions separately?
    3. If I use WMP300N (PCI) instead of WPC300N (Carbus) as wireless client.
       Will the performance be improved? (WMP300N's antenna seems much stronger)
    4. Is there something I can do to improve my performance with these devices?
    Thanks~~

    Have you tried Chariot's High_Performance_Throughput.scr script?  This is what I use to test MIMO.  I get TP as high at 82 Mbits/sec at 20 feet with the WRT300N connected to a WPC300N client.  The TP is about half that with plain old Throughput.scr.

  • Pourquoi apple ne fait aucun retour après une enquête satisfaction client ? dommage...

    Bonjour,
    En général, une marque qui se dit premium fait des retours sur les enquètes satisfation.
    Dommage que ça ne soit pas le cas ici.
    J'ai été consulté après avoir fait réparer mon vieux macbook en vu de le revendre pour acheter le pro retina.
    Vu l'état dans lequel m'a été rendu mon ancien modèle, je ne pense pas me tourner vers apple pour mon prochain ordinateur.
    Le personnel de l'apple store était plutôt sympa mais le matériel rendu était loin de mes attentes.
    L'intervention concernait le changement de la coque intérieure et de l'entourage d'écran.
    - Le trackpad (qui fonctionnait parfaitement) a été changé sans raison.
    A première vue une une bonne initiative d'apple mais finalement le nouveau étant déféctueux, je me demande pour quelles raisons apple m'a demandé mes identifiants si ce n'est pour vérifier que le matériel fonctionne après l'intervention.
    - L'entourage d'écran est mal fixé. Il y a du jeu en bas de l'écran et la fixation d'origine semble même cassée. (comment peut-on intervenir sur un produit et le rendre cassé en imaginant que le client ne s'en rendra pas compte?).
    - Enfin, un détail, le macbook est rendu extremmement sale, les pièces neuves semblent salies par du sable ou de la terre (étonnant).
    Donc je n'ai qu'un mot pour le SAV.
    Dommage.

    Vous devriez rechercher vos réponses dans le forum d'iTunes, pas dans celui-ci.

  • Problème de retour à la ligne avec un get.vi

    Bonjour
    Je dois effectuer une communication en envoyant un url et en récupérant un fichier XML
    J'utile pour cela le bloc GET.vi qui me retourne bien le fichier voulu. J'utilise ensuite le bloc Mach Pattern avec un mot clé pour récuper l'information voulue dans mon fichier XML (un ID dans mon cas). Le problème est qu'à la sortie (after substring) il me fait un retour à ligne avant mon ID.
    Le problème est quand je réutilise mon ID pour recréer une chaîne de caractères pour envoyer de nouveau un url, il me fait un retour à la ligne juste avant.
    PS : je faisais la même opération avec les blocs Datasocket et cela marchait bien, pas de retour à la ligne mais de temps en temps l'erreur 1184, c'est pour cela que je voulais essayer cette méthode
    Merci d'avance
    Pièces jointes :
    labview.docx ‏164 KB

    pas de soucis. Dis moi juste si c'est bon comme ca. Je suis pas sûr que j'ai fait juste
    Pièces jointes :
    sous-programme_load_chauff_sol.vi ‏14 KB

  • Références croisées (retour)

    Bonjour à tous,
    après plusieurs heures de recherche, j'ai enfin réussi à placer des références croisées dans un livre, ça marche parfaitement dans le PDF crée MAIS !!!!!!
    dans un livre de 92 pages divisé en 6 chapitres indépendants, si dans le chapitre 1, page 14, je crée une références croisée avec la page 56 du chapitre 3, pas de problème dans le PDF, j'accède à la page 56, mais je ne sais pas comment revenir simplement à la page 14 (évidemment, si je fais attention à la page de départ, dans acrobat, je peu entrer le numéro de la page de départ, mais ce n'est évident quand on lis)
    Comment peut-on faire pour revenir simplement dans la page de départ ?
    Existe-t-il une fonction permettant de garder en mémoire la page de départ et y revenir sans problèmes ?
    je n'ai rien trouvé dans les lectures que j'ai pu faire.

    Bonsoir.
    Ce type de modifications évoluées dans le pdf devra être réalisé, il me semble, directement depuis acrobat professionnel.
    Vous cherchez à émuler le fonctionnement d'un bouton retour, or cela correspond à la commande de menu : affichage/navigation/afficher la vue précédente (il me semble)
    Il vous faudra donc créer un bouton, ou assigner cette action en demandant d'exécuter une commande de menu.

  • Panne iphone 4s adresse retour

    Puis je savoir l'adresse pour retour  iphone en panne sous garantie? Merci

    To rule out a software issue, set your phone up as new device, as explained in this article:
    Use iTunes to restore your iOS device to factory settings - Apple Support
    If this does not work, visit an Authorized Apple Service Provider or contact Apple to get it serviced. If Apple replaced your battery, it might still be covered by a warranty period for the replaced battery.
    iPhone - Contact Support - Apple Support

  • Je n'arrive pas à avoir le bouton de retour en arriere lorsque je choisis la barre firefox avec Sidewiki, orthographe traduire, Gmail etc

    Lorsque je choisis la barre firefox avec google earth, desktop gmail articles d'actualités partager etc, cela me supprime l'autre barre avec le bouton de retour en arrière sur les sites internet; je voudrais d'autre part ajouter le surlignage, le changement de caractère etc

    In Firefox 3.6 on Windows you can hide the menu bar via "View > Toolbars" or via the right click context menu on a toolbar.
    Press and hold the Alt key down to bring up the menu bar.
    Go to "View > Toolbars" or right-click the menu bar or press Alt+V T to select which toolbars to show or hide.
    See also [[Menu bar is missing]]
    Pour apparaitre la barre de menus, appuie sur la touche Alt+A et T (Affichage > Barres d'outils)
    Alt+A > T > M : Barre de menus
    Alt+A > T > N : Barre de navigation
    Alt+A > T > B : Barre personnelle (marque pages)

  • Iphone 4S : problème de réception 3G après retour de l'étranger

    Bonjour,
    J'ai un Iphone 4S avec un bumper et suis chez Orange avec un abonnement français. J'habite à la frontière Belge et je capte le réseau Orange français dans une pièce chez moi donc je bloque mon Iphone sur le réseau Orange.
    Comme je suis à la limite mon Iphone fait sans arrêt l'aller retour entre réseau indisponible et orange quand je bouge dans la maison et cela me convient.
    Mais quand je reviens en France pour le travail (tous les jours), je suis obligé de redémarrer mon Iphone pour que la 3G fonctionne (le logo 3G est bien affiché mais il n'y a pas de connexion). Et après l'avoir redémarré, la 3G fonctionne à nouveau.
    C'est vraiment embettant, y-a-t-il un moyen de résoudre ce problème ?
    Merci d'avance
    Thomas

    Personne pour donner son avis ?

  • Quelle est la période de retour à l'iPhone 5 magasins en France?

    What period of return to the store Iphone 5 in France?

    erreurs Impossible de synchroniser de la musique et son via itunes à l'iphone 5. Quelle est la solution?

Maybe you are looking for

  • Where should i call the rfc function module? in xi or in r/3

    where should i call the rfc function module? for the synch scenario: file < -- >  xi <---> rfc i know the type of rfc is tcp/ip; but i'm not sure with the followings, and with some trials i can not even see any message via rwb even all the setting ca

  • Sequencing machine OS language

    is it OK to use an app sequenced on Win7 En sequencer on Win7 French ? Thx. "When you hit a wrong note it's the next note that makes it good or bad". Miles Davis

  • Apple Application Support - What and why does this exists?

    So I welcomed iTunes 9 on my computer and iOS4 on my music player (latter to a great commonly known regret). Now here is my question: What is the "Apple Application Support" and why iTunes 9 must have it to run? (Note: Normally many software products

  • MAX Simulated Device SCXI-1001

    I open "Measurement and Automation Explorer". Right click on "Device and Interfaces". Select "Create New". Select "NI-DAQmx Simulated Device". Press "Finish". Expand "SCXI Chassis". Select "NI SCXI-1001". Press "OK". Window "Create New SCXI Chassis"

  • Bulgarian as an input language for BlackBerry Q10

    Please add Bulgarian, a language of the European community, as an input language for BlackBerry smartphones. It's a great disappointment to find that your home language is not available on your phone, especially as Bulgaria has been part of the EU fo