Problem with Character set

Hi,
I am facing some problems with Oracle character sets.
I have set the database character set as UTF8.
I have set the environment variable NLS_CHAR to Portuguese_Portugal.UTF8.
I insert a Portuguese text for varchar and clob columns in a table.
However when I select the text from that table, I get some junk values for the clob.
Any help is appriciated. Thanx in advance.
Yash
null

Hi Yash,
Can u tell me how to insert values in a nchar/nvarchar column in
Indian language scripts?
I have set database characterset to 'IN8ISCII'? But while
inserting values in the table I am getting error as characterset
mismatch'
I have tried it using UTF8 chracterset also??
As fa as your problem is concerened, I think u have to set the
nls_ characterset value$ in props$ table
and same for nls_nchar_characterset column also..
Thanks in advance
Manoj mehta

Similar Messages

  • Problem with character set - Reports 11.1.1.4

    Hi!
    I have a problem with Oracle Reports 11g regarding character set configuration. The default character set WE8ISO8859P1 works, so PDF reports have a regular display except for Eastern European (EE) letters which are replaced by "¿" sign.
    So, when I set any other character set in reports.sh, which would be a normal step to get EE letters, I'm always getting Greek Alphabet in PDF reports. Why Greek Alphabet?
    The character sets I tried to use are: EE8ISO8859P2, UTF8 and AL32UTF8.
    I changed uifont.ali and included PDF Subset with all four Arial font variants and, of course, I placed all fonts in fonts folder which is pointed by REPORTS_FONT_DIRECTORY.
    In Reports Builder everything works fine, but when I have to deploy the report to the Reports Services, the problem occurs.
    Also, when I've tried to execute PDF report using In-Process Reports Server (rep_wls_reports_hostnameasinst1) instead of AS Instance Reports Server (RptSvr_hostnameasinst1, which is a regular server), I'm getting Greek Alphabet in PDF reports even if the default character set is WE8ISO8859P1 in reports.sh. What is wrong with it? Where is Greek Alphabet configured?
    The production environment is 64-bit Oracle Linux 5.6 with Weblogic 10.3.4 and Forms&Reports 11.1.1.4. Forms works fine with character set EE8ISO8859P2 defined in default.env file.
    Thanks in advance!
    Regards,
    Dejan

    Thank you, Denis!
    Doc 300416.1 was very useful but Note 356221.1 - A Practical Methodology on Porting Reports from Windows to Unix with Different Font is actually crucial for configuring Reports on Linux.
    Also, there is a bug in 11.1.1.3 and 11.1.1.4, which can be fixed using the patch ( Note 1138405.1 - PDF Reports With Font Subsetting Raises Error "Bad /Bbox" on 64-Bit Linux ).
    Kind regards!

  • Problem with character set UTF-16 LE

    Hello.
    There were difficulties with character set change, using function convert ()
    The matter is that in the list v$nls_valid_values the character set AL16UTF16LE does not appear, during too time the inquiry is successfully carried out
    convert ([some-national-characters], ' CL8MSWIN1251 ', ' AL16UTF16LE ').
    But at giving on an input of the data stored in CLOB, there is an error "a character set is not supported"
    What are possible ways of the decision of a problem?

    You can try to use DBMS_LOB. SUBSTR to access LOB data like in the following example:
    SQL> select * from v$version;
    BANNER
    Oracle Database 10g Express Edition Release 10.2.0.1.0 - Product
    PL/SQL Release 10.2.0.1.0 - Production
    CORE    10.2.0.1.0      Production
    TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
    NLSRTL Version 10.2.0.1.0 - Production
    SQL>
    SQL> declare
      2  v_i clob;
      3  v_o clob;
      4  begin
      5  v_i := 'a';
      6  v_o:=convert(dbms_lob.substr(v_i,1,1),'AL16UTF16LE', 'CL8MSWIN1251');
      7  end;
      8  /
    PL/SQL procedure successfully completed.

  • Problem with Character Set in Oracle database 10g

    Hi,
    I tried to import one tablespace into test server. Source server with Oracle 8i and Target server with Oracle database 10g. The error I get is
    Import: Release 10.2.0.1.0 - Production on Thu Aug 3 00:20:49 2006
    Copyright (c) 1982, 2005, Oracle. All rights reserved.
    Username: sys as sysdba
    Password:
    Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
    With the Partitioning, OLAP and Data Mining options
    Export file created by EXPORT:V08.01.07 via conventional path
    About to import transportable tablespace(s) metadata...
    import done in WE8DEC character set and AL16UTF16 NCHAR character set
    export server uses WE8DEC NCHAR character set (possible ncharset conversion)
    . importing SYS's objects into SYS
    . importing SYS's objects into SYS
    IMP-00017: following statement failed with ORACLE error 19736:
    "BEGIN sys.dbms_plugts.beginImport ('8.1.7.4.0',2,'2',NULL,'NULL',67051,25"
    "51,2); END;"
    IMP-00003: ORACLE error 19736 encountered
    ORA-19736: can not plug a tablespace into a database using a different national character set
    ORA-06512: at "SYS.DBMS_PLUGTS", line 2386
    ORA-06512: at "SYS.DBMS_PLUGTS", line 1946
    ORA-06512: at line 1
    IMP-00000: Import terminated unsuccessfully
    PLZ somebody help in geting resolve this. Has anybody seen this error before.

    The solution to this problem is described in MetaLink note #211920.1. But this note is published with LIMITED access as it involves using a hidden parameter.
    You can get access to the note through Oracle Support only.
    The problem itself is solved generically, if the source database is at least 10.1.0.3 and the target database is 10.2
    -- Sergiusz

  • Problem with Character Set after upgrade

    Hello,
    I have a probelm and was wondering if anyone has seen this before.
    I have been running Java 1.4.2_13 for a while now on some Windows servers. About a month ago we upgraded to Java 1.6.0_12.
    We are reading input files that are in the character set Big5 HKSCS. After the upgrade our application started to report certain characters as invalid. Some of the characters are 0xD843, 0xD844.
    These should be valid characters and were in the previous version of Java (1.4.2_13).
    Has anyone seen this?
    Thanks in advance,
    Jerry

    The [Supported Encodings|http://java.sun.com/javase/6/docs/technotes/guides/intl/encoding.doc.html] page for the Java 6 release describes that charset as
    Big5 with Hong Kong extensions, Traditional Chinese (incorporating 2001 revision)You would know more than I do about that 2001 revision (or at least, not less than I do, since I know nothing about it). Perhaps that's the source of your problem?
    Edit: especially since the [Supported Encodings|http://www.j2ee.me/j2se/1.4.2/docs/guide/intl/encoding.doc.html] page for Java 1.4 doesn't mention the 2001 revision.

  • Problem with character set (ubuntu linux)

    hello everyone.
    I 'have already installed oracle-xe-universal_10.2.0.1-1.1_i386 in ubuntu.
    The problem is that greek characters from the db appear like ??????.
    How can i set the right nls_lang character set to solve the problem in ubuntu linux?
    Thank you in advance!

    Character code point translation is in the realm of the client, try setting NLS_LANG environment variable.
    If your client programs handle UTF8, as do many linux utilities, that is the best choice, set your <language>_<locale>.<characterset>, i.e.
    export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
    Or french_france, or german_germany ... depends on the locale you want to use. Try a `putty` session to the host, the terminal can be set for many different character sets, i.e. ISO8859-<n> a.k.a. the WE8<n> or Western European, UTF, etc. under Window/Translation.
    Try a few select ... from dual; statements in sqlplus with a literal, and different unicode values- the unistr() and dump() functions can come in quite handy.
    select unistr('\ac20 euro' ) from dual;
    ... € euro ...
    select dump( unistr('\ac20 euro' ) ) from dual;
    ... <ascii codes for the character values> ...
    select dump( unistr('\ac20 euro' ),16 ) from dual; -- this one for hex dump

  • Problem with character set with servlets and Oracle 9i AS

    I am deploying a servlet with Jserv on a Sun machine.
    My servlet is working but some special characters in text fields like "i", "h", "`" (French language) are replaced by "?" when refreshing the HTML pages.
    Is that a Jserv or Oracle 9i AS settings problem or machine settings problem ?
    Thanks for you help
    Lilian

    The solution to this problem is described in MetaLink note #211920.1. But this note is published with LIMITED access as it involves using a hidden parameter.
    You can get access to the note through Oracle Support only.
    The problem itself is solved generically, if the source database is at least 10.1.0.3 and the target database is 10.2
    -- Sergiusz

  • Problem with subform set

    Hi all ,
    I am facing a problem with subform set. When i use two subform sets with same set of conditions in a form, only the first subform set works while the second one does nothing. Did any of you faced the same problem ? If so Please let me know the solution you came up with. Thanks.
    SrPrabhu

    Hi scott,
    The problem is with subform set and not subform. In subform set, we can give conditions to make only one subform visible at a time that satisfies the condition. First create a subform set having more than one subform. Now apply the conditions to that subform set. Check if it works. I m sure it wil work. Now just make a duplicate copy of the same subform set. Place it in the same form so that now two subform sets are available. Now preview the form. U wil fine only one subform set working and the other one doesnt.
    We can use any number of subform set within a form. If different conditions are applied to each subform set , it works fine.
    i wonder now wat wud u do in case if we are in need of two subformset having the same condition in a form ?
    Thanks,
    Sr Prabhu

  • Problem with character code NCR (example : cộng h�a x� hội)

    Dear
    I have problem with character code NCR when display this string "c&#7897;ng h�a x� h&#7897;i" on web page using JSF. I print out like this c & # 7897 ; ng h � a x � h & # 7897 ; i
    Thanks for help

    jverd wrote:
    A better approach would be to take a char rather than a String in that method, since it's a better model for what you're converting. A char would also let you use switch statement.I was going to say this as well but you beat me to it.
    @OP, you really should use char for this. You're unnecessarily taking each char, converting it to a string, and working with the single-character string. That's not very efficient.

  • Weird Problem with FSB setting

    Hi all,
    I've just come across a weird problem with FSB setting.
    If I set FSB to 229 my machine runs @ 1.6Ghz only.
    When I set to 230 it runs @ 3.2Ghz (as it should).
    Any ideas what could be causing this?
    Thanks
    Mick

    If FSB @ =
      Strange thing.. What a magical 1MHz  

  • HTTPService + SimpleEmailForm - Problem with character

    Problem with swedish character å, ä och ö in a
    simple form mail with flex, php and mySQL.
    Have tried to change this in flex - mySimpleFormMail.mxml:
    <?xml version="1.0" encoding="utf-8"?> to
    <?xml version="1.0" encoding="Latin1"?> and to
    <?xml version="1.0" encoding="iso-8859-1"?>
    Have also at the same time changed this in mail.php:
    <meta http-equiv="Content-Type" content="text/html;
    charset=utf-8" /> to
    <meta http-equiv="Content-Type" content="text/html;
    charset=Latin1" /> and to
    <meta http-equiv="Content-Type" content="text/html;
    charset=iso-8859-1" />
    The mySimpleFormail looks like this is this:
    From---------------------------------------
    Name----------------------------------------
    To------------------------------------------
    E-mail---------------------------------------
    Mesage---------------------------------------
    SEND (button)
    The e-mail generated from mySimpleFormail looks like this:
    From: Patrik Hällman
    Email Address: [email protected]
    To:
    Patrik Hällman
    Email Address: [email protected]
    Message:Now I´m testing with the swedish character -
    åä och ö.
    ...as you can see swedish character å, ä och ö
    is wrong displayed.
    Here is the result from <traceTarget>:
    [SWF] C:\AppServ\www\email \bin-debug\email_send4.swf - 910
    229 bytes after decompression
    'AB8F6784-15FC-7BD4-D26D-F73192A7717F' producer set
    destination to 'DefaultHTTP'.
    'direct_http_channel' channel endpoint set to http:
    'AB8F6784-15FC-7BD4-D26D-F73192A7717F' producer sending
    message 'AA84F829-98F0-E93F-D7AC-F732847CF6B2'
    'direct_http_channel' channel sending message:
    (mx.messaging.messages::HTTPRequestMessage)#0
    body = (Object)#1
    emailMessage = "Now I´m testing with the swedish
    character å, ä and ö."
    senderEmail = "[email protected]"
    senderName = "Patrik Hällman"
    sendToEmail = "[email protected]"
    sendToName = "Patrik Hällman"
    clientId = (null)
    contentType = "application/x-www-form-urlencoded"
    destination = "DefaultHTTP"
    headers = (Object)#2
    httpHeaders = (Object)#3
    messageId = "AA84F829-98F0-E93F-D7AC-F732847CF6B2"
    method = "POST"
    recordHeaders = false
    timestamp = 0
    timeToLive = 0
    url = "
    http://www.myhomesite.se/email/email.php"
    'AB8F6784-15FC-7BD4-D26D-F73192A7717F' producer connected.
    'AB8F6784-15FC-7BD4-D26D-F73192A7717F' producer acknowledge
    of 'AA84F829-98F0-E93F-D7AC-F732847CF6B2'.
    Decoding HTTPService response
    Processing HTTPService response message:
    (mx.messaging.messages::AcknowledgeMessage)#0
    body = "<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
    Transitional//EN" "
    http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="
    http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html;
    charset=iso-8859-1" />
    <title>Untitled Document</title>
    </head>
    <body>
    </body>
    </html>
    clientId = "DirectHTTPChannel0"
    correlationId = "AA84F829-98F0-E93F-D7AC-F732847CF6B2"
    destination = ""
    headers = (Object)#1
    messageId = "5624FC90-E89E-2B47-92B9-F7328A8CB993"
    timestamp = 0
    timeToLive = 0
    This is catastrophic when you working with cms and databases.
    All help I can get from this forum is really appreciated.

    Well, using UNICODE for upload/download files I think is most suitable way. If in AL11 you don't see it being displayed correctly (odd characters appear), that doesn't necessary mean it has wrong encoding set. Maybe AL11 is using different decoding type by default. Normally storage of file on AS is not its final destination, right? You place it there i.e. for customer's job to read it back and send via email. So just make sure that downloading program uses same decoding you used for encoding (UTF-8). Then the characters in the output stream (i.e. frontend file, mail body) should be displayed correctly
    What I mean is don't worry how it is dispalyed in AL11, just ensure that after you download it, the characters are correctly decoded.
    PS: Make sure that you metion encoding type explicitly both for upload and download programs
    OPEN DATASET dset .... IN TEXT MODE ENCODING/DECODING UTF-8.
    Regards
    Marcin

  • Transferring Data between Databases with Character Sets UTF08 and US7ASCII

    Hi,
    I am trying to transfer data from Oracle 10g (character set :UTF08) to Oracle 8i ( character set: US7ASCII). I have tried the transfer using the DBLinks and found that there is no way the data could be transferred from 10g to Oracle 8i.
    The last option available is to use staging database for transfer. The staging database would be Oracle 10g only but the character set would be US7ASCII. I am expecting that since the character set is US7ASCII, this would be able to get compatible with Oracle 8i (US7ASCII). Secondly, Transfer from 10g to staging 10g should also work, since staging 10g would support UTF08 character set.
    Kindly tell me if this option would work or if there is any other way around.
    Thanks
    Nitin
    Message was edited by:
    Nits
    Message was edited by:
    Nits
    Message was edited by:
    Nits

    You possibly have a fundamental problem,which is more important than any technical issues. If your UTF8 (Unicode) database stores non-english characters you will lose these characters when transferring.
    Werner

  • Problem with '&' character in xml

    Hello!
    i work with XI3.0 sp19
    i have a interface ftp ->XI-> idoc.
    ftp adapter send a xml file.
    I solve all problems with special characters using encoding="ISO-8859-9", but i have problem when in my message there are a '&' character.
    any idea?????

    This has been discussed lately:
    Ampersand ('&')  in  XML - Mapping error
    Regards
    Stefan

  • Having a problem with character styles in indesign

    I'm having another problem with my style sheets in indesign, I've now got an awful lot of styles in paragraph and character styles. I've created different styles for paragraph justified text and when I go to my style in paragraph styles to use tight text copy, character styles always overides it so it means I have to do  whole lot of extra formatting just to put it right. Does anyone have an idea how I can stop character styles overiding paragraph styles? Thanks very much.

    Perhaps your character styles apply more than you actually want? I.e., rather than just "+Italic" it also applies custom tracking. You should use character styles only to override the stuff you really want to change.
    You can check by calling up the definition for those character styles; the huge "Style Settings" text box lists all the attributes it changes.

  • Problem with layer sets opening

    Hi,
    I have a problem open layer sets. In my script I get layers index and then iterate throught this layers.
    Here is the script:
    function getAllLayersByIndex(){
           function getNumberLayers(){
           var ref = new ActionReference();
           ref.putProperty( charIDToTypeID("Prpr") , charIDToTypeID("NmbL") )
           ref.putEnumerated( charIDToTypeID("Dcmn"), charIDToTypeID("Ordn"), charIDToTypeID("Trgt") );
           return executeActionGet(ref).getInteger(charIDToTypeID("NmbL"));
           function hasBackground() {
               var ref = new ActionReference();
               ref.putProperty( charIDToTypeID("Prpr"), charIDToTypeID( "Bckg" ));
               ref.putEnumerated(charIDToTypeID( "Lyr " ),charIDToTypeID( "Ordn" ),charIDToTypeID( "Back" ))//bottom Layer/background
               var desc =  executeActionGet(ref);
               var res = desc.getBoolean(charIDToTypeID( "Bckg" ));
               return res  
           function getLayerType(idx,prop) {      
               var ref = new ActionReference();
               ref.putIndex(charIDToTypeID( "Lyr " ), idx);
               var desc =  executeActionGet(ref);
               var type = desc.getEnumerationValue(prop);
               var res = typeIDToStringID(type);
               return res  
           function getLayerVisibilityByIndex( idx ) {
               var ref = new ActionReference();
               ref.putProperty( charIDToTypeID("Prpr") , charIDToTypeID( "Vsbl" ));
               ref.putIndex( charIDToTypeID( "Lyr " ), idx );
               return executeActionGet(ref).getBoolean(charIDToTypeID( "Vsbl" ));;
           var cnt = getNumberLayers()+1;
           var res = new Array();
           if(hasBackground()){
        var i = 0;
              }else{
        var i = 1;
           var prop =  stringIDToTypeID("layerSection");
           for(i;i<cnt;i++){
              var temp = getLayerType(i,prop);
              if(temp != "layerSectionEnds") res.push(i);
           return res;
           function getLayerVisibilityByIndex( idx ) {
               var ref = new ActionReference();
               ref.putProperty( charIDToTypeID("Prpr") , charIDToTypeID( "Vsbl" ));
               ref.putIndex( charIDToTypeID( "Lyr " ), idx );
               return executeActionGet(ref).getBoolean(charIDToTypeID( "Vsbl" ));
    function makeActiveByIndex( idx, visible ){
        var desc = new ActionDescriptor();
          var ref = new ActionReference();
          ref.putIndex(charIDToTypeID( "Lyr " ), idx)
          desc.putReference( charIDToTypeID( "null" ), ref );     
          desc.putBoolean( charIDToTypeID( "MkVs" ), visible );
       executeAction( charIDToTypeID( "slct" ), desc, DialogModes.NO );
    var groups = getAllLayersByIndex();
        for(var i = groups.length-1; i >= 0 ; i--) {
          makeActiveByIndex( groups[i], true );
          ....working with layers....
    I think, my problem is in function makeActiveByIndex, because it doesn't make active a folder and doesn't open it.
    You can see it on this picture. Active layer set is "Skupina 1" and it is in layer set "hlavicka". But "hlavicka" is not open. WHY??
    Can you help me fix this problem??
    Thank you Domaneni

    Hi, for the past days I've worked on a script to toogle opening and closing layeSets, I've taken the code that TeddyBear posted here: http://ps-scripts.com/bb/viewtopic.php?p=14773 and adjusted it a little bit, and that's what I came up with, I hope it will help you:
    <javascriptresource>
      <name>BCM> ToogleOpen_CloseGroup...</name>
      <category>BCM</category>
    </javascriptresource>
    //For code readability
    // http://ps-scripts.com/bb/viewtopic.php?f=9&t=3235
    function getActiveLayerIndex() {
        var ref = new ActionReference();
        ref.putProperty( charIDToTypeID("Prpr") , charIDToTypeID( "ItmI" ));
        ref.putEnumerated( charIDToTypeID("Lyr "), charIDToTypeID("Ordn"), charIDToTypeID("Trgt") );
        return executeActionGet(ref).getInteger(charIDToTypeID( "ItmI" ));
    function cTID(s){return charIDToTypeID(s)}
    function sTID(s){return stringIDToTypeID(s)}
    // =============================
    // The main function
    function closeGroup(layerSet) {
       var m_Name = layerSet.name;
       var m_Opacity = layerSet.opacity;
       var m_BlendMode = layerSet.blendMode;
       var m_LinkedLayers = layerSet.linkedLayers;
      var currINDEX = getActiveLayerIndex();
       var m_bHasMask = hasLayerMask();
       if(m_bHasMask) loadSelectionOfMask();
       if(layerSet.layers.length <= 1) {
          addTempLayerSetIn(currSetIDX-1);
          makeActiveByIndex(currSetIDX+2, false);
          ungroup();
          groupSelected(m_Name);
          deleteTempLayerSetbyIdx(currSetIDX+1);
       } else {
           makeActiveByIndex(currSetIDX, false);
          ungroup();
          groupSelected(m_Name);
       var m_Closed = activeDocument.activeLayer;
       m_Closed.opacity = m_Opacity;
       m_Closed.blendMode = m_BlendMode;
       for(x in m_LinkedLayers) {
          if(m_LinkedLayers[x].typename == "LayerSet")
             activeDocument.activeLayer.link(m_LinkedLayers[x]);
       if(m_bHasMask) maskFromSelection();
       return m_Closed;
    // =============================
    // Below are all necessary subroutines for the main function to work
    function ungroup() {
       var m_Dsc01 = new ActionDescriptor();
       var m_Ref01 = new ActionReference();
       m_Ref01.putEnumerated( cTID( "Lyr " ), cTID( "Ordn" ), cTID( "Trgt" ) );
       m_Dsc01.putReference( cTID( "null" ), m_Ref01 );
       try {
          executeAction( sTID( "ungroupLayersEvent" ), m_Dsc01, DialogModes.NO );
       } catch(e) {}
    function addLayer() {
       var m_ActiveLayer          =    activeDocument.activeLayer;
       var m_NewLayer             =    activeDocument.layerSets.add();
       m_NewLayer.move(m_ActiveLayer, ElementPlacement.PLACEBEFORE);
       return m_NewLayer;
    function hasLayerMask() {
       var m_Ref01 = new ActionReference();
       m_Ref01.putEnumerated( sTID( "layer" ), cTID( "Ordn" ), cTID( "Trgt" ));
       var m_Dsc01= executeActionGet( m_Ref01 );
       return m_Dsc01.hasKey(cTID('Usrs'));
    function activateLayerMask() {
       var m_Dsc01 = new ActionDescriptor();
       var m_Ref01 = new ActionReference();
       m_Ref01.putEnumerated( cTID( "Chnl" ), cTID( "Chnl" ), cTID( "Msk " ) );
       m_Dsc01.putReference( cTID( "null" ), m_Ref01 );
       try {
          executeAction( cTID( "slct" ), m_Dsc01, DialogModes.NO );
       } catch(e) {
          var m_TmpAlpha = new TemporaryAlpha();
          maskFromSelection();
          activateLayerMask();
          m_TmpAlpha.consume();
    function deleteMask(makeSelection) {
       if(makeSelection) {
          loadSelectionOfMask();
       var m_Dsc01 = new ActionDescriptor();
       var m_Ref01 = new ActionReference();
       m_Ref01.putEnumerated( cTID( "Chnl" ), cTID( "Ordn" ), cTID( "Trgt" ) );
       m_Dsc01.putReference( cTID( "null" ), m_Ref01 );
       try {
          executeAction( cTID( "Dlt " ), m_Dsc01, DialogModes.NO );
       } catch(e) {}
    function selectLayerMask() {
       var m_Dsc01 = new ActionDescriptor();
       var m_Ref01 = new ActionReference();
       m_Ref01.putEnumerated(cTID("Chnl"), cTID("Chnl"), cTID("Msk "));
       m_Dsc01.putReference(cTID("null"), m_Ref01);
       m_Dsc01.putBoolean(cTID("MkVs"), false );
       try {
          executeAction(cTID("slct"), m_Dsc01, DialogModes.NO );
       } catch(e) {}
    function loadSelectionOfMask() {
       selectLayerMask();
       var m_Dsc01 = new ActionDescriptor();
       var m_Ref01 = new ActionReference();
       m_Ref01.putProperty( cTID( "Chnl" ), cTID( "fsel" ) );
       m_Dsc01.putReference( cTID( "null" ), m_Ref01 );
       var m_Ref02 = new ActionReference();
       m_Ref02.putEnumerated( cTID( "Chnl" ), cTID( "Ordn" ), cTID( "Trgt" ) );
       m_Dsc01.putReference( cTID( "T   " ), m_Ref02 );
       try {
          executeAction( cTID( "setd" ), m_Dsc01, DialogModes.NO );
       } catch(e) {}
    function maskFromSelection() {
       if(!hasLayerMask()) {
          var m_Dsc01 = new ActionDescriptor();
          m_Dsc01.putClass( cTID( "Nw  " ), cTID( "Chnl" ) );
          var m_Ref01 = new ActionReference();
          m_Ref01.putEnumerated( cTID( "Chnl" ), cTID( "Chnl" ), cTID( "Msk " ) );
          m_Dsc01.putReference( cTID( "At  " ), m_Ref01 );
          m_Dsc01.putEnumerated( cTID( "Usng" ), cTID( "UsrM" ), cTID( "RvlS" ) );
          try {
             executeAction( cTID( "Mk  " ), m_Dsc01, DialogModes.NO );
          } catch(e) {
             activeDocument.selection.selectAll();
             maskFromSelection();
       } else {
          if(confirm("Delete existing mask?", true, "Warning")) {
             activateLayerMask();
             deleteMask();
    function groupSelected(name) {
       var m_Dsc01 = new ActionDescriptor();
       var m_Ref01 = new ActionReference();
       m_Ref01.putClass( sTID( "layerSection" ) );
       m_Dsc01.putReference(  cTID( "null" ), m_Ref01 );
       var m_Ref02 = new ActionReference();
       m_Ref02.putEnumerated( cTID( "Lyr " ), cTID( "Ordn" ), cTID( "Trgt" ) );
       m_Dsc01.putReference( cTID( "From" ), m_Ref02 );
       var m_Dsc02 = new ActionDescriptor();
       m_Dsc02.putString( cTID( "Nm  " ), name);
       m_Dsc01.putObject( cTID( "Usng" ), sTID( "layerSection" ), m_Dsc02 );
       executeAction( cTID( "Mk  " ), m_Dsc01, DialogModes.NO );
       return activeDocument.activeLayer;
    function addToSelection(layerName) {
       var m_Dsc01 = new ActionDescriptor();
       var m_Ref01 = new ActionReference();
       m_Ref01.putName( cTID( "Lyr " ), layerName );
       m_Dsc01.putReference( cTID( "null" ), m_Ref01 );
       m_Dsc01.putEnumerated( sTID( "selectionModifier" ), sTID( "selectionModifierType" ), sTID( "addToSelection" ) );
       m_Dsc01.putBoolean( cTID( "MkVs" ), false );
       try {
          executeAction( cTID( "slct" ), m_Dsc01, DialogModes.NO );
       } catch(e) {}
    function TemporaryAlpha() {
       activeDocument.selection.store((this.alpha = activeDocument.channels.add()));
       activeDocument.selection.deselect();
       this.consume = function() {
          activeDocument.selection.load(this.alpha);
          this.alpha.remove();
    function makeActiveByIndex( idx, visible ){
         if( idx.constructor != Array ) idx = [ idx ];
         for( var i = 0; i < idx.length; i++ ){
              var desc = new ActionDescriptor();
              var ref = new ActionReference();
              ref.putIndex(charIDToTypeID( 'Lyr ' ), idx[i])
              desc.putReference( charIDToTypeID( 'null' ), ref );
              if( i > 0 ) {
                   var idselectionModifier = stringIDToTypeID( 'selectionModifier' );
                   var idselectionModifierType = stringIDToTypeID( 'selectionModifierType' );
                   var idaddToSelection = stringIDToTypeID( 'addToSelection' );
                   desc.putEnumerated( idselectionModifier, idselectionModifierType, idaddToSelection );
              desc.putBoolean( charIDToTypeID( 'MkVs' ), visible );
              executeAction( charIDToTypeID( 'slct' ), desc, DialogModes.NO );
    function deleteActiveLayer(){
       // =======================================================
       var idDlt = charIDToTypeID( "Dlt " );
           var desc752 = new ActionDescriptor();
           var idnull = charIDToTypeID( "null" );
               var ref529 = new ActionReference();
               var idLyr = charIDToTypeID( "Lyr " );
               var idOrdn = charIDToTypeID( "Ordn" );
               var idTrgt = charIDToTypeID( "Trgt" );
               ref529.putEnumerated( idLyr, idOrdn, idTrgt );
           desc752.putReference( idnull, ref529 );
       executeAction( idDlt, desc752, DialogModes.NO );
    function isLayerSet( idx ) {
         var propName = stringIDToTypeID( 'layerSection' );
         var ref = new ActionReference();
         ref.putProperty( charIDToTypeID( "Prpr" ) , propName);
         ref.putIndex( charIDToTypeID ( "Lyr " ), idx );
         var desc =  executeActionGet( ref );
         var type = desc.getEnumerationValue( propName );
         var res = typeIDToStringID( type );
         // alert(res);
         return res == 'layerSectionStart' ? true:false;
    function openGroup1(theGroup) {
       currSetIDX= getActiveLayerIndex();
       if(isLayerSet( currSetIDX ))
        getNamesPlusIDsOfLayerSet();
      makeActiveByIndex(currSetIDX, false);
    function getNamesPlusIDsOfLayerSet(){
       var ref = new ActionReference();
       ref.putEnumerated( charIDToTypeID('Lyr '), charIDToTypeID('Ordn'), charIDToTypeID('Trgt') );
       var count = executeActionGet(ref).getInteger(charIDToTypeID('Cnt '));
      var parId = executeActionGet(ref).getInteger(stringIDToTypeID( 'layerID' ));
       var Names=[];
       var x = 0;
       var y = 0;
       var r = 0;
       currINDEX = getActiveLayerIndex();
        var i = currINDEX;
       for(i; i > 0 ; i--){
            ref = new ActionReference();
            ref.putIndex( charIDToTypeID( 'Lyr ' ), i );
            var desc = executeActionGet(ref);
            var layerName = desc.getString(charIDToTypeID( 'Nm  ' ));
            var Id = desc.getInteger(stringIDToTypeID( 'layerID' ));
            var ls = desc.getEnumerationValue(stringIDToTypeID("layerSection"));
            ls = typeIDToStringID(ls);
            // alert(layerName+": _ :"+ls);
            if(ls == "layerSectionStart"){x++};
            if(layerName.match(/^<\/Layer group/) )
              y ++;
              r = x - y;
              if(r == 0 && ls == "layerSectionEnd"){break};
              continue
            if(ls == "layerSectionContent"){makeActiveByIndex(i,false);break};
            var layerType = typeIDToStringID(desc.getEnumerationValue( stringIDToTypeID( 'layerSection' )));
            var isLayerSet =( layerType == 'layerSectionContent') ? false:true;
    Names.push([[Id],[layerName],[isLayerSet]]);
    return Names;
    function getLayersNb()//function to find out if the number of layers in the document
        var ref = new ActionReference();
        ref.putProperty( charIDToTypeID( 'Prpr' ), stringIDToTypeID('numberOfLayers') );
        ref.putEnumerated( charIDToTypeID( "Dcmn" ), charIDToTypeID( "Ordn" ), charIDToTypeID( "Trgt" ) );
        var desc = executeActionGet(ref);
        var numberOfLayers = desc.getInteger(stringIDToTypeID('numberOfLayers'));
        return numberOfLayers;
    function toogleOpenCloseSet(){
      myALayerIDX = getActiveLayerIndex();
      myGroupP = app.activeDocument.activeLayer;
      if(!isLayerSet(myALayerIDX)){
          myGroupP = app.activeDocument.activeLayer.parent;
          if(myGroupP.typename != "Document"){
            if(isSetOpened1(myGroupP)){closeGroup(myGroupP)}else{openGroup1(myGroupP)};
      }else{
        if(isSetOpened1(myGroupP)){closeGroup(myGroupP)}else{openGroup1(myGroupP)};
    function getFristLayerSetChildVisible(){
      xx = false;
       var ref = new ActionReference();
       ref.putEnumerated( charIDToTypeID('Lyr '), charIDToTypeID('Ordn'), charIDToTypeID('Trgt') );
       var count = executeActionGet(ref).getInteger(charIDToTypeID('Cnt '));
      var parId = executeActionGet(ref).getInteger(stringIDToTypeID( 'layerID' ));
       var Names=[];
        var x = 0;
        var y = 0;
        var r = 0;
       currINDEX = getActiveLayerIndex();
        var i = currINDEX;
       for(i; i > 0 ; i--){
            ref = new ActionReference();
            ref.putIndex( charIDToTypeID( 'Lyr ' ), i );
            var desc = executeActionGet(ref);
            var layerName = desc.getString(charIDToTypeID( 'Nm  ' ));
            var Id = desc.getInteger(stringIDToTypeID( 'layerID' ));
            var ls = desc.getEnumerationValue(stringIDToTypeID("layerSection"));
            ls = typeIDToStringID(ls);
            var vis = desc.getInteger(stringIDToTypeID( 'visible' ));
            // alert(layerName+": _ :"+vis);
    /*        if(desc.hasKey(stringIDToTypeID("visible")))
              alert(desc.getType(stringIDToTypeID("visible")));
            if(ls == "layerSectionStart"){x++};
            if(vis == 1 && Id!=parId && r!=0){
              var theOBj = {id:Id, lname:layerName, idx:i};
              xx =true;
              Names.push(theOBj);
              break;
            if(layerName.match(/^<\/Layer group/) )
              y ++;
              r = x - y;
              if(r == 0 && ls == "layerSectionEnd"){break};
              continue
        return Names;
    function getLastChildIdx(){
      xx = false;
       var ref = new ActionReference();
       ref.putEnumerated( charIDToTypeID('Lyr '), charIDToTypeID('Ordn'), charIDToTypeID('Trgt') );
       var count = executeActionGet(ref).getInteger(charIDToTypeID('Cnt '));
      var parId = executeActionGet(ref).getInteger(stringIDToTypeID( 'layerID' ));
       currINDEX = getActiveLayerIndex();
        var i = currINDEX;
        var x = 0;
        var y = 0;
        var r = 0;
        var lastChIdx = 0;
       for(i; i > 0 ; i--){
            ref = new ActionReference();
            ref.putIndex( charIDToTypeID( 'Lyr ' ), i );
            var desc = executeActionGet(ref);
            var layerName = desc.getString(charIDToTypeID( 'Nm  ' ));
            var Id = desc.getInteger(stringIDToTypeID( 'layerID' ));
            var ls = desc.getEnumerationValue(stringIDToTypeID("layerSection"));
            ls = typeIDToStringID(ls);
            var vis = desc.getInteger(stringIDToTypeID( 'visible' ));
            if(ls == "layerSectionStart"){x++};
            if(layerName.match(/^<\/Layer group/) )
              y ++;
              r = x - y;
              if(r == 0 && ls == "layerSectionEnd")
                lastChIdx = i;
                break;
            // alert(x+" _ "+y+" _ "+r+" _ "+layerName);
        return lastChIdx;
    function getNbOfChilds(){
      xx = false;
       var ref = new ActionReference();
       ref.putEnumerated( charIDToTypeID('Lyr '), charIDToTypeID('Ordn'), charIDToTypeID('Trgt') );
       var count = executeActionGet(ref).getInteger(charIDToTypeID('Cnt '));
      var parId = executeActionGet(ref).getInteger(stringIDToTypeID( 'layerID' ));
       currINDEX = getActiveLayerIndex();
        var i = currINDEX;
        var nb = 0;
        var x = 0;
        var y = 0;
        var r = 0;
       for(i; i > 0 ; i--){
            ref = new ActionReference();
            ref.putIndex( charIDToTypeID( 'Lyr ' ), i );
            var desc = executeActionGet(ref);
            var layerName = desc.getString(charIDToTypeID( 'Nm  ' ));
            var Id = desc.getInteger(stringIDToTypeID( 'layerID' ));
            var ls = desc.getEnumerationValue(stringIDToTypeID("layerSection"));
            ls = typeIDToStringID(ls);
            var vis = desc.getInteger(stringIDToTypeID( 'visible' ));
            if(ls == "layerSectionStart"){x++};
            if(layerName.match(/^<\/Layer group/) )
              y ++;
              r = x - y;
              if(r == 0 && ls == "layerSectionEnd")
                break
              continue
            nb++;
        return nb;
    function isSetOpened1( group ){
      app.activeDocument.activeLayer = group;
      xx = true;
      currSetIDX = getActiveLayerIndex();
      addTempLayerSetIn(currSetIDX-1);
      var fIdx = getActiveLayerIndex();
      makeActiveByIndex(currSetIDX+2, false);
      if(fIdx == getActiveLayerIndex())
        xx = false;
      deleteTempLayerSetbyIdx(currSetIDX+1);
      return xx;
    function addTempLayerSetIn(idxx){
        // =======================================================
        var idMk = charIDToTypeID( "Mk  " );
            var desc58 = new ActionDescriptor();
            var idnull = charIDToTypeID( "null" );
                var ref63 = new ActionReference();
                var idlayerSection = stringIDToTypeID( "layerSection" );
                ref63.putClass( idlayerSection );
            desc58.putReference( idnull, ref63 );
        executeAction( idMk, desc58, DialogModes.NO );
        // =======================================================rename
        var idsetd = charIDToTypeID( "setd" );
            var desc202 = new ActionDescriptor();
            var idnull = charIDToTypeID( "null" );
                var ref209 = new ActionReference();
                var idLyr = charIDToTypeID( "Lyr " );
                var idOrdn = charIDToTypeID( "Ordn" );
                var idTrgt = charIDToTypeID( "Trgt" );
                ref209.putEnumerated( idLyr, idOrdn, idTrgt );
            desc202.putReference( idnull, ref209 );
            var idT = charIDToTypeID( "T   " );
                var desc203 = new ActionDescriptor();
                var idNm = charIDToTypeID( "Nm  " );
                desc203.putString( idNm, "mb-dummy tempTestLayerSetOpen_Closed" );
            var idLyr = charIDToTypeID( "Lyr " );
            desc202.putObject( idT, idLyr, desc203 );
        executeAction( idsetd, desc202, DialogModes.NO );
        // =======================================================move
        var idmove = charIDToTypeID( "move" );
            var desc59 = new ActionDescriptor();
            var idnull = charIDToTypeID( "null" );
                var ref64 = new ActionReference();
                var idLyr = charIDToTypeID( "Lyr " );
                var idOrdn = charIDToTypeID( "Ordn" );
                var idTrgt = charIDToTypeID( "Trgt" );
                ref64.putEnumerated( idLyr, idOrdn, idTrgt );
            desc59.putReference( idnull, ref64 );
            var idT = charIDToTypeID( "T   " );
                var ref65 = new ActionReference();
                var idLyr = charIDToTypeID( "Lyr " );
                ref65.putIndex( idLyr, idxx );
            desc59.putReference( idT, ref65 );
            var idAdjs = charIDToTypeID( "Adjs" );
            desc59.putBoolean( idAdjs, false );
            var idVrsn = charIDToTypeID( "Vrsn" );
            desc59.putInteger( idVrsn, 5 );
        executeAction( idmove, desc59, DialogModes.NO );
    function deleteTempLayerSetbyIdx(idxx){
      // =======================================================
      var idDlt = charIDToTypeID( "Dlt " );
          var desc = new ActionDescriptor();
              var ref = new ActionReference();
              ref.putIndex(charIDToTypeID( 'Lyr ' ), idxx);
              // ref.putIdentifier(charIDToTypeID( 'Lyr ' ), idxx);
              desc.putReference( charIDToTypeID( 'null' ), ref );
      executeAction( idDlt, desc, DialogModes.NO );
    toogleOpenCloseSet();

Maybe you are looking for