Extract First Zero Crossing After Peak

I have a signal that approximates a noisy sine wave which I want to broadly break down into segments of negative and positive slope. As peak detection on the original trace is messy and the section of positive slope is complex, I plan to extract these features by working with the differential (the maximum velocity of the principle waveform is largely invariant and can be easily thresholded from the lower amplitude waveforms). I can easily detect the MIN peaks in the differential and now want to walk forward in the dataset to the first transition across the zero line and extract this timepoint to a new dataset. Does anyone have a script that I can modify for this purpose? Essentially, I want to trigger with an existing timepoint, iterate to the first timepoint where ti times ti+1 is negative and then write ti+1 to a new waveform.  I also want to walk backwards to the the first transition across the zero line and extract this timepoint to a new dataset but this is secondary.
Thanks!
Matt
Solved!
Go to Solution.

Sorry for not responding earlier about my progess.
I was able to extract the timepoints using your advice but now want to go back to the original data and extract the y-values. For some reason, my for loop below completes but only writes no-values? Extracting the x and y values in parallel won't work because I generated by x-value subset using the differential of the original dataset.
The general question is as follows:
Given a common timepoint, find the y-value associated with that timepoint in another channel.
FOR i=1 TO InitContrLength
   ChDx(i, InitContrY) = ChDx(ChDx(i,InitContr)/Interval, Filtered)
   Next
InitContr is an array of discontinuous time values which represent a subset of the original time series. My for loop is designed to iterate through the InitContr, converting them to an integer representing the appropriate row in my original dataset (Filtered) by dividing the time value by the step interval, and then writing the value from Filtered (which is an array of y-values) that corresponds to that row to InitContrY.
Definitions in case the above is confusing
InitContr = Channel containing a subset of time values
Filtered = Channel containing all y-values from the original waveform
Interval = step width of the original waveform
InitContrY = New Channel that I want to write y-values to that correspond to InitContr x-Values
Any ideas or links to a debugging primer would be greatly appreciated. If I could iterate through my for loop and visualize the variables in real time, I think I could figure this out myself.
Matt

Similar Messages

  • Zero-cross​ing function

    Hi,
    I found this zero-crossing function in one of the old forums and I'm trying to understand how it works. In my case I have two sine waves, instead of one square pulse but I can't really figure out how this function works. I know that first, the waves are generated then you get their attributes, the data values go into the zero-crossing detector that controls the case statement but I don't know how the trigger time and time interaval are used to build the array, I think the timestamp outside the 'for' loop is for storing the previous itteration of the zero-crossings but I'm not really sure.I have no clue what happens in the final step before the zero-crossing times are subtarcted, as in the threshold array and so on. I've read how each function individually but I can't add the blocks together.
    So I was wondering if someone could please explain how this works?
    Thanks
    Solved!
    Go to Solution.
    Attachments:
    Zerocros.png ‏131 KB

    Adding to what crossrulz said, it helps to understand what the code you're looking at is.
    It would appear you don't quite understand what t0 and dt are.  t0 is the time at the initial point in the waveform.  This can be a wide variety of times rather than simply 0.  dt is the amount of time between samples.  If we multiply the iteration by dt, we know how much time has passed since the first sample.  After 0, 0dt is the same as 0s.  From there, 1dt, 2dt, 3dt, etc can all be calculated to a value measuring time.  But, it's only measuring "time since the first sample."  If it's only measuring that, the timestamp could be meaningless.  If you want to convert the time since first sample to an actual time, you need to add the initial time to it.  As an example, if dt is 1s and t0 is 4:00:00pm, after 3 samples we are at 2dt so 2 seconds.  Do we care about 2 seconds or 4:00:02?
    The "big timestamp array" is being fed into what is called a shift-register.  You can use this register to pass values between iterations of a loop.  Before the loop, we feed an uninitialized array into the shift register.  The first time the build array is used, it's fed an empty array and the first timestamp to save.  This is then output to the shift register on the right side of the loop.  This value is passed to the next iteration.  It will persist until we reach the build array for the second time.  Now, the 1 element array is fed into the top input of the build array and a new timestamp is added to the end of the array.  This will continue with the n-sized array being fed to the top input and the newest timestamp being added to the end to make an array of size n+1.  If we want to maintain all of the timestamps, we need logic similar to this.  You could plug it into the bottom and the new timestamp to the top.  This would put the newest timestamps in the first element of the array.  You just want to include the old array so you keep all of the timestamps instead of just the most recent.

  • How to measure time difference between zero crossing of a sine wave and rise time of a pulse on a same graph?

    I have a 50Hz sine wave and a pulse signal on a same graph. The phase difference between two is between 0-90 degrees.
    Now I need to calculate the time difference between (when the sine wave crosses zero volts) and (when the pulse rises). The frequency will stay approximately same for both signals.
    The application is for a three phase generator. In simple words, when the time difference between the zero-crossing of sine wave and the pulse rises increases, that means that the load on the generator has increases.
    I am a beginner user of LabView (version 9, 2009), maybe it is a very simple problem but I've been pulling my hair out for the last few days and coudln't figure anything out. Any help would be greatly appreciated. I am using DAQ USB-6008 to measure these voltages and pulse from the generator and a sensor
    I have attached a jpg (a graph that i just made with excel to explain). The time 't' is what I am trying to measure
    Cheers
    Awais 
    Message Edited by awais.h on 03-30-2010 11:20 PM
    Message Edited by awais.h on 03-30-2010 11:21 PM
    Solved!
    Go to Solution.

    Hi
    Thanks for the code but I'm afraid it won't work. Like you said the probability of choosing a value that is on both graphs may not happen. This is something that I would like the code to do automatically.
    But I did use the previous code posted and made some modifications to it and it seems to work perfectly. Now the next thing is to be able to get just that one value that tells you the first time difference.
    Here is what I get using that code.
    As you can see from the t Values. I only need the one that is highlighted. If there is a way to filter out the rest it would be great.
    I was thinking of a while loop and as soon as the value is higher than 3E-5 it would store the number and stop the loop, but I'm not too familiar with arrays in labview.
    Here is the the code modified.
    As you can see, it wasn't that big of a modification and it still is your code.
    I will keep trying.
    Thanks for the help
    Attachments:
    FinalShockSpeed.vi ‏55 KB

  • Zero crossing, "Triggering" and XY-Graphs

    I'm trying to measure the electrical hysteresis of a sample.  The way in which I do this is by measuring two voltages within a circuit, sending them to my DAQ, and then plotting them in an XY-Graph to view the shape of the curve.  I can somewhat see the hysteresis, but II need to measure the "zero-crossings"; that is to say, the value of one function, when the other is 0, and vice versa.  So when V1 = 0, I want to know what V2 is, and when V2 = 0, I want to know what V1 is.  Seems simple enough, and I have included my VI.
    First I tried the ZeroCrossingPtbyPt, along witha Relay, which never seemed to trigger properly.
    Second, I tried using Trigger and Gate, but that seems to give inflated values.
    This VI can be tested by removing the DAQ assitant and replacing it with two "Generate Signal"(s),  with the same frequency, different amplitudes, and a small phase difference, and this will produce a similar effect without the real signals.
    Next, I am sending the raw voltage signals into a Waveform Graph.  However, it is impossible to get the traces to stay "still" on the graph.  In other words, if this were a real oscilloscope, there would be a "triggering" problem, and if the trigger were set to the proper value, the oscilloscope would be able to track the waveform without it jittering left to right in time.  Any ideas on this?  I've tried to change just about everything in the Waveform Graph with no difference.  Do I need to send in some other signal to get the graph to follow the waveform properly?  This is really important because it will tell me if my sample rate is good enough to capture the signal (a sine wave at 1 kHz).
     Finally, the hysteresis curve on the XY Graph seems to cover many cycles (periods) of the waveform, but I want it to cover only 1 cycle at a time, so it isn't so sketchy-looking.  It's very boxy as well.  So in short, the number of points it is plotting is fine, but it is not plotting them quickly enough, since I'd like all of the points it plots to be over a single period of the waveform.
    Please help!  Thanks in advance.
    Attachments:
    hysteresis.vi ‏176 KB

    As it turns out, the issue was that I was not collecting enough samples at a high enough sample rate from the DAQ.  This is why it worked with "Generate Signals" and did not work with the DAQ Assistant.  Because there were not enough samples, the apparent zero crossing was occuring either too early or too late, leading to an incorrect value.  Therefore, the best solution when it comes to finding zero crossings is make sure your # of samples, and sample rate are high enough to get an accurate measurement.
    As a result, this is why my XY Graph was showing blocky hysteresis loops, rather than nice smooth curve hysteresis loops.  The data being sent to it was not quick enough, and therefore the XY- Graph connected the dots between the points that it was sent, yielding a truncated loop, which appeared blocky or sketchy.
    On the issue of triggering, this can apparently be set within the DAQ Assistant in the "Triggering" tab; the key is chosing the correct channel to trigger from, and a reasonable trigger level.  This was my problem, and this is why my Graph appeared to jitter.  It was not the graph itself, but the DAQ Assistant that did not tell it the proper triggering timing.
    So, in short, I solved my own problems, but I leave this as a record for those who encounter similar problems in the future.
    Thanks.

  • Numbers '09: Extract first word of a cell

    I'm looking for a formula that extracts the first word out of text in a cell and displays it in another cell.
    Eg, in Cell A1 I have the text "Bob likes to swim". I want "Bob" to appear in another cell.
    I've found a solution for Excel, but it doesn't transfer to Numbers.
    Any ideas?

    Hello,
    I have a contact list that I am trying to sort out and I need to separate first and last name.
    The formula given here was great for first names, but I am having trouble with the last name:
    Using this formula
    {quote}=RIGHT(O3;FIND(" ";O3)-2){quote}
    where O2 is the cell where I have my full name, gives any kind of truncated names, depending on the length of the first name. I have tried any variation for the last term (-2), but nothing satisfactory.
    Now I have found this excel formula that I am trying to adapt to numbers:
    {quote}=RIGHT(A1,LEN(A1)-FIND("*",SUBSTITUTE(A1," ","*",LEN(A1)-LEN(SUBSTITUTE(A1," ","")))))
    which should become something like that in my case:
    =RIGHT(O2;LEN(O2)-FIND("*",SUBSTITUTE(O2;" ";"*";LEN(O2)-LEN(SUBSTITUTE(O2;" ";"")))))
    if I am not mistaken about the change from commas to semi-colon
    {quote}
    Any idea to what I should do ? Ideally, what I would like to have is a formula that extracts everything that is after the first word, so as to manage the name with particle and/or the middle names....
    Thanks for your attention,
    Colin

  • Duration of a zero crossing

    Hi all,
    I m a newbie to LabVIEW and I really need some help with some zero
    crossing issues.
    I have a wave generated from the values output by a pressure sensor. I
    differentiated this wave to obtain a wave with peaks, valleys and zero-
    crossings. Then I used the sign generating vi to generate another
    square wave depending on if the value is positive negative or zero.
    What I need to do now is to find the time duration between each zero
    crossing.i.e. How much time elapses before the next zero crossing
    occurs. Any ideas how to do this ?
    Thanks and regards.

    Here's a small VI which does part of that
    Have a nice day!!!
    LabVIEW | LabWindows/CVI | TestStand
    Certified LabVIEW Architect
    Attachments:
    Duration between peaks.vi ‏18 KB

  • Help: I want to auto schedule a load using file watcher but it runs only once for the first time and after that it is not running at all

    Hi All,
    I am trying  to execute the below code as provided from one of the blogs. i am able to run the job only once based on a file watcher object(i.e. for very first time) and after that the job is not running at all and if  i schedule the job to run automatically based on interval of 10 or more minutes it is executing properly). Please let me know or guide me if i have missed any step or configuration.that is needed.
    Version of Oracle 11.2.0.1.0
    OS : Windows 7 Prof
    Given all the necessary privileges
    BEGIN
      DBMS_SCHEDULER.CREATE_CREDENTIAL(
         credential_name => 'cred',
         username        => 'XXXX',
         password        => 'XXXX');
    END;
    CREATE TABLE ZZZZ (WHEN timestamp, file_name varchar2(100),
       file_size number, processed char(1));
    CREATE OR REPLACE PROCEDURE YYYY
      (payload IN sys.scheduler_filewatcher_result) AS
    BEGIN
      INSERT INTO ZZZZ VALUES
         (payload.file_timestamp,
          payload.directory_path || '/' || payload.actual_file_name,
          payload.file_size,
          'N');
    END;
    BEGIN
      DBMS_SCHEDULER.CREATE_PROGRAM(
        program_name        => 'prog1',
        program_type        => 'stored_procedure',
        program_action      => 'YYYY',
        number_of_arguments => 1,
        enabled             => FALSE);
      DBMS_SCHEDULER.DEFINE_METADATA_ARGUMENT(
        program_name        => 'prog1',
        metadata_attribute  => 'event_message',
        argument_position   => 1);
      DBMS_SCHEDULER.ENABLE('prog1');
    END;
    BEGIN
      DBMS_SCHEDULER.CREATE_FILE_WATCHER(
        file_watcher_name => 'file_watcher1',
        directory_path    => 'D:\AAAA',
        file_name         => '*.txt',
        credential_name   => 'cred',
        destination       => NULL,
        enabled           => FALSE);
    END;
    BEGIN
      DBMS_SCHEDULER.CREATE_JOB(
        job_name        => 'job1',
        program_name    => 'prog1',
        queue_spec      => 'file_watcher1',
        auto_drop       => FALSE,
        enabled         => FALSE);
      DBMS_SCHEDULER.SET_ATTRIBUTE('job1','PARALLEL_INSTANCES',TRUE);
    END;
    EXEC DBMS_SCHEDULER.ENABLE('file_watcher1,job1');
    Regards,
    kumar.

    Please post a copy and paste of a complete run of a test case, similar to what I have shown below.
    SCOTT@orcl12c> SELECT banner FROM v$version
      2  /
    BANNER
    Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
    PL/SQL Release 12.1.0.1.0 - Production
    CORE    12.1.0.1.0    Production
    TNS for 64-bit Windows: Version 12.1.0.1.0 - Production
    NLSRTL Version 12.1.0.1.0 - Production
    5 rows selected.
    SCOTT@orcl12c> CONN / AS SYSDBA
    Connected.
    SYS@orcl12c> -- set file watcher interval to one minute:
    SYS@orcl12c> BEGIN
      2    DBMS_SCHEDULER.SET_ATTRIBUTE
      3       ('file_watcher_schedule',
      4        'repeat_interval',
      5        'freq=minutely; interval=1');
      6  END;
      7  /
    PL/SQL procedure successfully completed.
    SYS@orcl12c> CONNECT scott/tiger
    Connected.
    SCOTT@orcl12c> BEGIN
      2    -- create credential using operating system user and password (fill in your own):
      3    DBMS_SCHEDULER.CREATE_CREDENTIAL
      4       (credential_name     => 'cred',
      5        username          => '...',
      6        password          => '...');
      7  END;
      8  /
    PL/SQL procedure successfully completed.
    SCOTT@orcl12c> -- create table to insert results into:
    SCOTT@orcl12c> CREATE TABLE ZZZZ
      2    (WHEN      timestamp,
      3      file_name varchar2(100),
      4      file_size number,
      5      processed char(1))
      6  /
    Table created.
    SCOTT@orcl12c> -- create procedure to insert results:
    SCOTT@orcl12c> CREATE OR REPLACE PROCEDURE YYYY
      2    (payload IN sys.scheduler_filewatcher_result)
      3  AS
      4  BEGIN
      5    INSERT INTO ZZZZ VALUES
      6        (payload.file_timestamp,
      7         payload.directory_path || '/' || payload.actual_file_name,
      8         payload.file_size,
      9         'N');
    10  END;
    11  /
    Procedure created.
    SCOTT@orcl12c> -- create program, define metadata, and enable:
    SCOTT@orcl12c> BEGIN
      2    DBMS_SCHEDULER.CREATE_PROGRAM
      3       (program_name          => 'prog1',
      4        program_type          => 'stored_procedure',
      5        program_action      => 'YYYY',
      6        number_of_arguments => 1,
      7        enabled          => FALSE);
      8    DBMS_SCHEDULER.DEFINE_METADATA_ARGUMENT(
      9       program_name         => 'prog1',
    10       metadata_attribute  => 'event_message',
    11       argument_position   => 1);
    12    DBMS_SCHEDULER.ENABLE ('prog1');
    13  END;
    14  /
    PL/SQL procedure successfully completed.
    SCOTT@orcl12c> BEGIN
      2    -- create file watcher:
      3    DBMS_SCHEDULER.CREATE_FILE_WATCHER
      4       (file_watcher_name   => 'file_watcher1',
      5        directory_path      => 'c:\my_oracle_files',
      6        file_name          => 'f*.txt',
      7        credential_name     => 'cred',
      8        destination          => NULL,
      9        enabled          => FALSE);
    10  END;
    11  /
    PL/SQL procedure successfully completed.
    SCOTT@orcl12c> BEGIN
      2    -- create job:
      3    DBMS_SCHEDULER.CREATE_JOB
      4       (job_name          => 'job1',
      5        program_name          => 'prog1',
      6        queue_spec          => 'file_watcher1',
      7        auto_drop          => FALSE,
      8        enabled          => FALSE);
      9    -- set attributes:
    10    DBMS_SCHEDULER.SET_ATTRIBUTE ('job1', 'PARALLEL_INSTANCES', TRUE);
    11  END;
    12  /
    PL/SQL procedure successfully completed.
    SCOTT@orcl12c> -- enable:
    SCOTT@orcl12c> EXEC DBMS_SCHEDULER.enable ('file_watcher1, job1');
    PL/SQL procedure successfully completed.
    SCOTT@orcl12c> -- write file (file must not exist previously):
    SCOTT@orcl12c> CREATE OR REPLACE DIRECTORY upncommon_dir AS 'c:\my_oracle_files'
      2  /
    Directory created.
    SCOTT@orcl12c> declare
      2    filtyp utl_file.file_type;
      3  begin
      4    filtyp := utl_file.fopen ('UPNCOMMON_DIR', 'file1.txt', 'W', NULL);
      5    utl_file.put_line (filtyp, 'File has arrived ' || SYSTIMESTAMP, TRUE);
      6    utl_file.fclose (filtyp);
      7  end;
      8  /
    PL/SQL procedure successfully completed.
    SCOTT@orcl12c> -- wait long enough (may take more than one minute) for job to run:
    SCOTT@orcl12c> EXEC DBMS_LOCK.SLEEP (100)
    PL/SQL procedure successfully completed.
    SCOTT@orcl12c> -- check for results:
    SCOTT@orcl12c> SELECT * FROM zzzz
      2  /
    WHEN
    FILE_NAME
    FILE_SIZE P
    22-OCT-13 10.12.28.309000 PM
    c:\my_oracle_files/file1.txt
            57 N
    1 row selected.
    SCOTT@orcl12c> declare
      2    filtyp utl_file.file_type;
      3  begin
      4    filtyp := utl_file.fopen ('UPNCOMMON_DIR', 'file2.txt', 'W', NULL);
      5    utl_file.put_line (filtyp, 'File has arrived ' || SYSTIMESTAMP, TRUE);
      6    utl_file.fclose (filtyp);
      7  end;
      8  /
    PL/SQL procedure successfully completed.
    SCOTT@orcl12c> -- wait long enough (may take more than one minute) for job to run:
    SCOTT@orcl12c> EXEC DBMS_LOCK.SLEEP (100)
    PL/SQL procedure successfully completed.
    SCOTT@orcl12c> -- check for results:
    SCOTT@orcl12c> SELECT * FROM zzzz
      2  /
    WHEN
    FILE_NAME
    FILE_SIZE P
    22-OCT-13 10.12.28.309000 PM
    c:\my_oracle_files/file1.txt
            57 N
    22-OCT-13 10.14.08.580000 PM
    c:\my_oracle_files/file2.txt
            57 N
    2 rows selected.

  • I've installed itunes twice. It worked the first time but after I restarted my computer it kept giving me this message: Itunes was not correctly installed. Please reinstall itunes. Error 7 (Windows error 127). What's wrong?

    I've installed itunes twice. It worked the first time but after I restarted my computer it kept giving me this message: Itunes was not correctly installed. Please reinstall itunes. Error 7 (Windows error 127). What's wrong?

    See the second box in Troubleshooting issues with iTunes for Windows updates.
    tt2

  • How to get Upper cas eletter First letter and after spaceletter

    Hi,
    I have  a string like 'rama rao'
    i want out put like this  'Rama Rao'
    First letter and after space first letter also need to come capital
    Regards
    Malli S

    Hi,
    Check the below Link.
    http://www.sql-server-helper.com/functions/initcap.aspx
    This function can handle Space, comma,  or any character that appear in the middle of the string and just work fine.
    CREATE FUNCTION [dbo].[InitCap] ( @InputString varchar(4000) )
    RETURNS VARCHAR(4000)
    AS
    BEGIN
    DECLARE @Index          INT
    DECLARE @Char           CHAR(1)
    DECLARE @PrevChar       CHAR(1)
    DECLARE @OutputString   VARCHAR(255)
    SET @OutputString = LOWER(@InputString)
    SET @Index = 1
    WHILE @Index <= LEN(@InputString)
    BEGIN
        SET @Char     = SUBSTRING(@InputString, @Index, 1)
        SET @PrevChar = CASE WHEN @Index = 1 THEN ' '
                             ELSE SUBSTRING(@InputString, @Index - 1,
    1)
                        END
        IF @PrevChar IN (' ', ';', ':', '!', '?', ',', '.', '_', '-', '/', '&', '''', '(')
        BEGIN
            IF @PrevChar != '''' OR UPPER(@Char) != 'S'
                SET @OutputString = STUFF(@OutputString, @Index, 1, UPPER(@Char))
        END
        SET @Index = @Index + 1
    END
    RETURN @OutputString
    END
    GO
    SELECT [dbo].[InitCap] ( ‘rama rao’ ) AS [Title]
    Regards, PS

  • Record time of zero crossing

    I am trying to record the time for zero crossing in order to get the phase angle and inevitably get the power facto . soi was trying out a few ideas to  see if this is achievable and i came up with this . can someone tell me where i am wrong . or what to do  get the right values .. 
    Solved!
    Go to Solution.
    Attachments:
    zero crossing in waveform.vi ‏17 KB
    Zero Crossing.PNG ‏21 KB

    1. You need to pass the waveform into the Get Waveform Time Array.
    2. No need to wire up the N on the FOR loop since you are using Autoindexing tunnels.
    3. The Conditional Indexing tunnel is your friend here.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines
    Attachments:
    zero crossing in waveform_BD.png ‏20 KB

  • When using a chart in Pages, the first zero is deleted in any number beginning with a zero

    When using a chart in Pages, the first zero is deleted in any number beginning with a zero (for example, 055). How do I stop this?

    The leading zero in the value 55 is unnecessary, so Numbers eliminates it for cells formatted as Number or Automatic. A cell formatted as Text prior to making the entry will take whatever you type into it and keep it as entered. A cell formatted as Numeral System will display as many places as you tell it to, and will add zeros as necessary without your even having to type them in.
    Jerry

  • First operation confimed - after system allowed changed order qty

    Hi,
    Production order first operation confimed - after user go change the produciton order qty, how to control this one, we need to config once first operation confirmed can't change the order qty. pls advise
    ex : when create production order 10001234 qty 100 pcs, has oper 10,20,30,40
    shop floor confirmed operation 10th 100pcs, after user change the qty 200 pcs, how to control this issue? pls
    Thanks,
    Sankaran

    Hi Muthu
    No need of exits , this can be done using status profile.
    1>Create status profile using BS02.
    2>give status no 10 as initial & 20 as the next .
    3> in lowest & highest for 10 give as lowest 10 & highest 20 . For status 20 give lowest & hightst both as 20.
    4> double click on status 10 & click on create & set what all business transactions u want to allow when the status is 10.
    5> double click on 20 & tick on the radio button set against the partial confirmation button so that when the order is partially confirmed the status is automatically set to 20. in this status do not allow change prod order business transaction.
    This should solve ur problem . Explore more about status profile in spro>production>SFC> order>create status profile documentation.
    Thanks & regards
    Prasad
    Reward if useful.

  • Retain trailing zero's after decimal

    Hi,
    i have a requirement to retain trailing zero's after decimal....
    is it possible?
    version: 9.2.0.7
    example: select 150.200 from dual;
    we will get 150.2 as output.
    but i need 150.200 as the output...
    how would i do this?

    oraDBA2 wrote:
    Hi tony,
    sorry, that is not the constant value...that is a variable based on the value, what user enters with the decimals.......if i understood you correctly,
    it seems like you will need to use char or varchar2 datatypes in that table to start doing what you would like to do in the way you wan't it.
    and still you have option to apply to_number and to_char on that varchar2 column.
    SQL> create table b (charr varchar2(15) );
    Table created.
    SQL>
    SQL>
    SQL> insert into b (charr) values ('1000.000');
    1 row created.
    SQL> commit;
    Commit complete.
    SQL> select* from b;
    CHARR
    1000.000
    http://stanford.edu/dept/itss/docs/oracle/10g/appdev.101/b10795/adfns_ty.htm#1006325

  • Settings Get Zeroed out after File Export

    I just noticed that out of a group of about 110 JPGs I was editing tonight, about 5 of them had their Develop Settings zeroed out after I exported the files.
    Examples:
    1.  One file's Fill Light went from 14 to 0 after File Export.
    2.  Another file's Fill Light went from 17 to 0 after File Export.
    3.  Still another file's Black went from 3 to 0; its Brightness went from +5 to 0; it's Contrast went from -1 to 0....all 3 things on the same file zeroed out.
    4.  Still another file's Black went from 1 to 0, and its Contrast went from -3 to 0.
    5.  Another file was rotated by .28.  After exporting, the rotation in the history went from .28 to 0.
    One other problem I saw with at least 2 of these files (different than the 5 above), I had created virtual pictures for these 2 and exported them as TIFFs to Photoshop CS3.  After the TIFF file was updated with CS3, it automatically was reimported to LR.  There is no "Import" listed in the history, nor is there any "Created Virtual Copy" in the history.
    I don't think I'm doing anything wrong; again, there have only been 5 out of about 110 JPGs for which as happened.

    I think I have that box checked, but I'm not sure where to find it.  I seem to recall having checked something like this before, but, again, I just can't
    seem to find where it is.  I've checked in Preferences and do not see it, as well as other places.
    Anyway, I do not export files to CS3 very often, but I know that every time I do, the edited file gets added back into the LR Catalog when I close out the file in Photoshop CS3.  I typically export these files to CS3 keeping the LR adjustments.
    I originally had this set of images sorted by File Name.  I did that because within this set are pictures taken from 2 different cameras, with two completely different types of file names.  I wanted only to work on the images from one camera at a time.  While sorted by File Name, the edited file does get added to the Catalog, stacked upon the original file....so, yes, they are side by side.
    I did try sorting by Capture Time, but that didn't make any difference.
    Because my other problem of settings being zeroed out appeared to be "fixed," I was hoping this problem also would be fixed.  But when I tried the same procedure as last night (only with the files sorted by Capture Time instead of by File Name), the same thing happens...there is no "Import" listed in the History panel.
    What has been "fixed," however, is that for those few files that I made a Virtual Copy of, the History panel now shows "Create Virtual Copy."  I did not do anything to these files.  Perhaps the reboot of my computer fixed this.  I really don't know.
    As mentioned, I do not export files very often to CS3, so this problem may have always existed (not showing "Import").
    Thanks for your reply....I'll watch for more in the future, but because the problem happened again this morning, I think it is perhaps a software bug.

  • Extract First letter from each word

    Hi All,
    I have a requirement to extract first letter of each word as shown in below example
    input: abcd output: a
    input: abcd efgh output: ae
    input: abcd efgh ijkl output: aejany help will be highly appreciated
    I am on db version 11g

    jeneesh wrote:
    Just a note - This will not take care of spaces at the end of the line..You're right, and not just spaces but any non-word characters. Here is fixed solution:
    with t as (
               select 'abcd ' str from dual union all
               select 'abcd efgh.' from dual union all
               select 'abcd efgh ijkl,' from dual union all
               select ' a abcd efgh ijkl! ' from dual
    select  str,
            '[' || regexp_replace(str,'\W*(\w)(\w*)|(\W*$)','\1') || ']' initials
      from  t
    STR                 INITIALS
    abcd                [a]
    abcd efgh.          [ae]
    abcd efgh ijkl,     [aei]
    a abcd efgh ijkl!  [aaei]
    SQL> BTW, oldie_63's solution takes care of spaces but not:
    with t as (
               select ' abcd' str from dual union all
               select '.abcd efgh' from dual union all
               select ',abcd efgh ijkl' from dual union all
               select '! a abcd efgh ijkl' from dual
    select  str,
            '[' || trim(regexp_replace(str,'(\S)\S*\s*','\1')) || ']' initials
      from  t
    STR                INITIALS
    abcd              [a]
    .abcd efgh         [.e]
    ,abcd efgh ijkl    [,ei]
    ! a abcd efgh ijkl [!aaei]
    SQL> Also, OP needs to clarify what to do with hyphenated words:
    SQL> with t as (
      2             select 'sugar-free' str from dual
      3            )
      4  select  str,
      5          '[' || regexp_replace(str,'\W*(\w)(\w*)|(\W*$)','\1') || ']' initials
      6    from  t
      7  /
    STR        INITIALS
    sugar-free [sf]
    SQL> with t as (
      2             select 'sugar-free' str from dual
      3            )
      4  select  str,
      5          '[' || trim(regexp_replace(str,'(\S)\S*\s*','\1')) || ']' initials
      6    from  t
      7  /
    STR        INITIALS
    sugar-free [s]
    SQL>Or words like:
    SQL> with t as (
      2             select 'O''Reily' str from dual
      3            )
      4  select  str,
      5          '[' || regexp_replace(str,'\W*(\w)(\w*)|(\W*$)','\1') || ']' initials
      6    from  t
      7  /
    STR     INITIALS
    O'Reily [OR]
    SQL> with t as (
      2             select 'O''Reily' str from dual
      3            )
      4  select  str,
      5          '[' || regexp_replace(str,'\W*(\w)(\w*)|(\W*$)','\1') || ']' initials
      6    from  t
      7  /
    STR     INITIALS
    O'Reily [OR]
    SQL> SY.

Maybe you are looking for

  • Acrobat pro 10.1.9 stopped being able to OCR scans

    Acrobat pro 10.1.9 stopped being able to OCR scans. I am running Windows 7 (64-bit) and I have OCRd several hundred pages of test over the last 5 months, but receintly I get a "Some of the pages couldn't be OCRed"  and "Acrobat could not perform reco

  • Youtube video corrupts Z10's video playback

    I was playing this video on my Z10: https://www.youtube.com/watch?feature=player_embedded&v=jLxZlwxOdd0#! After about an hour I got this error: There was an error receiving video data. The server may have stopped sending. Please try to restart the vi

  • DVD Recordable Disc Aren't Recognized - HELP

    Hello, HELP! As the title suggests DVD Recordable Disc aren't recognized by my PowerBook. Music CDs - Work DVDs (R2 and R1) - Work CD-R - Work CD-RW - Work But.. DVD+(or)-R won't work. The disc spins in the drive as if reading, then spins again. But

  • How to determine termination point of call

    We're using UCCE 7.2 and are moving to 9.0 in a few weeks.  One of the questions that we have had is how to determine the termination point of a call.  I'm looking for a way to report through either the HDS or call manager whether the agent or the ca

  • I7 17" shuts down and won`t reinstall with original Discs. HD failure?

    hi ,,,first time post here .....thanks for any help . My Macbook Pro 17" 7200 RPM 500 GB laptop is out of commision . I think it was running 10.6.7 but I can`t check anymore I can`t get it to reinstall and I`ve already erased the HD in an attempt to