Subject Selection

I have tried extracting a portion of a photo using a variety of methods, e.g. mag lasso, magic wand, and others but simply cannot get any kind of accurately defined edges. For the most part, just about all my edges look like I've chopped out the subject using a meat clever.
For example, I've taken fairly close up pictures of flowers, however behind the flowers are the background lawns, or houses or something that distracts from the flower. So I've tried to extract the flower, stem, and leaves using the mag lasso, picture select, and magic wand. The result is almost always chopped up subjects and/or critical missing portions.
Same goes for animals and people. There is inevitably something missing, e.g. our shaggy dog always gets an unwanted "haircut" in PSE6.
What am I doing wrong and how can I fix this, for that matter is there a fix?
PS, I would be happy to email or attach some of my sample pictures if that would help with tips/advice.
Thanks,
Ken

Ken W.,
http://www.pixentral.com/show.php?picture=12Xvt0LOdpQUptihQ4DJ3seTM6mfkY1
I spent a few minutes on this picture.
1. I duplicated the background layer, worked on the background copy layer, then shut off the visibility of the background layer
2. I got rid of the black with the magic wand tool. My usual setting is Tolerance=32, and in this case I unchecked contiguous, as I wanted to fetch all the black
3. I eliminated the grass with the magnetic lasso tool set at Feather=1px, width=3px, edge contrast=3%, frequency=57. I eliminated each segment of grass separately & sequentially, then got rid of the marching ants by Select>deselect. I worked under magnification.
4. I inserted a blank layer between the background and background copy layers, filled it with white for contrast in this exercise, not for aesthetics.
5. As you will see, I applied the smudge tool to the leaf at the upper left, but I don't like the result, but it gives you an idea about the use of the other tools available for refinements.
I like to use the magnetic lasso tool. Other people like to use a mask for detailed selections, as one can toggle between black/white to hide/show in making the selection. The magnetic lasso tool is a bit tricky to use. I place my wrist down firmly, and move the mouse with fingers. One can lay down additional selection points with a left mouse click, and one can back-track and remove a fixation point by hitting the delete key. When one works near an edge of the picture at the interface with the work space, there may be a sudden jump of the picture. One can avoid this annoyance by moving the picture away from the edge of the work space with the hand tool.
HTH,
Ken L.

Similar Messages

  • Submit Button Automated Email subject selection

    Hi
    I've generated a new form and added a submit button, I've managed to bumble my way through adding the mailto: javascript but it would be very benaficial if I could define the subject feild from on of the form text boxes.
    Is this possible?
    Thanks in advance
    James

    This is currently outside the scope of the Formscentral product. If you want this type of functionality I suggest you switch to a Formscentral based submission workflow instead of an email submission based one.
    Andrew Yarborough

  • Using selection to hide a mask in CS6

    Hello
    I wish to apply a grunge effect to portraits but for it not to show on the subject, just the background.  I have done this by applying the grunge effect then creating a mask and then using the brush tool to paint away the effect from the subject carefully so as not to spill over into the background.  It works fine but is time consuming. 
    I would like to apply the grunge effect using a selection instead whereby I select the subject and apply the effect.  Because the subject has a selection arouind it, I can use the brush tool without straying outside the selection.  I would like ti know how to do this, using perhaps the Quick Mask.  I hope you can help.  Thank you.
    Kind Regards
    Farrukh Hyder

    With your effect on a seperate layer having a blank (white) mask, load your subject selection, go to the effect mask, and fill with black.

  • How to find resource mailbox property "Add the organizer name to the subject" in Exchange 2013

    Use the Resource Information tab to specify the meeting information that appears in the resource's calendar:
    Delete attachments   Select this check box to remove attachments from all incoming requests.
    Delete comments   Select this check box to remove comments from all incoming requests.
    Delete the subject   Select this check box to remove the subject of all incoming requests.
    Delete non-calendar items   Select this check box to remove non-calendar items from all incoming requests.
    Add the organizer's name to the subject   Select this check box to specify whether the resource requestor's name is added to the subject of the request.
    Remove the private flag on an accepted meeting   Select this check box to remove the private flag for all incoming requests.
    Send organizer information when a meeting request is declined because of conflicts   Select this check box to send the meeting organizer information regarding
    a denied request.
    Customize the response message that organizers will receive   Select the Add additional text check box to customize the message that
    the requester receives when the meeting has been declined, and then type the additional information in the Additional text field.
    Mark pending requests as Tentative on the calendar   Select this checkbox to specify that all pending requests are marked as Tentative in the resource's calendar.
    The delegate can then accept or deny the request as needed.
    This is how these settings can be found in exchange server 2010(highlighted) but I am unable to find a similar setting in the admin center of Exchange 2013. I know this can be done through shell commands but I want to know where I can find the same UI setting
    in 2013. 
    Any help is much appreciated.

    Those settings are not exposed in the EAC or the Resource settings in OWA, afaik. Just use the shell.

  • Re: Select statement fails under Express, but works underForte when usi

    Hi there,
    I have logged this with Forte and it as been recognized as a bug ( #46554 ).
    The Express methods you need to look at if you want to modify this behavior
    are :
    1 - BusinessQuery.BuildQuery() starting at line 217
    2 - SqlQuery.GetWhereText() starting at line 60
    We have gotten around the problem by modifying what Express generates by
    changing it from ( col1, col2 ) in ( select col1, col2 ... ) to ( col1 +
    col2 ) in ( select col1 + col2 ... )
    Just one thing i'm not sure that the '+' is standard on every DBMS for
    concatenation.
    We are using SQL Server 6.5
    Hope this helps.
    Christian Boult ([email protected])
    Programmeur - Analyste
    Influatec inc.
    -----Original Message-----
    From: Metcalf, Roger <[email protected]>
    To: '[email protected]' <[email protected]>
    Date: Thursday, May 06, 1999 1:55 PM
    Subject: Select statement fails under Express, but works under Forte when
    using DB2
    Express sometimes (e.g. with nested windows) generates SQL with a select
    subquery, e.g.
    select x1, x2 from t1 where (x1,x2) in (select x1,x2 from t2.....)
    This fails on DB2 with a message that the comma in the where clause (x1,x2)
    is not allowed.
    This works on Oracle.
    Does anyone have a workaround or other suggestion?
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

    joe.meszaros wrote:
    (SELECT ? AS Id, ? AS UserBytes FROM dual)I suggest that you test to see if that statement and ONLY that statement works at all.
    There are rules for bind variables and that statement certainly looks suspicious.
    If you can't get that to work then the rest of the attempt is pointless.

  • Re: Select statement fails under Express, but works underForte whenusin

    Roger,
    This was a bug with Express and was fixed in Express E.2.0.L.0.
    You might be able to get more details on Forte's website.
    Ajith Kallambella M
    From: "Metcalf, Roger" <[email protected]>
    Reply-To: "Metcalf, Roger" <[email protected]>
    To: "'[email protected]'" <[email protected]>
    Subject: Select statement fails under Express, but works under Forte
    whenusing DB2
    Date: Thu, 6 May 1999 11:55:19 -0400
    Express sometimes (e.g. with nested windows) generates SQL with a select
    subquery, e.g.
    select x1, x2 from t1 where (x1,x2) in (select x1,x2 from t2.....)
    This fails on DB2 with a message that the comma in the where clause (x1,x2)
    is not allowed.
    This works on Oracle.
    Does anyone have a workaround or other suggestion?
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>_______________________________________________________________
    Get Free Email and Do More On The Web. Visit http://www.msn.com
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

    joe.meszaros wrote:
    (SELECT ? AS Id, ? AS UserBytes FROM dual)I suggest that you test to see if that statement and ONLY that statement works at all.
    There are rules for bind variables and that statement certainly looks suspicious.
    If you can't get that to work then the rest of the attempt is pointless.

  • Select - Forte

    We have just begun using SELECT ENTERPRISE to perform OO
    modeling in conjuction with Forte development . We have not yet
    reach the point of code generation but have heard through the
    grapevine that there are problems with SELECT/FORTE in the original
    generation of code and in the reverse engineering of tool code.
    Would/Could anyone enlighten me with known problems ??
    Karl Perna
    [email protected]

    Karl
    We have been using SELECT and the Fort&eacute; generator to aid our
    development.
    To be honest it has not proven very successful SELECT itself is fine and
    a great aid to the development ( Enterprise 5.1) but the generator does
    cause problems under certain conditions.
    1. Configuration of the templates in SELECT is a must - you have to
    enable the users generating the code access to most of the Forte
    settings. E.g.. Without this when classes are renamed the generator will
    create classes with the old name etc.
    2. There is a bug in Fort&eacute; apparently that only seems to be caused when
    we generate classes from SELECT. The project that contains the classes
    generated cannot be exported ( Ftexec error - GPF ).
    3. We are using a Third party framework and all our business classes
    inherit from a framework class which is fine until you try
    roundtripping. The classes generated are changed in Forte to inherit
    from the framework class. This causes the class to be reverse engineered
    into SELECT and then generated as a forward declaration when the code is
    again generated into Forte. Any new classes that are forward generated
    subsequently cannot inherit from the framework class as Forte will not
    allow inheritance from forward declared classes.
    This last problem is overcome by the use of categories/packages in the
    next version of SELECT - when SELECT will be able to generate true Pex
    files and know about the relationship between categories thus removing
    the need for forward declarations. We have just received the new beta
    version of SELECT and the generator.
    From: Karl Perna[SMTP:[email protected]]
    Sent: 27 March 1997 23:02
    To: 'ForteUsersML'
    Subject: Select - Forte
    We have just begun using SELECT ENTERPRISE to perform OO
    modeling in conjuction with Forte development . We have not yet
    reach the point of code generation but have heard through the
    grapevine that there are problems with SELECT/FORTE in the original
    generation of code and in the reverse engineering of tool code.
    Would/Could anyone enlighten me with known problems ??
    Karl Perna
    [email protected]

  • Loading multiple dependent select lists

    What is the best way to load select lists that are dependent on the previous one?
    ex.
    Select School
    based on school you select the subjects
    select subject
    based on subject you select the courses,
    etc
    I'm trying to stay away from as much javascript as possible.
    thanks for the help!
    Michael

    You can use javascript, or resubmit the page and laod the dependant select list based on what was selected.

  • Select font of same size

    I am using Illustrator CS5 on Windows XP.
    I have a layer containing type of various font sizes.
    Is there a way to select type of a particular font size?
    Is there a script that I can use to achieve this.
    I have searched through the forum and have seen that this has been requested before, but have not found a solution.
    Thanks

    Hi Wade,
    Thanks for your response.
    I have checked out the scripts and they are just what I needed
    Cheers
    Eddie Frankel | Technical Officer, GeoScience Victoria
    Department of Primary Industries | GPO Box 4440 Melbourne VIC 3001
    ' . +61 3 9658 4539 | f. +61 3 9658 4555 | 8 .
    [email protected]
    www.dpi.vic.gov.au/earth-resources
    Wade_Zimmerman <[email protected]>
    07/08/2010 02:18 AM
    Please respond to
    [email protected]
    To
    eddie frankel <[email protected]>
    cc
    Subject
    select font of same size
    That looks promising have you tried it?
    I  realize my last post was a bit incoherent but I meant to say was that I
    have seen plug ins that do this for other programs.
    It is not presently available in AI  although this script does look like
    it might do what you want.

  • Selected images disappearing from compiled CHM

    I've got a project that I'm trying to get compiled into a CHM file from RoboHTML 8. Everything seems to have gone fine, except that four of the images I added to the project prior to compilation don't show up in the CHM. They seem to be fine when viewed from RoboHelp, they're where they're supposed to be, and the source code of the compiled CHM refrences them correctly. And yet... they don't actually show up! I have tried renaming them, and reimporting them into the project, but these tricks didn't work. I'm hoping someone out there has some suggestions!

    I've had this happen a few times.
    I deleted the image from the topic and then inserted it again from the
    RoboHelp project files  (from the "Images in Project Folders" section on
    the left side - not from the open folder icon).
    This solved the problem for me; hope it helps you as well.
    Debbie
    Debbie Sarig | Documentation Manager | Magic Software Enterprises Ltd
    Tel.03-538-9386 | Fax. 03-538-9333
    Email. [email protected] | www.magicsoftware.com
    (Embedded image moved to file: pic19072.jpg)Magic Software Logo
    DISCLAIMER. Information in this message and its attachments may be
    privileged or confidential. It is for the exclusive use of the intended
    recipient(s). If you are not one of the intended recipients, you are hereby
    informed that any use, disclosure, distribution, and/or copying of this
    information is strictly prohibited. If you receive this message in error,
    please notify the sender immediately and delete all copies of this message.
    We recommend that you scan your incoming Emails. We cannot accept
    responsibility for any transmitted viruses.
                                                                                    From:       elemonated <[email protected]>                                                                               
    To:         Debbie Sarig <[email protected]>                                                                               
    Date:       06/17/2009 05:56 PM                                                                               
    Subject:    Selected images disappearing from compiled CHM                                                                               
    I've got a project that I'm trying to get compiled into a CHM file from
    RoboHTML 8. Everything seems to have gone fine, except that four of the
    images I added to the project prior to compilation don't show up in the
    CHM. They seem to be fine when viewed from RoboHelp, they're where they're
    supposed to be, and the source code of the compiled CHM refrences them
    correctly. And yet... they don't actually show up! I have tried renaming
    them, and reimporting them into the project, but these tricks didn't work.
    I'm hoping someone out there has some suggestions!

  • How can I automatically create a rectangular layer mask from an irregularly shaped selection?

    I am trying to automatically crop images. The subject is on a white background and extends from the left edge of the image to the right. The top and bottom of the subject are within the frame. I need to crop a certain distance from the top and bottom of the subject and a predefined width that would be calculated from the height of the subject.
    My current idea is to create a duplicate layer and run Threshold on it, which allows me to select the subject clearly. Once I have the subject selected I can use Image -> Crop to create the desired rectangle, but I can't figure out a way to create a mask from the irregularly selected subject. Does anyone know a way to take a selection and convert it to a rectangle? I hope this makes sense, I can try to explain better if not. Thanks.
    --Chris

    // make selection rectangular;
    // 2013, use it at your own risk;
    #target photoshop
    if (app.documents.length > 0) {
    var myDocument = app.activeDocument;
    try {
    var theBounds = myDocument.selection.bounds;
    var theArray = [[theBounds[0], theBounds[1]], [theBounds[2], theBounds[1]], [theBounds[2], theBounds[3]], [theBounds[0], theBounds[3]]];
    myDocument.selection.select(theArray, SelectionType.REPLACE, 0, false);
    catch (e) {}

  • TSQL query to calculate Count / Sum grouping by date on a Pivot Table

    Hi All
    I need help to group the pivot table output to group by dates and sum/count the values. I have a table like shown below.
    Date
    Student 
    Subject
    Hunt
    Marks
    18/02/2014
    Sam 
    Maths
    1
    20
    18/02/2014
    Sam 
    Maths
    1
    10
    18/02/2014
    Sam 
    Maths
    2
    30
    18/02/2014
    Luke
    Science
    1
    50
    17/02/2014
    Sam 
    Maths
    2
    50
    17/02/2014
    Luke
    Science
    2
    60
    16/02/2014
    Luke
    Science
    2
    20
    16/02/2014
    Luke
    Science
    3
    20
    I want to Group by dates and move the Hunt to columns calculating their counts and sum their marks too. Like given below.
    I wrote a pivot query like below but If i group it with dates and calculate the total marks it throws aggregate errors.
    Create Table Student_Log ([Date] datetime ,Student varchar (20), Subject varchar (20) ,Hunt int ,Marks int )
    Go
    INSERT INTO Student_Log ([Date],Student, [Subject],Hunt,Marks) VALUES('2014-02-18 15:00:00.000','Sam ','Maths','1','20')
    INSERT INTO Student_Log ([Date],Student, [Subject],Hunt,Marks) VALUES('2014-02-18 15:00:00.000','Sam ','Maths','1','10')
    INSERT INTO Student_Log ([Date],Student, [Subject],Hunt,Marks) VALUES('2014-02-18 15:00:00.000','Sam ','Maths','2','30')
    INSERT INTO Student_Log ([Date],Student, [Subject],Hunt,Marks) VALUES('2014-02-18 15:00:00.000','Luke','Science','1','50')
    INSERT INTO Student_Log ([Date],Student, [Subject],Hunt,Marks) VALUES('2014-02-17 15:00:00.000','Sam ','Maths','2','50')
    INSERT INTO Student_Log ([Date],Student, [Subject],Hunt,Marks) VALUES('2014-02-17 15:00:00.000','Luke','Science','2','60')
    INSERT INTO Student_Log ([Date],Student, [Subject],Hunt,Marks) VALUES('2014-02-16 15:00:00.000','Luke','Science','2','20')
    INSERT INTO Student_Log ([Date],Student, [Subject],Hunt,Marks) VALUES('2014-02-16 15:00:00.000','Luke','Science','3','20')
    Go
    select * from Student_Log
    select [DATE] , [Student], [Subject] ,[1],[2],[3],[4],Total =([1]+[2]+[3]+[4])
    from
    ( select [Date], [Student], [Subject],[Hunt],[Marks] from Student_Log
    )x
    pivot
    count ( [Hunt]) for [Hunt]
    in ([1],[2],[3],[4])
    )p
    order by [Date] desc
    I have done this far only. More than this I need to enhance it with the Percentage of Hunts for each Student.
    ie like below table.
    On 18th Sam in Maths he had 2 rows on 1st hunt  and 1 row on 2nd hunt. So On the Pivot table is it possible to represent it on percentage using the Total Attempts column.
    Thanks a lot in advance.
    Its runnung in SQL 2000 Server.

    Create Table Student_Log ([Date] datetime ,Student varchar (20), Subject varchar (20) ,Hunt int ,Marks int )
    Go
    INSERT INTO Student_Log ([Date],Student, [Subject],Hunt,Marks) VALUES('2014-02-18 15:00:00.000','Sam ','Maths','1','20')
    INSERT INTO Student_Log ([Date],Student, [Subject],Hunt,Marks) VALUES('2014-02-18 15:00:00.000','Sam ','Maths','1','10')
    INSERT INTO Student_Log ([Date],Student, [Subject],Hunt,Marks) VALUES('2014-02-18 15:00:00.000','Sam ','Maths','2','30')
    INSERT INTO Student_Log ([Date],Student, [Subject],Hunt,Marks) VALUES('2014-02-18 15:00:00.000','Luke','Science','1','50')
    INSERT INTO Student_Log ([Date],Student, [Subject],Hunt,Marks) VALUES('2014-02-17 15:00:00.000','Sam ','Maths','2','50')
    INSERT INTO Student_Log ([Date],Student, [Subject],Hunt,Marks) VALUES('2014-02-17 15:00:00.000','Luke','Science','2','60')
    INSERT INTO Student_Log ([Date],Student, [Subject],Hunt,Marks) VALUES('2014-02-16 15:00:00.000','Luke','Science','2','20')
    INSERT INTO Student_Log ([Date],Student, [Subject],Hunt,Marks) VALUES('2014-02-16 15:00:00.000','Luke','Science','3','20')
    Go
    select * from Student_Log
    ;with mycte as
    Select [Date], [Student], [Subject] ,
    Count(CASE WHEN [Hunt]=1 Then Hunt End) as Hunt1,
    Count(CASE WHEN [Hunt]=2 Then Hunt End) as Hunt2,
    Count(CASE WHEN [Hunt]=3 Then Hunt End) as Hunt3,
    Count(CASE WHEN [Hunt]=4 Then Hunt End) as Hunt4,
    Count(CASE WHEN [Hunt]=1 Then Hunt End)
    +Count(CASE WHEN [Hunt]=2 Then Hunt End)
    +Count(CASE WHEN [Hunt]=3 Then Hunt End)+
    +Count(CASE WHEN [Hunt]=4 Then Hunt End) as Total,
    ISNULL(SUM(CASE WHEN [Hunt]=1 Then Marks End),0) as Mark1,
    ISNULL(SUM(CASE WHEN [Hunt]=2 Then Marks End),0) as Mark2,
    ISNULL(SUM(CASE WHEN [Hunt]=3 Then Marks End),0) as Mark3,
    ISNULL(SUM(CASE WHEN [Hunt]=4 Then Marks End),0) as Mark4
    from Student_Log
    Group By [Date], [Student], [Subject]
    Select [Date], [Student], [Subject]
    , Cast(Hunt1*1./Total*100 as int) as [1]
    , Cast(Hunt2*1./Total*100 as int) as [2]
    ,Cast(Hunt3*1./Total*100 as int) as [3]
    ,Cast(Hunt4*1./Total*100 as int) as [4]
    ,Total,Marks=( Mark1+Mark2+Mark3+Mark4)
    from mycte
    order by [Date] DESC, Student desc
    drop table Student_Log

  • Compare String in a table and insert the common values into a New table

    Hi all,
    Anyone has idea on how to compare a string value in a table.
    I have a Students Table with Student_id and Student_Subject_list columns as below.
    create table Students( Student_id number,
    Student_Subject_list varchar2(2000)
    INSERT INTO Students VALUES (1,'Math,Science,Arts,Music,Computers,Law,Business,Social,Language arts,History');
    INSERT INTO Students VALUES (2,'Math,Law,Business,Social,Language arts,History,Biotechnology,communication');
    INSERT INTO Students VALUES (3,'History,Spanish,French,Langage arts');
    INSERT INTO Students VALUES (4,'History,Maths,Science,Chemistry,English,Reading');
    INSERT INTO Students VALUES (5,'Math,Science,Arts,Music,Computer Programming,Language arts,History');
    INSERT INTO Students VALUES (6,'Finance,Stocks');
    output
    Student_id     Student_Subject_list
    1     Math,Science,Arts,Music,Computers,Law,Business,Social,Language arts,History
    2     Math,Law,Business,Social,Language arts,History,Biotechnology,communication
    3     History,Spanish,French,Langage arts
    4     History,Maths,Science,Chemistry,English,Reading
    5     Math,Science,Arts,Music,Computer Programming,Language arts,History
    6     Finance,Stocks
    I need help or some suggestion in write a query which can compare each row string value of Student_Subject_list columns and insert the
    common subjects into a new table(Matched_Subjects).The second table should have the below colums and data.
    create table Matched_Subjects(Student_id number,
    Matching_studesnt_id Number,
    Matched_Student_Subject varchar2(2000)
    INSERT INTO Matched_Subjects VALUES (1,2,'Math,Law,Business,Social,Language arts,History');
    INSERT INTO Matched_Subjects VALUES (1,3,'History,Langage arts');
    INSERT INTO Matched_Subjects VALUES (1,4,'History,Maths,Science');
    INSERT INTO Matched_Subjects VALUES (1,5,'Math,Science,Arts,Music,Language arts,History');
    INSERT INTO Matched_Subjects VALUES (2,3,'History,Langage arts');
    INSERT INTO Matched_Subjects VALUES (2,4,'History,Maths');
    INSERT INTO Matched_Subjects VALUES (2,5,'Math,Language arts,History');
    INSERT INTO Matched_Subjects VALUES (3,4,'History');
    INSERT INTO Matched_Subjects VALUES (3,5,'Language arts,History');
    INSERT INTO Matched_Subjects VALUES (4,5,'Math,Science');
    output:
    Student_id      Match_Student_id     Matched_Student_Subject
    1     2     Math,Law,Business,Social,Language arts,History
    1     3     History,Langage arts
    1     4     History,Maths,Science
    1     5     Math,Science,Arts,Music,Language arts,History
    2     3     History,Langage arts
    2     4     History,Maths
    2     5     Math,Language arts,History
    3     4     History
    3     5     Language arts,History
    4     5     Math,Science
    any help will be appreciated.
    Thanks.
    Edited by: user7988 on Sep 25, 2011 8:45 AM

    user7988 wrote:
    Is there an alternate approach to this without using xmlagg/xmlelement What Oracle version are you using? In 11.2 you can use LISTAGG:
    insert
      into Matched_Subjects
      with t as (
                 select  student_id,
                         column_value l,
                         regexp_substr(student_subject_list,'[^,]+',1,column_value) subject
                   from  students,
                         table(
                               cast(
                                    multiset(
                                             select  level
                                               from  dual
                                               connect by level <= length(regexp_replace(student_subject_list || ',','[^,]'))
                                    as sys.OdciNumberList
      select  t1.student_id,
              t2.student_id,
              listagg(t1.subject,',') within group(order by t1.l)
        from  t t1,
              t t2
        where t1.student_id < t2.student_id
          and t1.subject = t2.subject
        group by t1.student_id,
                 t2.student_id
    STUDENT_ID MATCHING_STUDESNT_ID MATCHED_STUDENT_SUBJECT
             1                    2 Math,Law,Business,Social,Language arts,History
             1                    3 Language arts,History
             1                    4 Science,History
             1                    5 Math,Science,Arts,Music,Language arts,History
             2                    3 Language arts,History
             2                    4 History
             2                    5 Math,Language arts,History
             3                    4 History
             3                    5 History,Language arts
             4                    5 History,Science
    10 rows selected.
    SQL> Prior to 11.2 you can create your own string aggregation function STRAGG - there are plenty of example on this forum. Or use hierarchical query:
    insert
      into Matched_Subjects
      with t1 as (
                  select  student_id,
                          column_value l,
                          regexp_substr(student_subject_list,'[^,]+',1,column_value) subject
                    from  students,
                          table(
                                cast(
                                     multiset(
                                              select  level
                                                from  dual
                                                connect by level <= length(regexp_replace(student_subject_list || ',','[^,]'))
                                     as sys.OdciNumberList
           t2 as (
                  select  t1.student_id student_id1,
                          t2.student_id student_id2,
                          t1.subject,
                          row_number() over(partition by t1.student_id,t2.student_id order by t1.l) rn
                    from  t1,
                          t1 t2
                    where t1.student_id < t2.student_id
                      and t1.subject = t2.subject
      select  student_id1,
              student_id2,
              ltrim(sys_connect_by_path(subject,','),',') MATCHED_STUDENT_SUBJECT
        from  t2
        where connect_by_isleaf = 1
        start with rn = 1
        connect by student_id1 = prior student_id1
               and student_id2 = prior student_id2
               and rn = prior rn + 1
    STUDENT_ID MATCHING_STUDESNT_ID MATCHED_STUDENT_SUBJECT
             1                    2 Math,Law,Business,Social,Language arts,History
             1                    3 Language arts,History
             1                    4 Science,History
             1                    5 Math,Science,Arts,Music,Language arts,History
             2                    3 Language arts,History
             2                    4 History
             2                    5 Math,Language arts,History
             3                    4 History
             3                    5 History,Language arts
             4                    5 History,Science
    10 rows selected.SY.

  • Sending ALV output in a mail in PDF format

    Hi folks,
                I have a requiremtnt. If i execute my ALV report in background, the output should be sent to the reciepient's mail in pdf format. i have used the function moudles CONVERT_ABAPSPOOLJOB_2_PDF and SO_DOCUMENT_SEND_API1. Now i am able to see my report output in spool in some pdf formt. how can i send this to the reciever mail as an attachement...pls send me any sample report which suits my reqirement...thanks in advance,
               Ram.

    REPORT ZSAP_EMAIL MESSAGE-ID Z001.
    *TABLES: rlgrap, btcxpm." zlookup.
    DATA:
    V_ZCODE(3) TYPE C,
    *svrname LIKE zlookup-zdesc,
    WA_ERROR(80) TYPE C,
    GLOBAL_FILEMASK_ALL(80).
    DATA: T_SOUD LIKE SOUD.
    DATA: P_INFOLDER LIKE SOFDK.
    DATA: P_OUTFOLDER LIKE SOFDK.
    DATA: OBJECT_HD_DISPLAY LIKE SOOD2.
    DATA: OBJECT_ID LIKE SOODK.
    DATA: DOCUMENT LIKE SOOD4.
    DATA: HEADER_DATA LIKE SOOD2.
    DATA: LINK_FOLDER_ID LIKE SOODK.
    DATA: FOLDER_SELECTIONS LIKE SOFDS.
    DATA: FOLDER_LIST LIKE SOXLI OCCURS 0 WITH HEADER LINE.
    DATA: RECEIVERS LIKE SOOS1 OCCURS 0 WITH HEADER LINE.
    DATA: OBJCONT LIKE SOLI OCCURS 0 WITH HEADER LINE.
    DATA: OBJHEAD LIKE SOLI OCCURS 0 WITH HEADER LINE.
    DATA: OBJECT_CONTENT LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE.
    DATA: OBJECT_HD_CHANGE LIKE SOOD1.
    DATA: BEGIN OF FILES OCCURS 0,
    LINE(200) TYPE C,
    END OF FILES.
    DATA: LISTOBJECT LIKE ABAPLIST OCCURS 1 WITH HEADER LINE.
    *Email to addresses
    SELECTION-SCREEN: BEGIN OF BLOCK BL1 WITH FRAME TITLE TEXT-BL1.
    PARAMETERS: P_MAILTO(240) TYPE C.
    *PARAMETERS:P_MAILTO TYPE SOLI-LINE.
    SELECTION-SCREEN SKIP 1.
    SELECTION-SCREEN COMMENT 10(2) TEXT-001.
    *Use zlookup-ztype as group to define multiple email to addresses
    *SELECT-OPTIONS: s_mailto FOR zlookup-ztype.
    SELECTION-SCREEN: END OF BLOCK BL1.
    *Subject
    SELECTION-SCREEN: BEGIN OF BLOCK BL2 WITH FRAME TITLE TEXT-BL2.
    PARAMETERS: P_SUBJ LIKE DOCUMENT-OBJDES.
    SELECTION-SCREEN: END OF BLOCK BL2.
    *Body
    SELECTION-SCREEN: BEGIN OF BLOCK BL3 WITH FRAME TITLE TEXT-BL3.
    PARAMETERS: P_BODY1 LIKE SOLISTI1-LINE LOWER CASE.
    PARAMETERS: P_BODY2 LIKE SOLISTI1-LINE LOWER CASE.
    PARAMETERS: P_BODY3 LIKE SOLISTI1-LINE LOWER CASE.
    PARAMETERS: P_BODY4 LIKE SOLISTI1-LINE LOWER CASE.
    PARAMETERS: P_BODY5 LIKE SOLISTI1-LINE LOWER CASE.
    PARAMETERS: P_BODY6 LIKE SOLISTI1-LINE LOWER CASE.
    SELECTION-SCREEN: END OF BLOCK BL3.
    *Attachments
    SELECTION-SCREEN: BEGIN OF BLOCK BL4 WITH FRAME TITLE TEXT-BL4.
    PARAMETERS: P_FNAME1 LIKE FILES-LINE.
    PARAMETERS: P_FNAME2 LIKE FILES-LINE.
    PARAMETERS: P_FNAME3 LIKE FILES-LINE.
    PARAMETERS: P_FNAME4 LIKE FILES-LINE.
    PARAMETERS: P_FNAME5 LIKE FILES-LINE.
    PARAMETERS: P_FNAME6 LIKE FILES-LINE.
    SELECTION-SCREEN: END OF BLOCK BL4.
    AT SELECTION-SCREEN.
      PERFORM CHK_SELECTION.
      IF NOT WA_ERROR IS INITIAL.
        MESSAGE E001 WITH WA_ERROR.
      ENDIF.
    START-OF-SELECTION.
    END-OF-SELECTION.
      PERFORM SEND_EMAIL.
    FORM chk_selection
    FORM CHK_SELECTION.
      CLEAR WA_ERROR.
    *Loop only once ???
    *If more checkings to be done.
    *Think about it and if not clear.
    *Let it sink in for a couple of minutes.
    *Still doesn't make sence? Go home and sleep on it.
      DO 1 TIMES.
    *Check Email to
        IF P_MAILTO IS INITIAL .
    *AND s_mailto IS INITIAL.
          WA_ERROR = 'Invalid or no EMAIL TO selection'.
          EXIT.
        ENDIF.
      ENDDO.
    ENDFORM.                    "chk_selection
    *& Form send_email
    *text
    *--> p1 text
    *<-- p2 text
    FORM SEND_EMAIL.
      PERFORM GET_FOLDER_INFO.
      PERFORM FILL_BODY.
      PERFORM INS_NEW_OBJECT.
      PERFORM CRT_ATTACHMENTS.
      PERFORM FILL_RECEIVERS_INFO.
      PERFORM SND_EMAIL.
    ENDFORM. " send_email
    *--+--
    *FORM Get_folder_info
    FORM GET_FOLDER_INFO.
      CLEAR T_SOUD.
    *Small so should be quick.
      SELECT * FROM SOUD
      INTO T_SOUD
      WHERE SAPNAM = SY-UNAME.
        P_INFOLDER-FOLTP = 'FOL'.
        P_INFOLDER-FOLYR = T_SOUD-INBYR. "inbox
        P_INFOLDER-FOLNO = T_SOUD-INBNO.
        P_OUTFOLDER-FOLTP = 'FOL'.
        P_OUTFOLDER-FOLYR = T_SOUD-OUTYR. "outbox
        P_OUTFOLDER-FOLNO = T_SOUD-OUTNO.
      ENDSELECT.
    ENDFORM.                    "get_folder_info
    *FORM fill_body *
    FORM FILL_BODY.
      OBJECT_CONTENT-LINE = P_BODY1.
      APPEND OBJECT_CONTENT.
      OBJECT_CONTENT-LINE = P_BODY2.
      APPEND OBJECT_CONTENT.
      OBJECT_CONTENT-LINE = P_BODY3.
      APPEND OBJECT_CONTENT.
      OBJECT_CONTENT-LINE = P_BODY4.
      APPEND OBJECT_CONTENT.
      OBJECT_CONTENT-LINE = P_BODY5.
      APPEND OBJECT_CONTENT.
      OBJECT_CONTENT-LINE = P_BODY6.
      APPEND OBJECT_CONTENT.
    ENDFORM.                    "fill_body
    *FORM ins_new_object *
    FORM INS_NEW_OBJECT.
      OBJECT_HD_CHANGE-OBJNAM = 'Notes'.
      OBJECT_HD_CHANGE-OBJDES = P_SUBJ.
      CALL FUNCTION 'SO_OBJECT_INSERT'
        EXPORTING
          FOLDER_ID                  = P_OUTFOLDER
          OBJECT_HD_CHANGE           = OBJECT_HD_CHANGE
          OBJECT_TYPE                = 'RAW'
          OWNER                      = SY-UNAME
        IMPORTING
          OBJECT_HD_DISPLAY          = OBJECT_HD_DISPLAY
          OBJECT_ID                  = OBJECT_ID
        TABLES
          OBJCONT                    = OBJECT_CONTENT
          OBJHEAD                    = OBJHEAD
        EXCEPTIONS
          ACTIVE_USER_NOT_EXIST      = 1
          COMMUNICATION_FAILURE      = 2
          COMPONENT_NOT_AVAILABLE    = 3
          DL_NAME_EXIST              = 4
          FOLDER_NOT_EXIST           = 5
          FOLDER_NO_AUTHORIZATION    = 6
          OBJECT_TYPE_NOT_EXIST      = 7
          OPERATION_NO_AUTHORIZATION = 8
          OWNER_NOT_EXIST            = 9
          PARAMETER_ERROR            = 10
          SUBSTITUTE_NOT_ACTIVE      = 11
          SUBSTITUTE_NOT_DEFINED     = 12
          SYSTEM_FAILURE             = 13
          X_ERROR                    = 14
          OTHERS                     = 15.
      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    "ins_new_object
    *FORM crt_attachments *
    *--> P_SUBJ *
    FORM CRT_ATTACHMENTS.
      DOCUMENT-FOLTP = P_OUTFOLDER-FOLTP.
      DOCUMENT-FOLYR = P_OUTFOLDER-FOLYR.
      DOCUMENT-FOLNO = P_OUTFOLDER-FOLNO.
      DOCUMENT-OBJTP = OBJECT_ID-OBJTP.
      DOCUMENT-OBJYR = OBJECT_ID-OBJYR.
      DOCUMENT-OBJNO = OBJECT_ID-OBJNO.
      DOCUMENT-OBJNAM = 'Notes'.
      DOCUMENT-OBJDES = P_SUBJ.
      DOCUMENT-OKCODE = 'CHNG'.
      DOCUMENT-FILE_EXT = 'TXT'.
      LINK_FOLDER_ID = OBJECT_ID.
      HEADER_DATA-OBJLA = 'EN'.
      HEADER_DATA-OBJNAM = DOCUMENT-OBJNAM.
      HEADER_DATA-OBJDES = DOCUMENT-OBJDES.
      HEADER_DATA-OBJPRI = '5'.
      HEADER_DATA-OBJSNS = 'O'.
      HEADER_DATA-FILE_EXT = 'TXT'.
      REFRESH FILES.
      CLEAR FILES.
      IF NOT P_FNAME1 IS INITIAL.
        FILES-LINE = P_FNAME1.
        APPEND FILES.
      ENDIF.
      IF NOT P_FNAME2 IS INITIAL.
        FILES-LINE = P_FNAME2.
        APPEND FILES.
      ENDIF.
      IF NOT P_FNAME3 IS INITIAL.
        FILES-LINE = P_FNAME3.
        APPEND FILES.
      ENDIF.
      IF NOT P_FNAME4 IS INITIAL.
        FILES-LINE = P_FNAME4.
        APPEND FILES.
      ENDIF.
      IF NOT P_FNAME5 IS INITIAL.
        FILES-LINE = P_FNAME5.
        APPEND FILES.
      ENDIF.
      IF NOT P_FNAME6 IS INITIAL.
        FILES-LINE = P_FNAME6.
        APPEND FILES.
      ENDIF.
      IF NOT FILES[] IS INITIAL.
        CALL FUNCTION 'SO_DOCUMENT_REPOSITORY_MANAGER'
          EXPORTING
            METHOD      = 'ATTCREATEFROMPC'
          TABLES
            FILES       = FILES
          CHANGING
            DOCUMENT    = DOCUMENT
            HEADER_DATA = HEADER_DATA.
        IF SY-SUBRC = 0.
          MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
          WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
      ENDIF.
    ENDFORM.                    "crt_attachments
    *FORM fill_receivers_info *
    FORM FILL_RECEIVERS_INFO.
      DATA: BEGIN OF RECLIST OCCURS 0,
      REC LIKE RECEIVERS-RECEXTNAM,
      END OF RECLIST.
    *Build reclist
      REFRESH RECLIST.
      IF NOT P_MAILTO IS INITIAL.
        RECLIST-REC = P_MAILTO.
        APPEND RECLIST.
      ENDIF.
    *IF NOT s_mailto IS INITIAL.
    *SELECT zdesc
    *INTO reclist-rec
    *FROM zlookup
    *WHERE ztype IN s_mailto.
    *APPEND reclist.
    *ENDSELECT.
    *ENDIF.
      REFRESH RECEIVERS.
      LOOP AT RECLIST.
        FOLDER_SELECTIONS-FOLNAM = 'INBOX'.
        CALL FUNCTION 'SO_FOLDER_LIST_READ'
          EXPORTING
            FOLDER_SELECTIONS          = FOLDER_SELECTIONS
            OWNER                      = SY-UNAME
            REGION                     = 'P'
          TABLES
            FOLDER_LIST                = FOLDER_LIST
          EXCEPTIONS
            COMPONENT_NOT_AVAILABLE    = 1
            OPERATION_NO_AUTHORIZATION = 2
            OWNER_NOT_EXIST            = 3
            PARAMETER_ERROR            = 4
            X_ERROR                    = 5
            OTHERS                     = 6.
        IF SY-SUBRC = 0.
          CLEAR RECEIVERS.
          MOVE: SY-DATUM TO RECEIVERS-RCDAT,
      SY-UZEIT TO RECEIVERS-RCTIM,
      ' ' TO RECEIVERS-RECESC,
      P_MAILTO TO RECEIVERS-RECNAM,
      'X' TO RECEIVERS-SNDEX.
          APPEND RECEIVERS.
         RECEIVERS-RCDAT = SY-DATUM.
         RECEIVERS-RCTIM = SY-UZEIT.
         RECEIVERS-RECNAM = RECLIST-REC.
         RECEIVERS-RECNO = FOLDER_LIST-PARNO.
         RECEIVERS-RECTP = FOLDER_LIST-PARTP.
         RECEIVERS-RECYR = FOLDER_LIST-PARYR.
         RECEIVERS-SNDTP = FOLDER_LIST-PARTP.
         RECEIVERS-SNDYR = FOLDER_LIST-PARYR.
         RECEIVERS-SNDNO = FOLDER_LIST-PARNO.
         RECEIVERS-SNDNAM = SY-UNAME.
         RECEIVERS-SNDPRI = '1'.
         RECEIVERS-MSGID = 'SO'.
         RECEIVERS-MSGNO = '619'.
         RECEIVERS-DELIVER = 'X'.
         RECEIVERS-NOT_DELI = 'X'.
         RECEIVERS-READ = 'X'.
         RECEIVERS-MAILSTATUS = 'E'.
    **receivers-ADR_NAME
         RECEIVERS-RESEND = ' '.
         RECEIVERS-SORTFIELD = ' '. "'USER WF_BATCH INDIGO BATCH'.
         RECEIVERS-SORTCLASS = '5'.
         APPEND RECEIVERS.
        ELSE.
          CLEAR RECEIVERS.
          RECEIVERS-SEL = 'X'.
          RECEIVERS-RECESC = 'U'.
          RECEIVERS-RECNAM = 'U-'.
          RECEIVERS-RECEXTNAM = RECLIST-REC.
          RECEIVERS-DELIVER = 'X'.
          RECEIVERS-NOT_DELI = 'X'.
          RECEIVERS-READ = 'X'.
          RECEIVERS-MAILSTATUS = 'E'.
          RECEIVERS-ADR_NAME = RECLIST-REC.
          RECEIVERS-SORTFIELD = RECLIST-REC.
          RECEIVERS-SORTCLASS = '5'.
          APPEND RECEIVERS.
        ENDIF.
      ENDLOOP.
    ENDFORM.                    "fill_receivers_info
    *FORM snd_email *
    FORM SND_EMAIL.
      CALL FUNCTION 'SO_OBJECT_SEND'
        EXPORTING
          FOLDER_ID                  = P_OUTFOLDER
          OBJECT_ID                  = OBJECT_ID
          OUTBOX_FLAG                = 'X'
          OWNER                      = SY-UNAME
          CHECK_SEND_AUTHORITY       = 'X'
          ORIGINATOR_TYPE            = 'J'
          LINK_FOLDER_ID             = LINK_FOLDER_ID
        TABLES
          OBJCONT                    = OBJECT_CONTENT
          RECEIVERS                  = RECEIVERS
        EXCEPTIONS
          ACTIVE_USER_NOT_EXIST      = 1
          COMMUNICATION_FAILURE      = 2
          COMPONENT_NOT_AVAILABLE    = 3
          FOLDER_NOT_EXIST           = 4
          FOLDER_NO_AUTHORIZATION    = 5
          FORWARDER_NOT_EXIST        = 6
          NOTE_NOT_EXIST             = 7
          OBJECT_NOT_EXIST           = 8
          OBJECT_NOT_SENT            = 9
          OBJECT_NO_AUTHORIZATION    = 10
          OBJECT_TYPE_NOT_EXIST      = 11
          OPERATION_NO_AUTHORIZATION = 12
          OWNER_NOT_EXIST            = 13
          PARAMETER_ERROR            = 14
          SUBSTITUTE_NOT_ACTIVE      = 15
          SUBSTITUTE_NOT_DEFINED     = 16
          SYSTEM_FAILURE             = 17
          TOO_MUCH_RECEIVERS         = 18
          USER_NOT_EXIST             = 19
          ORIGINATOR_NOT_EXIST       = 20
          X_ERROR                    = 21
          OTHERS                     = 22.
      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    "snd_email
    go through this.
    Thanks

  • Inserting into XMLType View

    I have created an XMLType view with an INSTEAD OF trigger to insert data into the underlying tables. I used your example on XMLType view of Relational Content
    It works great if I have no attributes defined in the root element of the XML document (i.e. xmlns, schemaLocation, etc.). However, if my document contains any of those attributes, it will not load. I have tried creating the view with and without the xml attributes, as well as making sure that the schemaLocation is identical to the one in the document (copied and pasted just to make sure).
    Is there anything that you can point to right away that I'm missing?
    If needed, I can post code for you.
    Thanks!

    Here is the code I used to generate the tables, view, and triggers:
    drop table p_student_demographics;
    create table p_student_demographics -- a
    wiser_id varchar2(8),
    first_name varchar2(15),
    middle_name varchar2(15),
    last_name varchar2(25),
    birthdate date,
    school_id varchar2(7),
    special_ed_teacher varchar2(50)
    drop table p_scorer_info;
    create table p_scorer_info -- b
    test_record_id number,
    scorer_number number,
    name varchar2(80),
    email varchar2(50)
    drop table p_test_record;
    create table p_test_record -- c
    wiser_id varchar2(8),
    test_record_id number,
    grade_tested varchar2(2),
    first_scorer_completed varchar2(3),
    second_scorer_completed varchar2(3)
    drop table p_psw_test_results;
    create table p_psw_test_results -- d
    test_record_id number,
    subject varchar2(7),
    entry_number number,
    complexity varchar2(1),
    performance varchar2(1),
    independence varchar2(1),
    generalization varchar2(1),
    non_scorable varchar2(4)
    drop table p_spe_test_results;
    create table p_spe_test_results -- e
    test_record_id number,
    subject varchar2(7),
    entry_number number,
    item_number number,
    response varchar2(1)
    drop table p_total_scores;
    create table p_total_scores -- f
    test_record_id number,
    subject varchar2(7),
    psw_total_raw_score varchar2(2),
    spe_total_raw_score varchar2(2),
    tas_score varchar2(2),
    tas_portfolio_score varchar2(2),
    tas_spe_score varchar2(2),
    overall_total_raw_score varchar2(2),
    overall_performance_level varchar2(1)
    drop table p_school_info;
    create table p_school_info
    district_id varchar2(7),
    district_name varchar2(80),
    school_id varchar2(7),
    school_name varchar2(80)
    create or replace view paws_alt_test_results
    of xmltype
    xmlschema "http://www.k12.wy.us/public/paws-alt-results-v1.xsd" element "PawsAltResults"
    with object id
    (to_number(extractValue(object_value,'/PawsAltResults/Students/TestRecord/TestRecordId')))
    as
    select xmlelement
    "PawsAltResults",
    xmlelement
    "Students",
    xmlelement
    "StudentInfo",
    xmlelement
    "StudentDemographics",
    xmlelement("WiserId", a.wiser_id),
    xmlelement("FirstName", a.first_name),
    xmlelement("MiddleName", a.middle_name),
    xmlelement("LastName", a.last_name),
    xmlelement("BirthDate", a.birthdate)
    xmlelement("SchoolId", a.school_id),
    xmlelement("SpecialEdTeacher", a.special_ed_teacher),
    xmlelement
    "DocumentCompletedBy",
    xmlelement("FirstScorer", c.first_scorer_completed),
    xmlelement("SecondScorer", c.second_scorer_completed)
    xmlelement
    "FirstScorerInfo",
    xmlelement("Name", b1.name),
    xmlelement("Email", b1.email)
    xmlelement
    "SecondScorerInfo",
    xmlelement("Name", b2.name),
    xmlelement("Email", b2.email)
    xmlelement
    "TestRecord",
    xmlelement("TestRecordId", c.test_record_id),
    xmlelement("GradeTested", c.grade_tested),
    xmlelement
    "Subjects",
    select xmlagg
    xmlelement
    "Subject",
    xmlelement("SubjectName", f.subject),
    xmlelement
    "Psw",
    xmlelement
    "Entries",
    select xmlagg
    xmlelement
    "Entry",
    xmlelement("EntryNumber", x.entry_number),
    xmlelement("Complexity", x.complexity),
    xmlelement("Performance", x.performance),
    xmlelement("Independence", x.independence),
    xmlelement("Generalization", x.generalization),
    xmlelement("NonScorable", x.non_scorable)
    from p_psw_test_results x
    where f.test_record_id = x.test_record_id
    and f.subject = x.subject
    xmlelement("TotalRawScore", f.psw_total_raw_score)
    xmlelement
    "Spe",
    xmlelement
    "Entries",
    select xmlagg
    xmlelement
    "Entry",
    xmlelement("EntryNumber", x.entry_number),
    xmlelement
    "Items",
    select xmlagg
    xmlelement
    "Item",
    xmlelement("ItemNumber", y.item_number),
    xmlelement("Response", y.response)
    from p_spe_test_results y
    where x.test_record_id = y.test_record_id
    and x.subject = y.subject
    and x.entry_number = y.entry_number
    from (select distinct
    test_record_id,
    subject,
    entry_number
    from p_spe_test_results) x
    where f.test_record_id = x.test_record_id
    and f.subject = x.subject
    xmlelement("TotalRawScore", f.spe_total_raw_score)
    xmlelement("TasScore", f.tas_score),
    xmlelement("TasPortfolioScore", f.tas_portfolio_score),
    xmlelement("TasSpeScore", f.tas_spe_score),
    xmlelement("OverallTotalRawScore", f.overall_total_raw_score),
    xmlelement("OverallPerformanceLevel", f.overall_performance_level)
    from p_total_scores f
    where c.test_record_id = f.test_record_id
    xmlelement
    "Districts",
    select xmlagg
    xmlelement
    "DistrictInfo",
    xmlelement("DistrictId", district_id),
    xmlelement("DistrictName", district_name)
    from (select distinct
    district_id,
    district_name
    from p_school_info)
    xmlelement
    "Schools",
    select xmlagg
    xmlelement
    "SchoolInfo",
    xmlelement("DistrictId", district_id),
    xmlelement("SchoolId", school_id),
    xmlelement("SchoolName", school_name)
    from p_school_info
    from p_student_demographics a,
    p_scorer_info b1,
    p_scorer_info b2,
    p_test_record c
    where a.wiser_id = c.wiser_id
    and b1.test_record_id = b2.test_record_id
    and b1.test_record_id = c.test_record_id
    and b1.scorer_number = 1
    and b2.scorer_number = 2;
    create or replace trigger io_ins_paws_alt_results
    instead of insert on paws_alt_test_results
    begin
    insert all
    into p_student_demographics
    (wiser_id, first_name, middle_name, last_name, birthdate, school_id,
    special_ed_teacher)
    values
    (wiser_id, first_name, middle_name, last_name, birthdate, school_id,
    special_ed_teacher)
    into p_scorer_info
    (test_record_id, scorer_number, name, email)
    values
    (test_record_id, 1, name1, email1)
    into p_scorer_info
    (test_record_id, scorer_number, name, email)
    values
    (test_record_id, 2, name2, email2)
    into p_test_record
    (wiser_id, test_record_id, grade_tested, first_scorer_completed,
    second_scorer_completed)
    values
    (wiser_id, test_record_id, grade_tested, first_scorer_completed,
    second_scorer_completed)
    select a.*
    from xmltable
    '/PawsAltResults'
    passing :new.object_value
    columns
    wiser_id varchar2(8) path 'Students/StudentInfo/StudentDemographics/WiserId',
    first_name varchar2(15) path 'Students/StudentInfo/StudentDemographics/FirstName',
    middle_name varchar2(15) path 'Students/StudentInfo/StudentDemographics/MiddleName',
    last_name varchar2(25) path 'Students/StudentInfo/StudentDemographics/LastName',
    birthdate date path 'Students/StudentInfo/StudentDemographics/Birthdate',
    school_id varchar2(7) path 'Students/StudentInfo/SchoolId',
    special_ed_teacher varchar2(50) path 'Students/StudentInfo/SpecialEdTeacher',
    test_record_id number path 'Students/StudentInfo/TestRecord/TestRecordId',
    name1 varchar2(80) path 'Students/StudentInfo/FirstScorerInfo/Name',
    email1 varchar2(50) path 'Students/StudentInfo/FirstScorerInfo/Email',
    name2 varchar2(80) path 'Students/StudentInfo/SecondScorerInfo/Name',
    email2 varchar2(50) path 'Students/StudentInfo/SecondScorerInfo/Email',
    grade_tested varchar2(2) path 'Students/StudentInfo/TestRecord/GradeTested',
    first_scorer_completed varchar2(3) path 'Students/StudentInfo/DocumentCompletedBy/FirstScorer',
    second_scorer_completed varchar2(3) path 'Students/StudentInfo/DocumentCompletedBy/SecondScorer'
    ) a;
    insert all
    into p_psw_test_results
    (test_record_id, subject, entry_number, complexity, performance,
    independence, generalization, non_scorable)
    values
    (test_record_id, subject, entry_number, complexity, performance,
    independence, generalization, non_scorable)
    into p_total_scores
    (test_record_id, subject, psw_total_raw_score, spe_total_raw_score,
    tas_score, tas_portfolio_score, tas_spe_score,
    overall_total_raw_score, overall_performance_level)
    values
    (test_record_id, subject, psw_total_raw_score, spe_total_raw_score,
    tas_score, tas_portfolio_score, tas_spe_score,
    overall_total_raw_score, overall_performance_level)
    select a.test_record_id,
    b.subject,
    b.psw_total_raw_score,
    b.spe_total_raw_score,
    b.tas_score,
    b.tas_portfolio_score,
    b.tas_spe_score,
    b.overall_total_raw_score,
    b.overall_performance_level,
    c.*
    from xmltable
    '/PawsAltResults/Students/StudentInfo/TestRecord'
    passing :new.object_value
    columns
    test_record_id number path 'TestRecordId',
    subjects xmltype path 'Subjects/Subject'
    ) a,
    xmltable
    '/Subject'
    passing a.subjects
    columns
    subject varchar2(7) path 'SubjectName',
    psw_total_raw_score varchar2(2) path 'Psw/Entries/TotalRawScore',
    spe_total_raw_score varchar2(2) path 'Spe/TotalRawScore',
    tas_score varchar2(2) path 'TasScore',
    tas_portfolio_score varchar2(2) path 'TasPortfolioScore',
    tas_spe_score varchar2(2) path 'TasSpeScore',
    overall_total_raw_score varchar2(2) path 'OverallTotalRawScore',
    overall_performance_level varchar2(1) path 'OverallPerformanceLevel',
    entries xmltype path 'Psw/Entries/Entry'
    ) b,
    xmltable
    '/Entry'
    passing b.entries
    columns
    entry_number number path 'EntryNumber',
    complexity varchar2(1) path 'Complexity',
    performance varchar2(1) path 'Performance',
    independence varchar2(1) path 'Independence',
    generalization varchar2(1) path 'Generalization',
    non_scorable varchar2(4) path 'NonScorable'
    ) c;
    insert
    into p_spe_test_results
    (test_record_id, subject, entry_number, item_number, response)
    select a.test_record_id,
    b.subject,
    c.entry_number,
    d.*
    from xmltable
    '/PawsAltResults/Students/StudentInfo/TestRecord'
    passing :new.object_value
    columns
    test_record_id number path 'TestRecordId',
    subjects xmltype path 'Subjects/Subject'
    ) a,
    xmltable
    '/Subject'
    passing a.subjects
    columns
    subject varchar2(7) path 'SubjectName',
    entries xmltype path 'Spe/Entries/Entry'
    ) b,
    xmltable
    '/Entry'
    passing b.entries
    columns
    entry_number number path 'EntryNumber',
    items xmltype path 'Items/Item'
    ) c,
    xmltable
    '/Item'
    passing c.items
    columns
    item_number number path 'ItemNumber',
    response varchar2(1) path 'Response'
    ) d;
    insert
    into p_school_info
    (district_id, district_name, school_id, school_name)
    select a.district_id,
    a.district_name,
    b.school_id,
    b.school_name
    from xmltable
    'PawsAltResults/Districts/DistrictInfo'
    passing :new.object_value
    columns
    district_id varchar2(7) path 'DistrictId',
    district_name varchar2(80) path 'DistrictName'
    ) a,
    xmltable
    'PawsAltResults/Schools/SchoolInfo'
    passing :new.object_value
    columns
    district_id varchar2(7) path 'DistrictId',
    school_id varchar2(7) path 'SchoolId',
    school_name varchar2(80) path 'SchoolName'
    ) b
    where a.district_id = b.district_id;
    end io_ins_paws_alt_results;
    XML document:
    <?xml version="1.0" encoding="UTF-8"?>
    <PawsAltResults xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2001/XMLSchema http://www.k12.wy.us/public/paws-alt-results-v1.xsd" xmlns="http://www.w3.org/2001/XMLSchema">
    <Students>
    <StudentInfo>
    <StudentDemographics>
    <WiserId>12345678</WiserId>
    <FirstName>TestFirst</FirstName>
    <MiddleName>M</MiddleName>
    <LastName>TestLast</LastName>
    <BirthDate>2000-02-02</BirthDate>
    </StudentDemographics>
    <SchoolId>2222222</SchoolId>
    <SpecialEdTeacher>Test Special Ed Teacher</SpecialEdTeacher>
    <DocumentCompletedBy>
    <FirstScorer>Yes</FirstScorer>
    <SecondScorer>No</SecondScorer>
    </DocumentCompletedBy>
    <FirstScorerInfo>
    <Name>Test First Scorer</Name>
    <Email>[email protected]</Email>
    </FirstScorerInfo>
    <SecondScorerInfo>
    <Name>Test Second Scorer</Name>
    <Email>[email protected]</Email>
    </SecondScorerInfo>
    <TestRecord>
    <TestRecordId>1</TestRecordId>
    <GradeTested>08</GradeTested>
    <Subjects>
    <Subject>
    <SubjectName>Reading</SubjectName>
    <Psw>
    <Entries>
    <Entry>
    <EntryNumber>1</EntryNumber>
    <Complexity>1</Complexity>
    <Performance>2</Performance>
    <Independence>3</Independence>
    <Generalization>B</Generalization>
    </Entry>
    </Entries>
    <TotalRawScore>20</TotalRawScore>
    </Psw>
    <Spe>
    <Entries>
    <Entry>
    <EntryNumber>1</EntryNumber>
    <Items>
    <Item>
    <ItemNumber>1</ItemNumber>
    <Response>1</Response>
    </Item>
    <Item>
    <ItemNumber>2</ItemNumber>
    <Response>2</Response>
    </Item>
    </Items>
    </Entry>
    </Entries>
    <TotalRawScore>30</TotalRawScore>
    </Spe>
    <TasScore>10</TasScore>
    <TasPortfolioScore>20</TasPortfolioScore>
    <TasSpeScore>15</TasSpeScore>
    <OverallTotalRawScore>50</OverallTotalRawScore>
    <OverallPerformanceLevel>3</OverallPerformanceLevel>
    </Subject>
    </Subjects>
    </TestRecord>
    </StudentInfo>
    </Students>
    <Districts>
    <DistrictInfo>
    <DistrictId>1111111</DistrictId>
    <DistrictName>Test District Name</DistrictName>
    </DistrictInfo>
    </Districts>
    <Schools>
    <SchoolInfo>
    <DistrictId>1111111</DistrictId>
    <SchoolId>2222222</SchoolId>
    <SchoolName>Test School Name</SchoolName>
    </SchoolInfo>
    </Schools>
    </PawsAltResults>
    Insert statement:
    insert into paws_alt_test_results values (xmltype(bfilename('XMLDIR','test-paws-alt.xml'),nls_charset_id('AL32UTF8')));
    There are no errors shown on the insert statement. It tells me that one row was inserted, but there is no data when looking at the tables (unless I remove the attributes from the root element of the XML file).
    I'm using version 10.2.0.3
    Thanks for your help!

Maybe you are looking for

  • Timeout for user session/connection

    Hi All, We have 81741 database acessed by windowNT/2000 users connecting via formswebserver(6.0.8.21.1) using JInitiator 1.1.8.19, we use Apache server and/or webDb listener on webserver. Users are assigned different roles like engineer, technician,

  • How can I achieve to print label without packaging

    hello As I do not handle packaging for label . Is there any way to achieve this . Also I tried to put different gen variant for different label size in material master and put the same region but the system is not allowing to put two different gen va

  • Quicktime Operation could not be completed when trying to save

    I have recently been watching webinars online and have been using Quicktime to record these so I can go back when I have more time to study them and learn from them.  I have run into an issue when I go to save my most recent file.  I get the error me

  • Status Profile in Item Category Definition

    Hello All, Whats the significance of status Profile in Item category definition. Please provide your inputs. Thanks & regards Vittal

  • I got an ipad2 for Christmas but I am unable to connect to itunes

    I have downloaded OS 5.0.1 and restored factory settings. I can connect to the internet without problems, but when I try to connect to the app store or itunes the asterisk just keeps spinning and it says "loading" until eventually it says it cannot c