Getting the max length

i am using pl/sql and i need to do some validation regarding the max length of the string. but the problem is that i have to refer back to the database for the length so that if the database change, my code don't change.
is there any way to get the max length in the field of the table?
eg:
lets say i got a table call Person with column Name(varchar2(66)) and Sex(char(1))
so how i retrieve the max length of the field Name?
thanks

It's quite simple. We can use the PL/SQL %TYPE in our declarations. Check it out...
SQL> CREATE TABLE small1 (col1 NUMBER, col2 VARCHAR2(3))
  2  /
Table created.
SQL>
SQL> CREATE OR REPLACE PROCEDURE small1_api (pv_string IN VARCHAR2)
  2  AS
  3      l_col2 small1.col2%TYPE;
  4  BEGIN
  5      l_col2 := pv_string;
  6      INSERT INTO small1 (col1, col2)
  7      VALUES (a12.NEXTVAL, l_col2);
  8  EXCEPTION
  9      WHEN value_error THEN
10          dbms_output.put_line('oops! string is too long');
11  END;
12  /
Procedure created.
SQL> EXEC small1_api('APC')
PL/SQL procedure successfully completed.
SQL> EXEC small1_api('APC4')
oops! string is too long
PL/SQL procedure successfully completed.
SQL>
SQL> ROLLBACK
  2  /
Rollback complete.
SQL> ALTER TABLE small1 MODIFY (col2 VARCHAR2(4))
  2  /
Table altered.
SQL> ALTER PROCEDURE  small1_api COMPILE
  2  /
Procedure altered.
SQL>
SQL> EXEC small1_api('APC4')
PL/SQL procedure successfully completed.
SQL> EXEC small1_api('APC45')
oops! string is too long
PL/SQL procedure successfully completed.
SQL> Cheers, APC

Similar Messages

  • How can i get the max rpm from cpu fan??

    how can i get the max rpm from my cpu cooler regarding that i don't have a speed controller attached to the cpu fan ,,, ??  please make things clear for me
    thanks

    if you have not reduced it by using a speed controller either hardware or software or by the 7v mod its already going as fast as it will at 12 v dc you cannot speed it up only slow it down
    need more air get a different cooler/fan

  • How to get the max value of a set of percentage values?

    Hi,
    I've tried to get the max and min value of a set of calculated percentage values. Such as
    Jan Feb March Apr May Jun    Min  Average   Max
    0,5 0,8  1,1      0,4 1      0,6     0,4   0,7         1,1
    The average value works fine. But with "min" and "max" I have a problem.
    I've tried to get the value with the following ways:
    - Create a new calc. keyfigure and make a sum of all values: (Jan + Feb + ...) and set the calculation in key figure properties to Min/Max.
    - Create a new calc. keyfigure and make a sum of all values and set the aggregation to Min/Max
    - Create a selected keyfigure with a filter to the necessary periods and set a calculation to Min (Aggregation is not possible here)
    - Create a new cal. keyfigure with all periods and the function Min. e.g. min(Jan, (min Feb, (min (....)
    None of this solutions provides the right min and max value. When I use an amount value (e.g. Euro) instead of these percentage values the keyfigure with the min and max function works. The others all provide wrong values.
    Is there a solution to get the right min and max value???
    It would be a great help when you have any hints.
    Thanks
    Claudia

    Hi Aduri,
    thanks for your answer but your solution doesn't work.
    The problem is that the periods are defined in a structure with offsets such as
    - period-11
    - period-10
    - period
    in this structure elements there is also the keyfigure "netvalue" defined.
    In the rows of the report there is another characteristic such as company code.
    Is there a solution to find the max and min values of the period values for each company code? Or must I change the data model e.g. copy the keyfigure and make a new keyfigure with another aggregation level?
    Thanks for any hints!
    Claudia

  • Getting the unscaled length of

    I'm developing a graphing application with FLEX 3 that will
    be embedded into a PDF document (version 9). The graphing SWF is
    pretty much finished, but I want to have greater control over the
    scaling on the axis. If I graph the parametric equations x=cos(t)
    and y=sin(t), the trace of these equations appears as an ellipse.
    Is there some what if getting the unscaled length of the vertical
    axis and the horizontal axis in pixels, so I can compute the exact
    aspect ratio of the axes. If that is known, I can rescale using
    scaleX and scaleY. Can anyone give me pointers?
    dps

    You can simply iterate through each line in text to get the widest line. Something like this:
    Main();
    function Main() {
        var text = app.selection[0],
        minLength, maxLength, start, end;
        for (var i = 0; i < text.lines.length; i++) {
            start = text.lines[i].characters[0].horizontalOffset,
            end = text.lines[i].characters[text.lines[i].characters.length-1].horizontalOffset;
            if (minLength == undefined || start < minLength) {
                minLength = start;
            if (maxLength == undefined || end > maxLength) {
                maxLength = end;
        var length = maxLength - minLength;
        $.writeln(length);
    But this approach seems to be a little less precise than creating outlines since (I guess) it measures up to the beginning of the last character; discretionary hyphens, line brakes, etc. are not included into the measurement.

  • Dynamically get the Max value from table and insert max value + 1 in Target

    Hi All, I have a requirement given below, need help in building a solution for this: A mapping that will get the dynamically get the max value(Basically a number) from table , this target table is used by many other concurrent jobs and updated very frequently. My requirement is to get max value from this target table dynamically (Using dynamic look up) and then have an expression to increment by 1 and then load it to Target.I tried using SELCT max(col1) from target in dynamic look up override but this does not seem to work.Any work around here? I dont insist on using a SQL transformation here as Production DB could have 3 Million + records! Thanks in advance, -KRB

    Q/微信859034112办理科廷/ECU/MU/西澳大学毕业证成绩单及真实使馆教育部认证/永久可查Q/微信859034112办理USYD/UNSW/MQ/UTS/Monash/悉尼大学毕业证成绩单及真实教育部认证专业面向澳洲留学生提供以下服务: 一:毕业证、成绩单等全套材料,从防伪到印刷,从水印到钢印烫金,水印底纹。二:真实使馆认证(留学人员回国证明),使馆存档可通过当地使馆查询三:真实教育部认证,教育部永久存档,教育部留服网站永久可查 四:真实留信认证,留信网入库存档,永久可查  现在教育部认证办理已经不需要提供回国证明(使馆认证),如无需要,请注意办理流程!联系人:kevin  QQ: 859034112     微信:859034112如果您是以下情况,我们都能竭诚为您解决实际问题:1、在校期间,因各种原因未能顺利毕业,拿不到官方毕业证; 2、面对父母的压力,希望尽快拿到; 3、不清楚流程以及材料该如何准备; 4、回国时间很长,忘记办理; 5、回国马上就要找工作,办给用人单位看; 6、企事业单位必须要求办理的; 请联系英华教育客服kevin,专业负责为您排忧解难!资深业务!联系人:kevin    QQ: 859034112      微信:859034112 澳洲各大高校均可办理,样板齐全。 悉尼大学 TheUniversity of Sydney  新南威尔士大学TheUniversity of New South Wales  墨尔本大学 The University ofMelbourne  阿德莱德大学 Adelaide University   莫纳什大学 Monash University   昆士兰大学The University of Queensland    西澳大学 The University of WesternAustralia  澳大利亚国立大学 The Australian National University   麦考瑞大学 Macquarie University   纽卡斯尔大学 TheUniversity of Newcastle 卧龙岗大学 University of Wollongong  格里菲斯大学 Griffith University   佛林德斯大学 Flinders University  塔斯马尼亚大学 University of Tasmania  西悉尼大学Universityof Western Sydney   邦德大学Bond University    迪肯大学 Deakin University  悉尼科技大学 University of Technology ,Sydney    科汀科技大学 Curtin University of Technology  墨尔本皇家理工学院 RMIT University  昆士兰科技大学QueenslandUniversity of Technology    拉筹伯大学 La Trobe University  莫道克大学 Murdoch University  堪培拉大学 University of Canberra 旋宾科技大学 Swinburne University of Technology南澳大学Universityof South Australia  中央昆士兰大学 University of Southern Queensland   查尔斯特大学  Charles SturtUniversity  詹姆斯库克大学 James Cook University       圣母大学 Notre Dame  新英格兰大学 The University of NewEngland     南昆士兰大学  Universityof Southern Queensland  澳洲天主教大学 Australia CatholicUniversity巴里迪大学Universityof Ballarat  埃迪斯科文大学 Edith Cowan University  南十字星大学 Southern Cross University  阳光海岸大学 University of Sunshine Coast  维多利亚大学VictoriaUniversity   北领地大学 NorthernTerritory University诚招代理:本公司诚聘当地代理人员,如果你有业余时间,有兴趣就请联系我们。敬告:面对网上有些不良个人中介,真实教育部认证故意虚假报价,毕业证、成绩单却报价很高,挖坑骗留学学生做和原版差异很大的毕业证和成绩单,却不做认证,欺骗广大留学生,请多留心!办理时请电话联系,或者视频看下对方的办公环境,办理实力,选择实体公司,以防被骗!  办理悉尼大学USYD毕业证Q/微信859034112成绩单学历认证 University of Sydney 办理新南威尔士大学UNSW毕业证Q/微信859034112成绩单学历认证 University of New South Wales 办理墨尔本大学Melbourne毕业证Q/微信859034112成绩单学历认证 University of Melbourne 办理昆士兰大学Queensland毕业证Q/微信859034112成绩单学历认证 University of Queensland 办理麦考瑞大学MQU毕业证Q/微信859034112成绩单学历认证 Macquarie University 办理莫纳什大学Monash毕业证Q/微信859034112成绩单学历认证 Monash University 办理澳洲国立大学ANU毕业证Q/微信859034112成绩单学历认证 Australian National University 办理澳洲天主教大学ACU毕业证Q/微信859034112成绩单学历认证 Australian Catholic University 办理悉尼科技大学UTS毕业证Q/微信859034112成绩单学历认证 University of Technology Sydney 办理查尔斯特大学CSU毕业证Q/微信859034112成绩单学历认证 Charles Sturt University 办理格里菲斯大学Griffith毕业证Q/微信859034112成绩单学历认证 Griffith University 办理科廷大学Curtin毕业证Q/微信859034112成绩单学历认证 Curtin University 办理西悉尼大学UWS毕业证Q/微信859034112成绩单学历认证University of Western Sydney 办理澳洲纽卡斯尔大学Newcastle毕业证Q/微信859034112成绩单学历认证 University of Newcastle 办理昆士兰科技大学QUT毕业证Q/微信859034112成绩单学历认证 Queensland University of Technology 办理皇家墨尔本理工学院RMIT毕业证Q/微信859034112成绩单学历认证 RMIT University 办理卧龙岗大学Wollongong毕业证Q/微信859034112成绩单学历认证 University of Wollongong 办理迪肯大学Deakin毕业证Q/微信859034112成绩单学历认证 Deakin University 办理拉筹伯大学毕业证Q/微信859034112成绩单学历认证 La Trobe University 办理新英格兰大学UNE毕业证Q/微信859034112成绩单学历认证 University of New England办理阿德莱德大学Adelaide毕业证Q/微信859034112成绩单学历认证 University of Adelaide办理西澳大学毕业证Q/微信859034112成绩单学历认证 University of Western Australia办理堪培拉大学Canberra毕业证Q/微信859034112成绩单学历认证 University of Canberra办理塔斯马尼亚大学Tasmania毕业证Q/微信859034112成绩单学历认证 University of Tasmania办理澳洲维多利亚大学Victoria毕业证Q/微信859034112成绩单学历认证Victoria University办理中央昆士兰大学CQU毕业证Q/微信859034112成绩单学历认证 Central Queensland University办理邦德大学Bond毕业证Q/微信859034112成绩单学历认证 Bond University办理南昆士兰大学USQ毕业证Q/微信859034112成绩单学历认证 University of Southern Queensland办理南澳大学USA毕业证Q/微信859034112成绩单学历认证 University of South Australia办理斯威本科技大学SUT毕业证Q/微信859034112成绩单学历认证 Swinburne University of Technology办理詹姆斯.库克大学JCU毕业证Q/微信859034112成绩单学历认证 James Cook University办理澳洲圣母大学UND毕业证Q/微信859034112成绩单学历认证 University of Notre Dame办理南十字星大学SCU毕业证Q/微信859034112成绩单学历认证 Southern Cross University办理弗林德斯大学Flinders毕业证Q/微信859034112成绩单学历认证 Flinders University办理莫道克大学Murdoch毕业证Q/微信859034112成绩单学历认证 Murdoch University办理埃迪斯科文ECU大学毕业证Q/微信859034112成绩单学历认证 Edith Cowan University 办理查尔斯达尔文大学CDU毕业证Q/微信859034112成绩单学历认证 Charles Darwin University办理巴拉瑞特大学Ballarat毕业证Q/微信859034112成绩单学历认证 University of Ballarat办理阳光海岸大学USC毕业证Q/微信859034112成绩单学历认证University of Sunshine Coast

  • How to get the time length from send record command to record video really?

    I have two buttons. Record/Stop
    I press Record button to record the video and press Stop
    button to stop recording.Now,I spend 1986 ms from press Record
    button to press Stop button.
    But the flv file's length is 1920 or 1910 or 1915 ms.
    So I want to get the time length from send record command to
    record video really.
    Can you give me some suggests.
    Thanks!

    maybe you have lag in publishing.... are you try watch de
    NetStream.liveDelay() method?
    or start counting when NetStream.onStatus has
    "NetStream.Record.Start" and "NetStream.Record.Stop" in information
    objects....

  • How to get the max(level)?

    Hi,
    The below query returns level and other selected columns.
    I need to get the max(level) 2nd column value in the below example.How to modify the query?
    Ex
    Level      max(level)     id
    1 5 101
    1 5 102
    1 5 103
    2 5 104
    2 5 105
    3 5 107
    4 5 120
    5 5 134
    5 5 280
    SELECT DISTINCT level lvl
    ,form_frms.emp_id
    ,form_frms.ing_emp_id
    ,form_frms.prve_id
    ,CASE
    WHEN (select div_dn
    from epm_prod epm
    where epm.emp_id= form_frms.ing_emp_id) ='Y' THEN DIV_DN
    WHEN NVL((select distinct 'N'
    from emp_pro_version prvv
    where prvv.is_py='Y' and
    prvv.IS_VERSION ='N' and
    prvv.emp_id=form_frms.ing_emp_id) ,'Y')='N'
    THEN 'Y'
    WHEN NVL((select distinct 'Y'
    from employee epm
    where emp.emp_id=form_frms.ing_emp_id
    and epm.status<>'NEW') ,'N') ='Y'
    THEN 'Y'
    ELSE 'N'
    END
    ELSE 'N'
    END UN_KNOWN_ID
    FROM (SELECT empvv1.prvv_id
    FROM emp_view_version empvv1
    WHERE empvv1.is_version = 'Y'
    ) form_frms
    START WITH form_frms.emp_id = :lv_emp_id
    CONNECT BY PRIOR form_frms.ing_emp_id = form_frms.emp_id
    ORDER BY level DESC, form_frms.emp_id,UNKNOWN_ID ASC;
    Edited by: shivasha on Feb 9, 2013 12:24 AM

    Maybe
    select lvl,
           max(lvl) over (order by null rows between unbounded preceding and unbounded following) max_level,
           emp_id,
           unknown_id
      from (SELECT DISTINCT
                   level lvl,
                   form_frms.emp_id,
                   form_frms.ing_emp_id,
                   form_frms.prve_id,
                   CASE WHEN (select div_dn
                                from epm_prod epm
                               where epm.emp_id = form_frms.ing_emp_id
                             ) = 'Y'
                        THEN DIV_DN
                        WHEN NVL((select distinct 'N'
                                    from emp_pro_version prvv
                                   where prvv.is_py = 'Y'
                                     and prvv.IS_VERSION = 'N'
                                     and prvv.emp_id=form_frms.ing_emp_id
                                 ),'Y'
                                ) = 'N'
                        THEN 'Y'
                        WHEN NVL((select distinct 'Y'
                                    from employee epm
                                   where emp.emp_id = form_frms.ing_emp_id
                                     and epm.status != 'NEW'
                                 ),'N'
                                ) = 'Y'
                        THEN 'Y'
                        ELSE 'N'
                   END UNKNOWN_ID
              FROM (SELECT empvv1.prvv_id
                      FROM emp_view_version empvv1
                     WHERE empvv1.is_version = 'Y'
                   ) form_frms
             START WITH form_frms.emp_id = :lv_emp_id
             CONNECT BY PRIOR form_frms.ing_emp_id = form_frms.emp_id
    ORDER BY lvl DESC,emp_id,UNKNOWN_IDRegards
    Etbin

  • How to get the correct length...removing appended extra ascii characters

    I have a table fs_lg_partgroups, having the columns description,subgroupname.
    I have a query like this..
    select description,length(description) from fs_lg_partgroups where subgroupname='FORMULA226';
    Then i got the output as
    formula226 and the length is 42. Even though there are 10 characters only.
    I came to know that some ascii characters are appended to description values, so it is showing the length like this.
    But i don't know how to remove those ASCII characters from description column for all rows to get the exact length.
    Please can u help me..

    If you have used char data type then use varchar2 datatype instead of char datatype for description column.
    Learn about char and varchar2 datatypes here.
    http://download-east.oracle.com/docs/cd/B10501_01/server.920/a96524/c13datyp.htm#7223

  • How do i get the max width and height?

    Hey
    I want to get the max width and height, so my desktoppanes size can be set automatically.
    I know i should use getBounds but i cant find a concrete example on goole, on how to use it.
    Can someone point me in the right direction, with an example?

    Ok, assuming you want to get the screen resolution, i.e. 1024 x 768.
    You will need these imports:
    import java.awt.Dimension;
    import java.awt.Toolkit;and this line of code:
    Dimension myScreen =  Toolkit.getDefaultToolkit().getScreenSize() ;You can now use myScreen.width and myScreen.height to access the height and width of your screen's resolution. (width = 1024, height = 768 in my case)
    Hope this helps,
    Stern
    Edited by: Stern on Apr 13, 2008 6:49 AM

  • Membership rules does not work with UDF column name having the max length

    Found a bug in OIM .
    Membership rules does not work with UDF column name having the maximum length
    Steps to Reproduce
    1.Create a UDF having max column name length for eg UDF_USR_PERSONAL_SUB_DOMAIN_CO (lable = Personal Code)
    2. Create a simple Rule like Personal Code = 7000
    3. Assign this Rule as a member ship rule of a Group.
    4. Create a user with Personal Code = 7000.
    5. User doesnot get the group membership.
    Thanks
    Suren

    Yes , i verified logs as well .
    If you just decrease the column name length , w/o making change to any other attributes , it starts working ..
    Thanks
    Suren

  • Getting the Physical Length of a Piece of Text (in mm etc.) in Javascript

    I'm trying to write a script in Indesign CS5 (Windows) that can measure the physical, 'rendered' length of two pieces of text of similar length (in mm etc.), calculate the average length of the two, and adjust the tracking/horizontal scale of one or both of the pieces of text so that the physical length of both texts are the same.
    I need a script because this task must be done thousands of time in a long document.
    I'm struggling to find a way to access the 'rendered' length of a piece of text in Javascript.
    I know among the attributes of a text box is whether the text has overrun. So I could copy the text to a special text-box, and use a for loop to reduce the dimentions of the text box, 1mm at a time, until the text box overruns, thus determining the length..
    I could also get the length of a rendered string using python with it's built in GUI toolkit Tkinter:
    http://stackoverflow.com/questions/2922295/calculating-the-pixel-size-of-a-string-with-pyt hon
    And then have an indesign script that takes some data from the python script and sets the tracking/horizontal in Indesign with some fudge factors.
    Both ideas seem like real kludges.
    Any other suggestions?
    Many thanks
    David

    You can simply iterate through each line in text to get the widest line. Something like this:
    Main();
    function Main() {
        var text = app.selection[0],
        minLength, maxLength, start, end;
        for (var i = 0; i < text.lines.length; i++) {
            start = text.lines[i].characters[0].horizontalOffset,
            end = text.lines[i].characters[text.lines[i].characters.length-1].horizontalOffset;
            if (minLength == undefined || start < minLength) {
                minLength = start;
            if (maxLength == undefined || end > maxLength) {
                maxLength = end;
        var length = maxLength - minLength;
        $.writeln(length);
    But this approach seems to be a little less precise than creating outlines since (I guess) it measures up to the beginning of the last character; discretionary hyphens, line brakes, etc. are not included into the measurement.

  • How to get the real length of a 3D room

    Hi, I want to built a 3d room. When I import a obj file, the vector3f length does not equal to the real length(much longer than the real one), I know there must be relation between them, but how I can get the relation?
    for example:
    T3Droom.setTranslation(new Vector3f(0.7f,1f,0.5f));
    How many metres the 0.7f equals to?
    thanks a lot

    javax.mail.Address[] addrs= m.getFrom();
    Address a = addrs[0];
    if (a instanceof InternetAddress &&
    ((pers = ((InternetAddress)a).getPersonal()) != null)) {
    String addr = ((InternetAddress)a).getPersonal();
    } else
    addr = a.toString();
    this 'getPersonal()' is the thing you need.

  • Help in query to get the max(date)

    Hi I have query like below and based on the query I get the following results,
    SELECT a.UsageId,a.product,ProductDate
    FROM dbo.table1 a
    JOIN dbo.table2 b ON a.SID= b.SID
    JOIN dbo.table3 c ON b.CID = c.CID
    UsageId        Product          UsageDate
    1 Yellow 2014-01-01
    2 Yellow 2014-01-02
    3 Yellow 2014-01-03
    4 Yellow 2014-01-04
    5 Red 2014-01-01
    6 Red 2014-01-02
    7 Blue 2014-01-03
    8 Blue
    2014-01-04
    Now I want to add a new column which gives me the Max(UsageDate) of the column Prdouct last Usage.
    UsageId        Product          UsageDate          Max(UsageDate)
    1 Yellow
    2014-01-01          2014-01-04
    2 Yellow
    2014-01-02    2014-01-04
    3 Yellow
    2014-01-03          2014-01-04
    4 Yellow
    2014-01-04          2014-01-04
    5 Red 2014-01-01          2014-01-02 
    6 Red 2014-01-02          2014-01-02
    7 Blue
    2014-01-03          2014-01-04
    8 Blue
    2014-01-04          2014-01-04

    Simply use:
    SELECT a.UsageId,a.product,ProductDate, MAX(ProductDate) OVER (PARTITION BY a.ProductID) as [Latest Product Usage Date]
    FROM dbo.table1 a
    JOIN dbo.table2 b ON a.SID= b.SID
    JOIN dbo.table3 c ON b.CID = c.CID
    For every expert, there is an equal and opposite expert. - Becker's Law
    My blog
    My TechNet articles

  • Get the max count of the column list item

    Hi,
    I have a list with the 'TO' column of type people. My task is to get persons name who is featured the max number of time in the 'TO' column.
    What is the best possible solution OOB. I dont want to go with custom solution.
    Thanks,
    Ankit

    Hello Ankit,
    I understand that you want to get total of "To" column. I would suggest you modify the current view of list and use "Group By" and Total section to get Max number of that column. Just try this and check whether it fulfils your need or
    not.
    Hemendra:Yesterday is just a memory,Tomorrow we may never see<br/> Please remember to mark the replies as answers if they help and unmark them if they provide no help

  • How to get the Max value of elements of type datetime

    Hi All ,
    I wanted to get the latest timestamp value ( datatype as datetime) from node list. I have following xml. In this xml, i want to get the modifydate element which has latest timestamp through xquery/xpath, it should return me following result 2011-09-29T17:21:17+10:00
    <CustomerList>
    <CustomerDetails>
    <name> Test 1</name>
    <status>active</status>
    <modifyDate>2011-08-20T17:21:17+10:00</modifyDate>
    </CustomerDetails>
    <CustomerDetails>
    <name> Test 2</name>
    <status>cancel</status>
    <modifyDate>2011-08-29T17:21:17+10:00</modifyDate>
    </CustomerDetails>
    <CustomerDetails>
    <name> Test 3</name>
    <status>active</status>
    <modifyDate>2011-09-29T17:21:17+10:00</modifyDate>
    </CustomerDetails>
    </CustomerList>
    i tried to use the
    //CustomerList/CustomerDetails/modifyDate[not(. <=../preceding-sibling::CustomerList/CustomerDetails/modifyDate) and not(. <=../following-sibling::CustomerList/CustomerDetails/modifyDate)]
    But it is not working on datetime datatype.
    Any help in this regard is much appreciated.
    Regards
    Edited by: user6736659 on Sep 5, 2011 6:15 AM

    Hi,
    The following XQuery should give you what you want :
    max(
    for $i in /CustomerList/CustomerDetails/modifyDate
    return xs:dateTime($i)
    )For instance, using Oracle SQL :
    SQL> var xmldoc varchar2(4000)
    SQL> begin
      2   :xmldoc := '<CustomerList>
      3  <CustomerDetails>
      4  <name> Test 1</name>
      5  <status>active</status>
      6  <modifyDate>2011-08-20T17:21:17+10:00</modifyDate>
      7  </CustomerDetails>
      8 
      9  <CustomerDetails>
    10  <name> Test 2</name>
    11  <status>cancel</status>
    12  <modifyDate>2011-08-29T17:21:17+10:00</modifyDate>
    13  </CustomerDetails>
    14 
    15  <CustomerDetails>
    16  <name> Test 3</name>
    17  <status>active</status>
    18  <modifyDate>2011-09-29T17:21:17+10:00</modifyDate>
    19  </CustomerDetails>
    20  </CustomerList>';
    21  end;
    22  /
    PL/SQL procedure successfully completed
    SQL> select xmlquery('max(
      2   for $i in /CustomerList/CustomerDetails/modifyDate
      3   return xs:dateTime($i)
      4  )'
      5  passing xmltype(:xmldoc)
      6  returning content
      7  )
      8  from dual
      9  ;
    XMLQUERY('MAX(FOR$IIN/CUSTOMER
    2011-09-29T17:21:17.000000+10:00

Maybe you are looking for