Area of the parts != Area of the whole

My tables are polygon datasets stored in NAD83 (SRID=8265) and I have noticed that the sum of area calculations of a subdivided polygon do not equal the area of the original polygon.
I created a simple test case to confirm the results. I created a square polygon, 5 degrees by 5 degrees (-94,36, -89,36, -89,31, -94,31, -94,36), and the resulting area (in square miles) is 99455.7384. I then cut that polygon into 10 irregular pieces which, if they were unioned back together, would equal the original polygon exactly. If I calculate the area on these polygons and sum the area, the result is 99444.1878 (a difference of ~11.5 square miles). I have increased the precision of the area fields to rule out problems caused by rounding or truncation. Why does the sum of the area of the parts not equal the area of the whole? Is there any way to perform a more rigourous area calculation that will give me areas that equal each other? I was wondering about triangulating the polygons (sort of like a TIN structure) before doing the area calculations to reduce error caused by the irregularity of the polygons. A tringulation solution would be ok for smaller datasets, but I am working with datasets that have 4 million polygons, so triangulation would be a bit time-consuming. It is important for our reporting purposes that the area sums equal the original area.
On a somewhat related topic, I have also noticed that if I intersect that same starting polygon from above (5 degrees by 5 degrees) with another polygon dataset that extends beyond the boundaries of this polygon, the northen and southern boundaries of the resulting 'intersected' dataset are curved northward, with the northern boundary extending a small bit beyond the original boundary. I get resulting polygons that have coordinate values greater than 36 in the y dimension (northern boundary of the original), and only two coordinates that are equal to 31 which are found at the southern corners of the original. I understand that this is caused by the use of 'great circles' to calculate the shortest distance between my two northern boundary points and between my two southern boundary points, so this is not a 'bug' because great circles are not the same as latitude parallels. Is there any way to force the sdo_intersection command to perform the intersecetion while treating the coordinates as 'cartesian' coordinates, so that none of the resulting coordinate values extend beyond the original boundaries of my dataset?
Thanks in advance for any help or suggestions.
John

Hi John,
It is very likely that the first part of your question is related to the information you understand from the second part of your question, which is that Oracle uses great circles to connect points in a geodetic coordinate system.
-94,36 connecting to -89, 36 actually deviates from the 36 degree line of latitude by almost 3km at its greatest (2885.3 meters at coordinate -91.5,36). That distance is smallest near the actual vertices and gets larger and larger until the midpoint between the coordinates specified (hence 91.5,36).
If you arbitrarily cut that polygon into several pieces, then depending on how you slice it you could get a polygon with greater or smaller area than the original (if you slice horizontally you will get an area larger than the original, if you slice vertically the area is smaller).
So hopefully the above explains the first part of your question.
The second part of your question relates to the ability of Oracle to densify coordinates to either eliminate or greatly reduce the "drift" of the data along a line of latitude.
Starting in Oracle 10g, the ability to specify a a geodetic "rectangle" was added to spatial/locator). This is done by specifying just the lower left and upper right coordinates, and using an sdo_elem_info_array of (1,1003,3) where the interpretation of 3 means you are specifying a rectangle. So your polygon would be specified as
sdo_geometry(2003,8265,null,sdo_elem_info_array(1,1003,3),sdo_ordinate_array(-94,31,-89,36))
Internally, this signals Oracle to densify this geometry at 1 degree intervals along the lines of latitude, so the movement off of the latitude line is limited.
How limited? The "drift" off the line of latitude is greatest at 45 degrees north and south (this makes sense if you think about it - there is no drift at the equator, which of course is a great circle itself, and there is no drift at the poles). So you can use spatial to calculate the greatest drift:
select sdo_geom.sdo_distance(
sdo_geometry(2002,8265,null,sdo_elem_info_array(1,2,1),sdo_ordinate_array(-91,45,-90,45)),
sdo_geometry(2001,8265,sdo_point_type(-90.5,45,null),null,null),0.5)
from dual;
So at 45 degrees north latitude, when densifying automatically every degree, the greatest movement from the line of latitude is about 121.3 meters.
If you need to follow the line of longitude more precisely, you can densify at greater precision. For instance, if you densify at 0.5 degree intervals your greatest drift is about 30 meters. If you densify at 0.1 degree intervals along the line of latitude your greatest difference is about 1.21 meters.
You could write a function to automatically densify, being careful near the poles so you don't create invalid geometries.
Hope this helps,
Dan

Similar Messages

  • I'm having trouble with installing a 8g kit in my late 2009 mac mini. when the parts are installed all i get is a beeping sound, is there any way to get around this?

    i'm having trouble with installing a 8g kit in my late 2009 mac mini. when the parts are installed all i get is a beeping sound, is there any way to get around this?

    What is the source & link to this 8 GB kit please?
    Can you count the beeps or flashes?
    1 beep = no RAM installed
    2 beeps = incompatible RAM types
    3 beeps = no good banks
    4 beeps = no good boot images in the boot ROM (and/or bad sys config block)
    5 beeps = processor is not usable
    In addition to the beeps, on some computers the power LED will flash a corresponding number of times plus one. The LED will repeat the sequence after approximately a 5-second pause. The tones are only played once.
    Note: In this case, a flash is considered to be 1/4 second or 250 ms or greater in length.
    http://support.apple.com/kb/HT1547

  • Does anyone know the part number for the printhead for the HP Officejet 6500a

    My printer doesn't print, initally it didn't print black, then I soaked the printhead in hot water as instructed now it doesn't print at all, so I need to replace it.  Does anyone know the part number for the printhead for the HP Officejet 6500aThank You,

    Hi Temprosal,I looked up the product specifications for the HP Officjet 6500a.Here are steps for ordering a new printhead: These steps apply to the United States only.If HP replaces your printhead assembly under warranty, you receive a new printhead assembly, cleaning materials, and a full set of new ink cartridges.If your printhead assembly is no longer under warranty, you can purchase a new one online.Go to the HP Parts Store website (in English).  https://h20141.www2.hp.com/Hpparts/CountryChoice.aspxUnder Find your part(s), type CN643A in the Search by part number text box.Follow the on-screen instructions to order the printhead assembly.Jean

  • Can I find the part numbers for the output drivers on the PCI-6534 Card?

    We are planning to use an NI-6534 card to test very sensitive hardware. The DAQ will simulate the interface to which this particular piece of hardware will be connected.
    Our concern is that there is some way that we can damage our hardware during test.
    The best way to insure that this is not a concern would be to say that the DAQ interfaces to our hardware in the exact same way as our real interface. This of course is not likely, so we need to understand the differences. To do this I think we need to compare the I/O spec of the devices directly connected to our hardware under test on both the DAQ and our interface.
    Of course we need to know the part number of the NI I/O output drivers.
    The kind of data I think we are interested in is:
    Voh, Vol, Ioh, Iol, and transition times...
    Thank you for any help you can provide.

    Hi goldbach,
    The other specification you were looking for, slew rate, is typically between 2.75 and 4.5 ns depending on your load. The following knowledge base discusses briefly on this point.
    DIO-32HS (6533) Cabling Issues
    http://digital.ni.com/public.nsf/websearch/783D15B155FAC6F1862566B3006A32F0?OpenDocument
    Hope that helps. Have a good day.
    Ron

  • Satellite M50-159: What is the part number of the origanal AC power adapter

    My power adapter has broken and up until now i have been using a universal adapter but the connection is loose and takes a while for the orange light to turn on.
    My question is what is the part number of the original AC adapter that came with this laptop. I have just ordered what i thought was the correct power adapter part number was PA3468E-1AC3 but the connecter did not fit into my laptop even though the toshiba website said this power adapter was compatible.
    Please help
    Alex

    Hi dear friend,
    you had the wrong partnumber. What you need is PA3283U2ACA (K000028790) which is the right one. Heres a link where you can check the connector of the AC-adapter:
    http://www.sparepartswarehouse.com/Toshiba,Laptop,Part,K000028790.aspx
    I hope you will get what you need. :)
    Greets

  • What is the part number for the fan for the dv7 2270 us

    what is the part number for the fan for the dv7 2270 us

    Dear Kamat,
    The HP manual (http://h10032.www1.hp.com/ctg/Manual/c01689926.pdf) says that the Fan/Heat sink assembly (depending on the graphics subsystems memory type), can be the following:
    516876-001 (for discrete)
    516331-001 (for UMA)
    I dont know what graphics subsystem type is the DV7-2270US (VM189UA), but it doesnt matter in this case, becouse, if you search for those two part numbers, no one of them, is used in that computer. Check it your self:
    http://h20141.www2.hp.com/Hpparts/part_where_used.aspx?mscssid=5FB90592D9AD45D39C93EDC2771FE844&Sear...
    and
    http://h20141.www2.hp.com/Hpparts/part_where_used.aspx?mscssid=5FB90592D9AD45D39C93EDC2771FE844&Sear...
    CAN ANYBODY ELSE TELL US WHAT IS THE PART NUMBER FOR THE FAN OF A HP PAVILION DV7-2270US (VM189UA) ??
    Regards,
    Nicolas

  • Satellite P300 - I need the part number of the original screen

    Please can anyone help?
    I need to get Toshiba part number for the original screen in my Satellite P300-20H. My laptop fell of the bed and the only way I can use it is with an external display
    all else is fine with the laptop but it would be a great help if I could get the part number for the original 17" WXGA+ TruBrite.
    Please feel free to email any help you have: Email:[[email protected]]
    much thanks
    Welsh_Jam

    Hello
    I think nobody here can anwer your question: Its only a user to user forum and you will not find any notebook technicians here they can tell you the part number of the screen.
    If you want to know it you should contact an ASP. They can order all original Toshiba parts:
    http://eu.computers.toshiba-europe.com => Support & Downloads => Find an authorized service provider
    Greets

  • A Campocatino-Foto has high Gamma:Parts too bright,parts too dark.The parts are irregularly separated.How can I manage? I tried to use "Lasso" to mark both parts,but I couldn't change Gamma separately!???

    As written above:
    I want to make a foto in some areas brighter,in some areas darker,so that the structure is better to be seen.
    I made the whole foto brighter, thenI "caught" the brighter part with Lasso-function to make it darker.But this didn't work!!

    If you have a RAW version of the photo, you can adjust the shadow and highlight contrast in Adobe Camera Raw.  Later versions of PS also allows you to open jpgs and other file formats in ACR, so you can use these adjustments. 

  • Sony CFD S300. What is the part number for the optical pick up? How do you replace the optical pick

    Hi. Apparently none of the links work on the sony site for this product (Sony CFD S300 CD Radio Cassette Recorder). Does anyone know what the part number is for the optical pick up (laser)? They have them on eay for around $10 but i do not know which one to get. Also anyone have directions on how to replace it? There is a soder ball somewhere too. Thanks!!

    Hi LifelongCamper,
    There are two Optical pickups available for the CD player. Part #s of the Optical pickups for this CD player are 882016102 and 884848312. You can purchase “882016102” from below provided link:
    https://servicesales.sel.sony.com/ecom/accessories/web/shoppingCart.do?operation=addToCart&itemId=12...
    Instructions to replace internal parts of the CD player are not made available to end users.

  • What is the part number for the mini gbic?

    I need to replace a mini gbic from a MDS-9124. I tried very hard to find the part number but it is not clear. There are 2 part numbers writen in the gbic, but I could not confirm any of it. The part numbers that is writen are DSSFP4GSW-4 and the other is 102195-01. If someone can help I would really appreciate.

    At the switch, you could use the << show int fc1/x transceiver details >> command which would give you the programmed part-number.
    The DSS... sticker is likely the Cisco partnumber.
    It's perhaps a good habit to do at least once execute a full "show tech" of each (new_ switch and save the output. This would give you all the (least) information for the future. . . reproducing is always difficult if the part or switch is not available (anymore) ;) .
    Regards, Peter.

  • What is the Part number for the plastic rear cover of Pavilion G70 ?

    I send my notebook Pavilion G70 for manintenance and the tecnician lost its rear plastic (between the Display cover and the Base), so I want to know what is the part number and  where can I bought it?  I will be very grateful by any help because I could not find this part at HP site.

    Hi Werlang,
    I just sent you a private message. If you are not sure how to check your forum messages, this post has instructions.
    Thanks.
    Please click “Accept as Solution ” if you feel my post solved your issue, it will help others find the solution.
    Click the “Kudos, Thumbs Up" on the bottom to say “Thanks” for helping!

  • How can I take the part that parses the .XML file and make it a procedure.

    CREATE OR REPLACE PACKAGE BODY XMLSTUD6 AS
    Author: Jimmy Harris
    Created: 5/25/2006
    Purpose: 1.This package has an XML file initialized to a variable called DOC .
              2.It will then take the values from the XML file and insert them into a PL/SQL table.
              3.From the PL/SQL table it will insert values into the STUDENTS table.
              4.After step four above, the STUDLOAD procedure will insert (Sequence,Status, .XML file, USER, SYSDATE, ERROR_Message
                             into the AUDIT_XMLSTUD table regardless if insert status was successfull or not status is indicated by either an Y or
              NO and the original XML filed that was currently processed, the date and user who executed the procedure.
              If the status was NO then it will insert the Oracle SQLERRM massage, into the REASON_FOR_ERROR column.
                             If status is Y then REASOK_FOR_ERROR IS NULL.
                             5,Make sure you embed the xml file with an inner and outer ' ' ie: ' the whole .xml file string ' as the input
                             parameter into the STUDLOAD procedure.
    This package excepts the whole .XML file as a CLOB as an input parameter, so that the end-user will not have
                                  modify the code.      
    Modification History:     1.6/09/2006 JImmy Harris Modified code, added the Function "WORD_CONVERTER1" to accept the requested text data and
    return a coded value back to our Welligent system.     
                                  2. Was advised that a front end type of functionality was not neccesary for this issue so I removed the INSERT_XML_FILE,
                                  UPDATE_XML_FILE and the INSERT_XML_file.
    FUNCTION WORD_CONVERTER1 (v_domain IN VARCHAR2 := null,
    v_incoming IN VARCHAR2 := null) RETURN VARCHAR2 IS
    v_well VARCHAR2(32);
    v_editdd BOOLEAN;
    v_code VARCHAR2(32);
    CURSOR C_conv_wrd IS
    SELECT WELL
    INTO v_code
    FROM CONVERSION_TABLE
    WHERE DOMAIN = UPPER(TRIM(v_domain))
    AND INCOMING = UPPER(TRIM(v_incoming));
    BEGIN
    OPEN c_conv_wrd;
    LOOP
    FETCH c_conv_wrd INTO v_code;
    EXIT WHEN c_conv_wrd%NOTFOUND;
    END LOOP;
    CLOSE c_conv_wrd;
    RETURN v_code;
    END WORD_CONVERTER1;
    PROCEDURE STUDLOAD (DOC CLOB) IS
    v_parser xmlparser.Parser;
    v_doc xmldom.DOMDocument;
    v_nl xmldom.DOMNodeList;
    v_n xmldom.DOMNode;
    v_mm NUMBER;
    v_dd NUMBER;
    v_yyyy NUMBER;
    v_DATE DATE;
    v_race VARCHAR2(1);
    v_eth VARCHAR2(1);
    v_prim_lang VARCHAR2(1);
    v_house_lang VARCHAR2(1);
    v_gender VARCHAR2(1);
    TYPE stuxml_type IS TABLE OF STUDENTS%ROWTYPE;
    s_tab stuxml_type := stuxml_type();
    v_success VARCHAR2(200);
    v_failure VARCHAR2(200);
    l_error_code varchar2(200);
    BEGIN
    -- Create a parser.
    v_parser := xmlparser.newParser;
    xmlparser.setValidationMode(v_parser, FALSE);
    -- Parse the document and create a new DOM document.
    SYS.XMLPARSER.PARSECLOB ( v_parser, DOC );
    v_doc := SYS.XMLPARSER.getDocument(v_parser);
    -- Free resources associated with the Parser now it is no longer needed.
    xmlparser.freeParser(v_parser);
    -- Get a list of all the STUD nodes in the document using the XPATH syntax.
    v_nl := xslprocessor.selectNodes(xmldom.makeNode(v_doc),'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent');
    -- Loop through the list and create a new record in a table collection for each STUD record.
    FOR stud IN 0 .. xmldom.getLength(v_nl) - 1 LOOP
    v_n := xmldom.item(v_nl, stud);
    s_tab.extend;
    -- Use XPATH syntax to assign values to he elements of the collection.
    s_tab(s_tab.last).STUDENT_LAST_NAME :=xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/Name/LastName');
         s_tab(s_tab.last).STUDENT_FIRST_NAME :=xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/Name/FirstName');
         s_tab(s_tab.last).STUDENT_MI :=xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/Name/MiddleName');
         v_dd := xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/BirthDate/Day');
         v_mm := xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/BirthDate/Month');
    v_yyyy := xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/BirthDate/Year');
         v_DATE := TO_DATE(v_mm||' '||v_dd||' '||v_yyyy,'MMDDYYYY');
         s_tab(s_tab.last).STUDENT_DOB := v_date;
         s_tab(s_tab.last).STUDENT_STREET :=xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/Address/Street');
         s_tab(s_tab.last).STUDENT_APART_NO :=xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/Address/ApartmentNumber');
         s_tab(s_tab.last).STUDENT_COUNTY :=xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/Address/County');
         s_tab(s_tab.last).STUDENT_STATE :=xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/Address/State');
         s_tab(s_tab.last).STUDENT_ZIP :=xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/Address/ZipCode');
    v_race := WORD_CONVERTER1('RACE',UPPER(xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/Race')));
         v_eth := WORD_CONVERTER1('EHTNICITY',UPPER(xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/Ethnicity')));
         v_prim_lang:= WORD_CONVERTER1('PRIMARY_LANG',UPPER(xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/PrimaryLanguage')));
         v_house_lang:= WORD_CONVERTER1('SECONDARY_LANG',UPPER(xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/HouseholdLanguage')));
         v_gender := WORD_CONVERTER1('GENDER',UPPER(xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/Gender')));
    s_tab(s_tab.last).STUDENT_RACE := v_race;
         s_tab(s_tab.last).STUDENT_ETHNIC := v_eth;
         s_tab(s_tab.last).STUDENT_PRI_LANG :=v_prim_lang;
         s_tab(s_tab.last).STUDENT_SEC_LANG := v_house_lang;
         s_tab(s_tab.last).STUDENT_GENDER :=v_gender;
    END LOOP;
    FOR stud IN s_tab.first..s_tab.last LOOP
    INSERT INTO STUDENTS (SHISID, SSN, DOE_SCHOOL_NUMBER,PATIENT_TYPE, TEACHER, HOMEROOM,STUDENT_LAST_NAME, STUDENT_FIRST_NAME, STUDENT_MI,STUDENT_DOB,
    STUDENT_BIRTH_CERT, STUDENT_COMM,STUDENT_MUSA, STUDENT_FAMSIZE, STUDENT_FAMINCOME,STUDENT_UNINSURED, STUDENT_LUNCH, STUDENT_ZIP,STUDENT_STATE,
    STUDENT_COUNTY, STUDENT_STREET,STUDENT_APART_NO, STUDENT_PHONE, STUDENT_H2O_TYPE,STUDENT_WASTE_TRT, STUDENT_HOME_SET, STUDENT_NONHOME_SET,
    STUDENT_GENDER, STUDENT_RACE, STUDENT_ETHNIC,STUDENT_PRI_LANG, STUDENT_SEC_LANG, STUDENT_ATRISK,EMER_COND_MEMO, ASSIST_DEVICE_TYPE,
    SCHOOL_ENTER_AGE,STUDENT_CURR_GRADE, S504_ELIG_DATE, S504_DEV_DATE,S504_REV_DATE, STUDENT_504, STUDENT_IEP,IEP_EXP_DATE, GRAD_CLASS, TYPE_DIPLOMA,
    GRADE_RETAIN, LIT_PASS_TEST_MATH, LIT_PASS_DATE_MATH,LIT_PASS_TEST_WRITE, LIT_PASS_DATE_WRITE, LIT_PASS_TEST_READ,LIT_PASS_DATE_READ, SPEC_ED_ELIG,
    SPEC_ED_CODE,TRANSPORT_CODE, TRANSPORT_NO, PRIME_HANDICAP,PRIME_HANDICAP_PERCENT, PRIME_HANDI_MANAGER, FIRST_ADD_HANDI,FIRST_ADD_HANDICAP_PERCENT,
    FIRST_ADD_HANDI_504, FIRST_ADD_HANDI_504_DATE, SECOND_ADD_HANDI, SECOND_ADD_HANDICAP_PERCENT, MED_EXTERNAL_NAME, INS_TYPE, INS_PRI, INS_NAME,
    INS_MEDICAID_NO, ELIGDATE, INS_PRIV_INSURANCE, INS_APPR_BILL, INS_APPR_DATE, INS_PARENT_APPR,INS_POL_NAME, INS_POL_NO, INS_CARRIER_NO,
    INS_CARRIER_NAME, INS_CARRIER_RELATE, INS_AFFECT_DATE, INS_COPAY_OV, INS_COPAY_RX, INS_COPAY_AMBUL,INS_COPAY_EMER, INS_COPAY_OUTPAT,STUDENT_INACTIVE,
    PHYS_ID, ENCOUNTERNUM,USERID,MODDATE, STUDENT_ID, S504_DISABILITY,CHAPTER1, WELLNESS_ENROLL, SCHOOL_OF_RESIDENCE,INITIAL_IEP_DATE, CALENDAR_TRACK,
    USA_BORN,ALT_ID, FUTURE_SCHOOL, IEP_LAST_MEETING,IEP_LAST_SETTING, IEP_LAST_REFER_EVAL, THIRD_ADD_HANDI,LEP, GIFTED, IEP_EXIT_REASON,
    CASE_MANAGER_ID, INTAKE_NOTES, CALLER_PHONE,CALL_DATE, CALLER_RELATIONSHIP, CALLER_NAME,BUSINESS_PHONE, FAX, EMAIL,HIGHEST_EDUCATION, INTAKE_DATE,
    SERVICE_COORDINATOR, DISCHARGE_DATE, DISCHARGE_REASON, DISCHARGE_NOTES,INTAKE_BY, INTAKE_STATUS, IEP_LAST_SERVED_DATE,IEP_APC_DATE, IEP_EXIT_DATE,
    ADDRESS2, LEGAL_STATUS, RELIGION, EMPLOYMENT_STATUS, TARG_POP_GROUP1, TARG_POP_GROUP2, MARITAL_STATUS,THIRD_ADD_HANDI_PERCENT, LAST_INTERFACE_DATE,
    SERVICE_PLAN_TYPE,CURRENT_JURISDICTION, FIPS, BIRTH_PLACE_JURISDICTION,BIRTH_PLACE_HOSPITAL, BIRTH_PLACE_STATE, BIRTH_PLACE_COUNTRY,
    OTHER_CLIENT_NAME, SIBLINGS_WITH_SERVICES, PERM_SHARE_INFORMATION,PERM_VERIFY_INSURANCE, REFERRING_AGENCY, REFERRING_INDIVIDUAL,AUTOMATIC_ELIGIBILITY,
    INTAKE_IEP_ID, FUTURE_SCHOOL2,FUTURE_SCHOOL3, TRANSLATOR_NEEDED, TOTAL_CHILDREN_IN_HOME,REFERRED_BY, FAMILY_ID, SCREENING_CONSENT_FLAG,PICTURE_FILE,
    DUAL_ENROLLED, DOE_SCHOOL_NUMBER2)
    VALUES (123456789025, null,null ,null,null,null ,s_tab(stud).STUDENT_LAST_NAME,s_tab(stud).STUDENT_FIRST_NAME,s_tab(stud).STUDENT_MI,
    s_tab(stud).STUDENT_DOB,null ,null,null ,null,null,null,null,s_tab(stud).STUDENT_ZIP,s_tab(stud).STUDENT_STATE ,s_tab(stud).STUDENT_COUNTY,
    s_tab(stud).STUDENT_STREET,s_tab(stud).STUDENT_APART_NO,null,null,null ,null , null,
    s_tab(stud).STUDENT_GENDER ,s_tab(stud).STUDENT_RACE , s_tab(stud).STUDENT_ETHNIC,
    s_tab(stud).STUDENT_PRI_LANG ,s_tab(stud).STUDENT_SEC_LANG, null, null ,null , null,
    null ,null , null, null ,null , null, null ,null , null, null ,null , null, null ,null , null, null ,null , null, null ,null , null,
    null ,null , null, null ,null , null, null ,null , null, null ,null , null, null ,null , null, null ,null , null, null ,null , null,
    null ,null , null, null ,null , null, null ,null , null, null ,null , null, null ,null , null, null ,null , null, null ,null , null,
    null ,null , null, null ,null , null, null ,null , null, null ,null , null, null ,null , null, null ,null , null, null ,null , null,
    null ,null , null, null ,null , null, null ,null , null, null ,null , null, null ,null , null, null ,null , null, null ,null , null,
    null ,null , null, null ,null , null, null ,null , null, null ,null , null, null ,null , null, null ,null , null, null, null,null );
    END LOOP;
    INSERT INTO AUDIT_XMLSTUD1(XMLSTUDPK,USERID,XMLFILE,STATUS,REASON_FOR_ERROR,DATE_MODIFIED)
    VALUES(SEQ_XMLSTUD1.NEXTVAL,USER,DOC,'Y',NULL,SYSDATE);
    HTP.HTMLOPEN;
    v_success:= 'The values from the .XML file have been successfully inserted into the STUDENTS table in the Oracle Database.';
    htp.bold(v_success);
    HTP.HTMLCLOSE;
    COMMIT;
    -- Free any resources associated with the document now it that it is no longer needed.
    xmldom.freeDocument(v_doc);
    EXCEPTION
    WHEN OTHERS THEN
    l_error_code := SQLERRM;
    INSERT INTO AUDIT_XMLSTUD1(XMLSTUDPK,USERID,XMLFILE,STATUS,REASON_FOR_ERROR,DATE_MODIFIED)
    VALUES(SEQ_XMLSTUD1.NEXTVAL,USER,nvl(DOC,TO_CLOB('No .XML file entered, user pressed button without entering correct information.')),'NO',l_error_code,SYSDATE);
    HTP.HTMLOPEN;
    v_failure:= 'The attempt made to insert files to the Student table has failed because,'||l_error_code;
    htp.bold(v_failure);
    HTP.HTMLCLOSE;
    COMMIT;
    END STUDLOAD;
    PROCEDURE UPDSTUDLOAD (DOC CLOB) IS
    v_parser xmlparser.Parser;
    v_doc xmldom.DOMDocument;
    v_nl xmldom.DOMNodeList;
    v_n xmldom.DOMNode;
    v_mm NUMBER;
    v_dd NUMBER;
    v_yyyy NUMBER;
    v_DATE DATE;
    v_race VARCHAR2(1);
    v_eth VARCHAR2(1);
    v_prim_lang VARCHAR2(1);
    v_house_lang VARCHAR2(1);
    v_gender VARCHAR2(1);
    TYPE stuxml_type IS TABLE OF STUDENTS%ROWTYPE;
    s_tab stuxml_type := stuxml_type();
    v_success VARCHAR2(200);
    v_failure VARCHAR2(200);
    l_error_code varchar2(200);
    BEGIN
    -- Create a parser.
    v_parser := xmlparser.newParser;
    xmlparser.setValidationMode(v_parser, FALSE);
    -- Parse the document and create a new DOM document.
    SYS.XMLPARSER.PARSECLOB ( v_parser, DOC );
    v_doc := SYS.XMLPARSER.getDocument(v_parser);
    -- Free resources associated with the Parser now it is no longer needed.
    xmlparser.freeParser(v_parser);
    -- Get a list of all the STUD nodes in the document using the XPATH syntax.
    v_nl := xslprocessor.selectNodes(xmldom.makeNode(v_doc),'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent');
    -- Loop through the list and create a new record in a table collection for each STUD record.
    FOR stud IN 0 .. xmldom.getLength(v_nl) - 1 LOOP
    v_n := xmldom.item(v_nl, stud);
    s_tab.extend;
    -- Use XPATH syntax to assign values to he elements of the collection.
    s_tab(s_tab.last).STUDENT_LAST_NAME :=xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/Name/LastName');
         s_tab(s_tab.last).STUDENT_FIRST_NAME :=xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/Name/FirstName');
         s_tab(s_tab.last).STUDENT_MI :=xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/Name/MiddleName');
         v_dd := xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/BirthDate/Day');
         v_mm := xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/BirthDate/Month');
    v_yyyy := xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/BirthDate/Year');
         v_DATE := TO_DATE(v_mm||' '||v_dd||' '||v_yyyy,'MMDDYYYY');
         s_tab(s_tab.last).STUDENT_DOB := v_date;
         s_tab(s_tab.last).STUDENT_STREET :=xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/Address/Street');
         s_tab(s_tab.last).STUDENT_APART_NO :=xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/Address/ApartmentNumber');
         s_tab(s_tab.last).STUDENT_COUNTY :=xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/Address/County');
         s_tab(s_tab.last).STUDENT_STATE :=xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/Address/State');
         s_tab(s_tab.last).STUDENT_ZIP :=xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/Address/ZipCode');
    v_race := WORD_CONVERTER1('RACE',UPPER(xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/Race')));
         v_eth := WORD_CONVERTER1('EHTNICITY',UPPER(xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/Ethnicity')));
         v_prim_lang:= WORD_CONVERTER1('PRIMARY_LANG',UPPER(xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/PrimaryLanguage')));
         v_house_lang:= WORD_CONVERTER1('SECONDARY_LANG',UPPER(xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/HouseholdLanguage')));
         v_gender := WORD_CONVERTER1('GENDER',UPPER(xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/Gender')));
    s_tab(s_tab.last).STUDENT_RACE := v_race;
         s_tab(s_tab.last).STUDENT_ETHNIC := v_eth;
         s_tab(s_tab.last).STUDENT_PRI_LANG :=v_prim_lang;
         s_tab(s_tab.last).STUDENT_SEC_LANG := v_house_lang;
         s_tab(s_tab.last).STUDENT_GENDER :=v_gender;
    END LOOP;
    FOR stud IN s_tab.first..s_tab.last LOOP
         UPDATE STUDENTS
         SET
         STUDENT_LAST_NAME = s_tab(stud).STUDENT_LAST_NAME,
         STUDENT_FIRST_NAME = s_tab(stud).STUDENT_FIRST_NAME,
         STUDENT_MI = s_tab(stud).STUDENT_MI,
         STUDENT_DOB = s_tab(stud).STUDENT_DOB,
         STUDENT_ZIP = s_tab(stud).STUDENT_ZIP,
         STUDENT_STATE = s_tab(stud).STUDENT_STATE,
         STUDENT_COUNTY = s_tab(stud).STUDENT_COUNTY,
         STUDENT_STREET = s_tab(stud).STUDENT_STREET,
         STUDENT_APART_NO = s_tab(stud).STUDENT_APART_NO
         WHERE SHISID = 123456789025;
    END LOOP;
    INSERT INTO AUDIT_XMLSTUD1(XMLSTUDPK,USERID,XMLFILE,STATUS,REASON_FOR_ERROR,DATE_MODIFIED)
    VALUES(SEQ_XMLSTUD1.NEXTVAL,USER,DOC,'Y',NULL,SYSDATE);
    HTP.HTMLOPEN;
    v_success:= 'The updated .XML file has been successfully saved to the STUDENTS table in the Oracle Database.';
    htp.bold(v_success);
    HTP.HTMLCLOSE;
    COMMIT;
    -- Free any resources associated with the document now it that it is no longer needed.
    xmldom.freeDocument(v_doc);
    EXCEPTION
    WHEN OTHERS THEN
    l_error_code := SQLERRM;
    INSERT INTO AUDIT_XMLSTUD1(XMLSTUDPK,USERID,XMLFILE,STATUS,REASON_FOR_ERROR,DATE_MODIFIED)
    VALUES(SEQ_XMLSTUD1.NEXTVAL,USER,nvl(DOC,TO_CLOB('No .XML file entered, user pressed button without entering correct information.')),'NO',l_error_code,SYSDATE);
    HTP.HTMLOPEN;
    v_failure:= 'The attempt made to insert files to the Student table has failed because,'||l_error_code;
    htp.bold(v_failure);
    HTP.HTMLCLOSE;
    COMMIT;
    END UPDSTUDLOAD;
    PROCEDURE DELSTUDLOAD (DOC CLOB) IS
    v_parser xmlparser.Parser;
    v_doc xmldom.DOMDocument;
    v_nl xmldom.DOMNodeList;
    v_n xmldom.DOMNode;
    v_mm NUMBER;
    v_dd NUMBER;
    v_yyyy NUMBER;
    v_DATE DATE;
    TYPE stuxml_type IS TABLE OF STUDENTS%ROWTYPE;
    s_tab stuxml_type := stuxml_type();
    v_success VARCHAR2(200);
    v_failure VARCHAR2(200);
    l_error_code varchar2(200);
    BEGIN
    -- Create a parser.
    v_parser := xmlparser.newParser;
    xmlparser.setValidationMode(v_parser, FALSE);
    -- Parse the document and create a new DOM document.
    SYS.XMLPARSER.PARSECLOB ( v_parser, DOC );
    v_doc := SYS.XMLPARSER.getDocument(v_parser);
    -- Free resources associated with the Parser now it is no longer needed.
    xmlparser.freeParser(v_parser);
    -- Get a list of all the STUD nodes in the document using the XPATH syntax.
    v_nl := xslprocessor.selectNodes(xmldom.makeNode(v_doc),'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent');
    -- Loop through the list and create a new record in a table collection for each STUD record.
    FOR stud IN 0 .. xmldom.getLength(v_nl) - 1 LOOP
    v_n := xmldom.item(v_nl, stud);
    s_tab.extend;
    -- Use XPATH syntax to assign values to he elements of the collection.
    s_tab(s_tab.last).STUDENT_LAST_NAME :=xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/Name/LastName');
         s_tab(s_tab.last).STUDENT_FIRST_NAME :=xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/Name/FirstName');
         s_tab(s_tab.last).STUDENT_MI :=xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/Name/MiddleName');
         v_dd := xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/BirthDate/Day');
         v_mm := xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/BirthDate/Month');
    v_yyyy := xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/BirthDate/Year');
         v_DATE := TO_DATE(v_mm||' '||v_dd||' '||v_yyyy,'MMDDYYYY');
         s_tab(s_tab.last).STUDENT_DOB := v_date;
         s_tab(s_tab.last).STUDENT_STREET :=xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/Address/Street');
         s_tab(s_tab.last).STUDENT_APART_NO :=xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/Address/ApartmentNumber');
         s_tab(s_tab.last).STUDENT_COUNTY :=xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/Address/County');
         s_tab(s_tab.last).STUDENT_STATE :=xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/Address/State');
         s_tab(s_tab.last).STUDENT_ZIP :=xslprocessor.valueOf(v_n,'/com.welligent.Student.BasicStudent.Create/DataArea/NewData/BasicStudent/Address/ZipCode');
    END LOOP;
    FOR stud IN s_tab.first..s_tab.last LOOP
         DELETE FROM STUDENTS
         WHERE SHISID = 123456789025;
    END LOOP;
    INSERT INTO AUDIT_XMLSTUD1(XMLSTUDPK,USERID,XMLFILE,STATUS,REASON_FOR_ERROR,DATE_MODIFIED)
    VALUES(SEQ_XMLSTUD1.NEXTVAL,USER,DOC,'Y',NULL,SYSDATE);
    HTP.HTMLOPEN;
    v_success:= 'The .XML file has been successfully deleted from the STUDENTS table in the Oracle Database.';
    htp.bold(v_success);
    HTP.HTMLCLOSE;
    COMMIT;
    -- Free any resources associated with the document now it that it is no longer needed.
    xmldom.freeDocument(v_doc);
    EXCEPTION
    WHEN OTHERS THEN
    l_error_code := SQLERRM;
    INSERT INTO AUDIT_XMLSTUD1(XMLSTUDPK,USERID,XMLFILE,STATUS,REASON_FOR_ERROR,DATE_MODIFIED)
    VALUES(SEQ_XMLSTUD1.NEXTVAL,USER,nvl(DOC,TO_CLOB('No .XML file entered, user pressed button without entering correct information.')),'NO',l_error_code,SYSDATE);
    HTP.HTMLOPEN;
    v_failure:= 'The attempt made to insert files to the Student table has failed because,'||l_error_code;
    htp.bold(v_failure);
    HTP.HTMLCLOSE;
    COMMIT;
    END DELSTUDLOAD;
    END XMLSTUD6;

    Try opening the problem files using a text editor or file viewer to see what the first few bytes contain. All valid FM binary files for FM 11 will contain <MakerFile 11.0> in the first bytes of the file.
    When updating books, it's sometimes better to just to create a new book file and add the files to that.
    When renaming files in a book, changes at the system level will break any links/cross-references between files, so it's always best to use the Rename option in the Book file to change FM file names. This will maintain the correct linkages.

  • Downloading files - can I block the empty file from appearing at all? I'm not talking about the .part file, but the one that disappears later anyways.

    Let's say I'm downloading several files, for each file that I'm downloading two new files appear in my download folder. For 'vol1.rar' I have ''an empty'' 'vol1.rar' and a 'vol1.rar.part' file, same for 'vol2.rar', 'vol3.rar', etc.
    I would like to block this empty 'vol1.rar' file from appearing at all - it disappears after the download is finished anyway, and the .part file gets renamed with the actual name.
    I'm downloading files to my desktop, from where I move them to the folders I want them in - having this disappearing 2nd file messes up the order I download the files in - if I add a new file after one of the files I was downloading has finished, the file be placed in the empty spot that the finished file has created, making it harder for me to move to the correct folder.
    A lot of people have asked if it was possible to turn off the .part file, but I haven't seen a single thread about the empty file instead.
    I know this file isn't necessary, because I moved it to another folder/deleted it many times before the download was finished and the real file was still fine.
    So, any ideas as to how to block this file?

    I don't believe there is any way to prevent file downloading if you allow internet access at all. as Király says, whatever they download and install will be limited to the guest account and will go poof on the logout.
    however you can disable CD/DVD and external drives access. some of it can be done by enabling parental controls on the guest account. for more options you can install server admin tools
    http://support.apple.com/downloads/ServerAdmin_Tools_105
    and use workgroup manager to set further restrictions on the guest account.
    P.S. workgroup manager can also forbid guest to mount disk images which will effectively make it impossible to install any programs at all even in the guest account.
    Message was edited by: V.K.

  • T430u need the part number for the Sata cable

    I have a t430u where the Sata cable is broken, i need the part number, I have searched around, called lenovo support (they said it was under warrenty, the say it was a bad hard drive and want $600 to replace a board) I know it is the Sata cable that clearly has 2 broken wires.  how do i know, if i hold the two loose wires to the posts, the machine boots and runs, but it is way too small to solder. any help would be appreciated. 
    t430u, and it is the mini-sata on one end an a right angled non-sata end.  I don't have a picture until i get the laptop returned from IBM.
    Solved!
    Go to Solution.

    I believe 04W4436 is correct. In the U.S. IBM does the parts distribution.
    http://www-304.ibm.com/shop/americas/webapp/wcs/stores/servlet/default/TopCategoriesDisplay?cntrfnbr...

  • What is the Part Number for the Lenovo Y500-9541 120V AC Adapter?

    Lost my adapter. I want to get a genuine OEM AC adapter for the single video card version of the Y500. Can someone take a look at their adapter and give me the P/N or model number?

    Any help would be appreciated.

Maybe you are looking for