ORA-22288 (another one)

Good afternoon,
When I run this code, the procedure completes successfully:
declare
ftyp utl_file.file_type;
begin
ftyp := utl_file.fopen('TOC_DOCS','DefRpt.pdf','r',32767);
end;
When I run this code, I get 'ORA-22288: file or LOB operation FILEOPEN failed'
Access is denied.
declare
v_bfile BFILE;
v_blob BLOB;
BEGIN
v_bfile := BFILENAME('TOC_DOCS', 'DefRpt.pdf');
Dbms_Lob.Fileopen(v_bfile, Dbms_Lob.File_Readonly);
end;
Same filename, same login, same database, same everything that I can see. I've checked the permissions on the windows directory that holds the file, I've checked the file itself (I've copied, moved, renamed, deleted, re-copied.... I have full access to the windows drive/directory where the file resides.)
What am I missing?
Thanks,
Don.

I don't have any test instances available at the moment to try this, but since pdf is considered a binary file, did you try opening in rb rather than r ?

Similar Messages

  • ORA-22288: file or LOB operation FILEOPEN failed (The data is invalid)

    Dear All,
    I am trying to insert a image file (gif) to one of my field.
    1. Here is my table structure and trying to insert gif image file to PIC file.
    SQL> desc cis2.david_pic
    Name Null? Type
    ID VARCHAR2(5)
    PIC BLOB
    2. I using sql command to create directory and the path is pointing where the DB
    server was installed.
    SQL> create or replace directory MY_FILES as '\\hkqaa-db1\TEXT_IMPORT';
    3. Written a script to insert empty blob first and than trying to use the dbms_lob.fileopen
    to upload the gif file.
    SQL> declare
    2 l_blob blob;
    3 l_bfile bfile;
    4 begin
    5 insert into cis2.david_pic values ( '1', empty_blob())
    6 returning pic into l_blob;
    7 l_bfile := bfilename('MY_FILES', 'bess_signature.gif');
    8 dbms_lob.fileopen(l_bfile);
    9 dbms_lob.loadfromfile(l_blob, l_bfile, dbms_lob.getlength(l_bfile));
    10 dbms_lob.fileclose(l_bfile);
    11 end;
    12 /
    4. After I ran my script I got this error message.
    declare
    ERROR at line 1:
    ORA-22288: file or LOB operation FILEOPEN failed
    The data is invalid.
    ORA-06512: at "SYS.DBMS_LOB", line 475
    ORA-06512: at line 8
    Can any tell me what wrong? is this the way to insert image?
    Thanks

    Know this is an old post: (for sharing sake.)
    Please try avoiding
    1. the 'hyphen' in between the path (hkqaadb1 instead of hkqaa-db1)
    2. Give direct path like 'C:\TEXT_IMPORT' instead of network path.
    create or replace directory MY_FILES as '\\hkqaa-db1\TEXT_IMPORT'; -- Not working.
    create or replace directory MY_FILES as 'C:\hkqaadb1\TEXT_IMPORT'; -- Working.
    and this worked fine.
    Edited by: Arunan.KL on Mar 23, 2011 5:04 PM

  • Dbms_lob.fileopen gives ORA-22288. Can open the same file with utl_file.

    What could cause the following behaviour:
    Database 11gR2
    declare
       l_amt        number := dbms_lob.lobmaxsize;
       l_dst_loc    clob;
       l_dst_offset number := 1;
       l_lang_ctx   number := dbms_lob.default_lang_ctx;
       l_src_loc    bfile;
       l_src_offset number := 1;
       l_warning    number;
    begin
       l_src_loc := bfilename('ODS_SERVER_DIRECTORY', '_CIVKD_ASU.CSV');
       dbms_lob.createtemporary(l_dst_loc, true);
       dbms_lob.fileopen(l_src_loc, dbms_lob.file_readonly);
       dbms_lob.loadclobfromfile(l_dst_loc
                                ,l_src_loc
                                ,l_amt
                                ,l_dst_offset
                                ,l_src_offset
                                ,dbms_lob.default_csid
                                ,l_lang_ctx
                                ,l_warning);
       commit;
       dbms_lob.fileclose(l_src_loc);
       dbms_output.put_line(substr(l_dst_loc, 1, 200));
    end;
    ORA-22288: file or LOB operation FILEOPEN failed
    ORA-06512: in "SYS.DBMS_LOB", line 805
    ORA-06512: in line 31
    22288. 00000 -  "file or LOB operation %s failed\n%s"
    *Cause:    The operation attempted on the file or LOB failed.
    *Action:   See the next error message in the error stack for more detailed
               information.  Also, verify that the file or LOB exists and that
               the necessary privileges are set for the specified operation. If
               the error still persists, report the error to the DBA.However opening and reading the exact same file succeeds when using utl_file.
    declare
       l_file utl_file.file_type;
       l_regel varchar2(4000);
    begin
       l_file := utl_file.fopen('ODS_SERVER_DIRECTORY', '_CIVKD_ASU.CSV', 'R');
       -- Haal de volgende regel op
       utl_file.get_line(l_file, l_regel);
       dbms_output.put_line(l_regel);
       utl_file.fclose_all;
    end;So it seems the file is available and accessable by the database.
    It's the first time we run into this particular error and it's one of the first 11gR2 instances so maybe there is something 11g specific we don't know about?

    Some progress made. It turns out the directory object points to a shared drive. It's a windows server and Oracle runs as Local System. I always thought that it was impossible to read anything from a shared drive in this situation. Apparently in some situations you can using utl_file but not usign dbms_lob.

  • ORA-22288

    I've a procedure to load a file into a table:
    CREATE OR REPLACE PROCEDURE load_xml (p_dir IN VARCHAR2,
    p_filename IN VARCHAR2) AS
    l_bfile BFILE := BFILENAME(p_dir, p_filename);
    l_clob CLOB;
    BEGIN
    DBMS_LOB.createtemporary (l_clob, TRUE);
    DBMS_LOB.fileopen(l_bfile, DBMS_LOB.file_readonly);
    DBMS_LOB.loadfromfile(l_clob, l_bfile, DBMS_LOB.getlength(l_bfile));
    DBMS_LOB.fileclose(l_bfile);
    INSERT INTO xml_tab (
    id,
    filename,
    xml
    VALUES (
    xml_tab_seq.NEXTVAL,
    p_filename,
    XMLTYPE.createXML(l_clob)
    COMMIT;
    DBMS_LOB.freetemporary (l_clob);
    END;
    But i always get this error message:
    ERROR at line 1:
    ORA-22288: file or LOB operation FILEOPEN failed
    The system can't find the path
    the path is 'C:\orant\tools\web60\temp' and i can find it!
    I don't know why i get this error message!
    With best regards
    Nicole

    Nicole,
    Since operating systems differ in their file and directory nameing conventions, Oracle abstracts these details with a logical directory object. You create a logical directory command with the command
    create directory directoryname as 'os-specific-dirname';
    You then use the logical directory name directoryname when working with files inside PL/SQL.
    Then grant read permissions to the directory to the user of the procedure.
    grant read on direcotry directoryname to username;
    Check your directory entry to ensure it is pointing to a valid file location on the server.
    select directory_name, directory_path from all_directories;
    One guess is the directory entry was created without quotes around it, and the uppercase/lowercase is the issue.

  • Simon, why do I get an OrdImage.setProperties() exception ORA-22288

    Hi Simon;
    I've debugged a problem with the ImageExample to the point where I'm convinced one cannot call setProperties indirectly as the example code shows. SetProperties can only be called during a load - for example imgObj.LoadFromFile
    The example from OTN sample code shows a sample method:
    public void setPropertiesExample(OracleConnection con)
    try
    int index = 0;
    Statement s = con.createStatement();
    OracleResultSet rs =
    (OracleResultSet)s.executeQuery("select * from ordimagetab where id = 5 for update");
    while(rs.next())
    index = rs.getInt(1);
    OrdImage imgObj = (OrdImage) rs.getCustomDatum(2, OrdImage.getFactory());
    imgObj.setProperties();
    System.out.println("set Properties called");
    if(imgObj.checkProperties())
    System.out.println("checkProperties called");
    System.out.println("setProperties successful");
    System.out.println("checkProperties successful");
    System.out.println("successful");
    else
    System.out.println("checkProperties called");
    System.out.println("setProperties not successful");
    System.out.println("checkProperties successful");
    OraclePreparedStatement stmt1 =
    (OraclePreparedStatement) con.prepareCall("update ordimagetab set image = ? where id = " + index);
    stmt1.setCustomDatum(1,imgObj);
    stmt1.execute();
    stmt1.close() ;
    rs.close();
    s.close();
    catch(Exception e)
    System.out.println("exception raised " + e);
    }No matter how many times I set this example or create something similar I get this error when I do something like:
    ImageExample ie = new ImageExample();
    con = ie.connect();
    ie.setPropertiesExample(con);
    exception raised java.sql.SQLException: ORA-22288: file or LOB operation FILEOPEN failed
    No such file or directory
    ORA-06512: at "ORDSYS.ORDIMG_PKG", line 418
    ORA-06512: at "ORDSYS.ORDIMAGE", line 25
    ORA-06512: at line 2
    I noticed the only way to avoid this problem is to load the image immediately prior to the setproperties call...like:
    OrdImage imgObj = (OrdImage) rs.getCustomDatum(2, OrdImage.getFactory());
    imgObj.loadDataFromFile("imgdemo.dat");
    imgObj.setProperties();
    imgObj.getDataInFile("fileexample.dat");Here I get setproperties to work, but I need to change a lot of code to load images in this form...
    I am using the constructors provided and the functions you provided some time back - so I do not believe initialization is the issue here. Any ideas what might be wrong here??

    Hi Chris,
    There are a number of configuration and/or setup problems that can
    cause this error. But first, it might be worth describing at a higher
    level what is going on here.
    By default an interMedia object can store or 'reference' data in one
    of 3 ways:
    - local: the data is stored locally in the BLOB, the local flag is
    set to 1 to indicate this.
    - FILE: the source type is set to FILE, which indicates the data is
    stored in a directory of which the server is aware and to
    which the user/schema has been granted access. The source
    location specifies the database server directory name, which
    will be upper case unless you created a mixed-case name with
    the CREATE DIRECTORY command. The source name specifies the
    file name, which is case sensitive on Unix platforms.
    - HTTP: the source type is set to HTTP, which indicates the data is
    accessed via a web server. The source location is the domain,
    port and path and the source name is the item name.
    If you instantiate an ORDIMAGE object using something like:
    CREATE OR REPLACE DIRECTORY MY_IMAGE_DIR AS 'c:\myphotos';
    INSERT INTO MY_IMAGES VALUES
    ( 1, ORDSYS.ORDIMAGE.INIT( 'FILE', 'MY_IMAGE_DIR', 'photo1.jpg' );then the setProperties method is going to try to open photo1.jpg in
    the directory known to the database as MY_IMAGE_DIR. This can fail
    with "ORA-22288: file or LOB operation FILEOPEN failed; No such file
    or directory" for a number of reasons:
    [list]
    [*]The directory MY_IMAGE_DIR was never created using CREATE DIRECTORY
    [*]The user was not granted read access to MY_IMAGE_DIR
    [*]The directory c:\myphotos doesn't exist
    [*]The file photo1.jpg doesn't exist in c:\myphotos
    [list]
    Bear in mind that, essentially, everything is happening at the server,
    all the client is doing is causing the setProperties method of the
    ORDIMAGE type to be invoked at the server, which reads the image file,
    which must be accessible to the server. Assuming everything to be OK,
    then the properties will be read from the image and stored in the
    object. Of course, since BFILEs are writable, you can't operate on
    this image to scale, crop or convert it, for example.
    However, in your case, you're hitting one of the problems listed above.
    Bear in mind, there are others. For example, although you might be able
    to access an image on a shared network drive of some sort, doesn't mean
    to say that the database server can do so. This is a common problem on
    NT. When logged in as you, you might be able to mount a network drive
    and access an image file on that drive. However, that access is being
    performed with your NT credentials and access rights. The database server
    doesn't have the same credentials and access rights and in all likelyhood
    will NOT be able to access the same file. Of course, the same situation
    can occur in Unix land with NFS.
    Contrast all that with what happens when a client application calls
    loadDataFromFile. In this case, the client is reading image data from
    a file that is local to the client (which could easily be on a
    different machine than the server) and writing that image data
    directly into the database as the contents of the BLOB. Therefore,
    assuming the image format is recognized, setProperties is going to
    succeed because the data is in the database, not external to it.
    To sum up: setProperties can be called on an image when stored as a FILE.
    However, the database server has to be able to access the file and the
    directory in which it is stored. The reason it works when you call
    loadDataFromFile is that the data is written to the BLOB in the database,
    so the database has access.
    Hope that makes sense,
    Simon
    null

  • UTL_SMPT ORA-22288: file or LOB operation GETLENGTH failed No such file or

    Hello Everyone!
    I am trying to write a script to send emails as an attachment(exists in the unix box) using utl_smtp
    i have my reports in the directory : /opt/local/application/orafin/applmgr/out/outfaud. File existing in the directory is S1759.zip
    i have created a directory as:
    create or replace directory
    REPORT_DIRECTORY
    as
    '/opt/local/application/orafin/applmgr/out/outfaud';
    when i use BFILENAME as select BFILENAME('/oracle/oradata/bfiles', 'S1759.zip') from dual
    output: REPORT_DIRECTORY//S1759.zip
    my code is something like this
    v_bfile:= BFILENAME(p_oracle_directory, p_file_name);
    v_file_length := DBMS_LOB.GETLENGTH(v_bfile);
    Error: ORA-22288: file or LOB operation GETLENGTH failed
    No such file or directory
    Could anyone please help me as im really struggling to fix this. Thanks!

    Thank you for the response..
    v_bfile:= BFILENAME(p_oracle_directory, p_file_name);
    -- Get the size of the file to be attached
    v_file_length := DBMS_LOB.GETLENGTH(v_bfile);
    -- Calculate the number of pieces the file will be split up into
    v_pieces := TRUNC(v_file_length / v_amt);
    -- Calculate the remainder after dividing the file into v_amt chunks
    v_modulo := MOD(v_file_length, v_amt);
    IF (v_modulo <> 0) THEN
    -- Since the file does not devide equally
    -- we need to go round the loop an extra time to write the last
    -- few bytes - so add one to the loop counter.
    v_pieces := v_pieces + 1;
    END IF;
    DBMS_LOB.FILEOPEN(v_bfile, DBMS_LOB.FILE_READONLY);
    FOR i IN 1 .. v_pieces LOOP
    -- we can read at the beginning of the loop as we have already calculated
    -- how many iterations we will take and so do not need to check
    -- end of file inside the loop.
    v_buf := NULL;
    DBMS_LOB.READ(v_bfile, v_amt, v_file_pos, v_buf);
    v_file_pos := I * v_amt + 1;
    UTL_SMTP.WRITE_RAW_DATA(p_conn, UTL_ENCODE.BASE64_ENCODE(v_buf));
    END LOOP;
    END;
    DBMS_LOB.FILECLOSE(v_bfile);
    end_attachment(p_conn => p_conn);
    this is the existing code..so you which part of the code should i be replacing? im sorry im new to these concepts. thanks!

  • ORA-22288: file or LOB operation GETLENGTH failed

    I am using the following procedure for email the with attachment. it give the error, while I have check the directory rights is OK, also check the following thread
    Error Message is ORA-22288: file or LOB operation GETLENGTH failed
    but no result,
    I do this on clone working fine, but production not working fine while I found one thing that the file generate in temp folder of clone while in Production did not generate.
    CREATE OR REPLACE PROCEDURE APPS.mail_files (p_from_name VARCHAR2,
    p_to_name VARCHAR2,
    p_subject VARCHAR2,
    p_message VARCHAR2,
    p_oracle_directory VARCHAR2,
    p_binary_file VARCHAR2)
    IS
    -- Example procedure to send a mail with an in line attachment
    -- encoded in Base64
    -- this procedure uses the following nested functions:
    -- binary_attachment - calls:
    -- begin_attachment - calls:
    -- write_boundary
    -- write_mime_header
    -- end attachment - calls;
    -- write_boundary
    -- change the following line to refer to your mail server
    v_smtp_server VARCHAR2(1000) := 'mail.company.com';
    v_smtp_server_port NUMBER := 25;
    v_directory_name VARCHAR2(1000) ;
    v_file_name VARCHAR2(1000);
    v_mesg VARCHAR2(32767);
    v_conn UTL_SMTP.CONNECTION;
    PROCEDURE write_mime_header(p_conn in out nocopy utl_smtp.connection,
    p_name in varchar2,
    p_value in varchar2)
    IS
    BEGIN
    UTL_SMTP.WRITE_RAW_DATA(
    p_conn,
    UTL_RAW.CAST_TO_RAW( p_name || ': ' || p_value || UTL_TCP.CRLF)
    END write_mime_header;
    PROCEDURE write_boundary(p_conn IN OUT NOCOPY UTL_SMTP.CONNECTION,
    p_last IN BOOLEAN DEFAULT false)
    IS
    BEGIN
    IF (p_last) THEN
    UTL_SMTP.WRITE_DATA(p_conn, '--DMW.Boundary.605592468--'||UTL_TCP.CRLF);
    ELSE
    UTL_SMTP.WRITE_DATA(p_conn, '--DMW.Boundary.605592468'||UTL_TCP.CRLF);
    END IF;
    END write_boundary;
    PROCEDURE end_attachment(p_conn IN OUT NOCOPY UTL_SMTP.CONNECTION,
    p_last IN BOOLEAN DEFAULT TRUE)
    IS
    BEGIN
    UTL_SMTP.WRITE_DATA(p_conn, UTL_TCP.CRLF);
    IF (p_last) THEN
    write_boundary(p_conn, p_last);
    END IF;
    END end_attachment;
    PROCEDURE begin_attachment(p_conn IN OUT NOCOPY UTL_SMTP.CONNECTION,
    p_mime_type IN VARCHAR2 DEFAULT 'text/plain',
    p_inline IN BOOLEAN DEFAULT false,
    p_filename IN VARCHAR2 DEFAULT null,
    p_transfer_enc in VARCHAR2 DEFAULT null)
    IS
    BEGIN
    write_boundary(p_conn);
    IF (p_transfer_enc IS NOT NULL) THEN
    write_mime_header(p_conn, 'Content-Transfer-Encoding',p_transfer_enc);
    END IF;
    write_mime_header(p_conn, 'Content-Type', p_mime_type);
    IF (p_filename IS NOT NULL) THEN
    IF (p_inline) THEN
    write_mime_header(
    p_conn,
    'Content-Disposition', 'inline; filename="' || p_filename || '"'
    ELSE
    write_mime_header(
    p_conn,
    'Content-Disposition', 'attachment; filename="' || p_filename || '"'
    END IF;
    END IF;
    UTL_SMTP.WRITE_DATA(p_conn, UTL_TCP.CRLF);
    END begin_attachment;
    PROCEDURE binary_attachment(p_conn IN OUT UTL_SMTP.CONNECTION,
    p_file_name IN VARCHAR2,
    p_mime_type in VARCHAR2)
    IS
    c_max_line_width CONSTANT PLS_INTEGER DEFAULT 54;
    v_amt BINARY_INTEGER := 672 * 3; /* ensures proper format; 2016 */
    v_bfile BFILE;
    v_file_length PLS_INTEGER;
    v_buf RAW(2100);
    v_modulo PLS_INTEGER;
    v_pieces PLS_INTEGER;
    v_file_pos pls_integer := 1;
    BEGIN
    begin_attachment(
    p_conn => p_conn,
    p_mime_type => p_mime_type,
    p_inline => TRUE,
    p_filename => p_file_name,
    p_transfer_enc => 'base64');
    BEGIN
    v_bfile := BFILENAME(p_oracle_directory, p_file_name);
    -- Get the size of the file to be attached
    v_file_length := DBMS_LOB.GETLENGTH(v_bfile);
    -- Calculate the number of pieces the file will be split up into
    v_pieces := TRUNC(v_file_length / v_amt);
    -- Calculate the remainder after dividing the file into v_amt chunks
    v_modulo := MOD(v_file_length, v_amt);
    IF (v_modulo <> 0) THEN
    -- Since the file does not devide equally
    -- we need to go round the loop an extra time to write the last
    -- few bytes - so add one to the loop counter.
    v_pieces := v_pieces + 1;
    END IF;
    DBMS_LOB.FILEOPEN(v_bfile, DBMS_LOB.FILE_READONLY);
    FOR i IN 1 .. v_pieces LOOP
    -- we can read at the beginning of the loop as we have already calculated
    -- how many iterations we will take and so do not need to check
    -- end of file inside the loop.
    v_buf := NULL;
    DBMS_LOB.READ(v_bfile, v_amt, v_file_pos, v_buf);
    v_file_pos := I * v_amt + 1;
    UTL_SMTP.WRITE_RAW_DATA(p_conn, UTL_ENCODE.BASE64_ENCODE(v_buf));
    END LOOP;
    END;
    DBMS_LOB.FILECLOSE(v_bfile);
    end_attachment(p_conn => p_conn);
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    end_attachment(p_conn => p_conn);
    DBMS_LOB.FILECLOSE(v_bfile);
    END binary_attachment;
    -- Main Routine
    BEGIN
    -- Connect and set up header information:
    v_conn:= UTL_SMTP.OPEN_CONNECTION( v_smtp_server, v_smtp_server_port );
    UTL_SMTP.HELO( v_conn, v_smtp_server );
    UTL_SMTP.MAIL( v_conn, p_from_name );
    UTL_SMTP.RCPT( v_conn, p_to_name );
    UTL_SMTP.OPEN_DATA ( v_conn );
    UTL_SMTP.WRITE_DATA(v_conn, 'Subject: '||p_subject||UTL_TCP.CRLF);
    v_mesg:= 'Content-Transfer-Encoding: 7bit' || UTL_TCP.CRLF ||
    'Content-Type: multipart/mixed;boundary="DMW.Boundary.605592468"' || UTL_TCP.CRLF ||
    'Mime-Version: 1.0' || UTL_TCP.CRLF ||
    '--DMW.Boundary.605592468' || UTL_TCP.CRLF ||
    'Content-Transfer-Encoding: binary'||UTL_TCP.CRLF||
    'Content-Type: text/plain' ||UTL_TCP.CRLF ||
    UTL_TCP.CRLF || p_message || UTL_TCP.CRLF ;
    UTL_SMTP.write_data(v_conn, 'To: ' || p_to_name || UTL_TCP.crlf);
    UTL_SMTP.WRITE_RAW_DATA ( v_conn, UTL_RAW.CAST_TO_RAW(v_mesg) );
    -- Add the Attachment
    binary_attachment(
    p_conn => v_conn,
    p_file_name => p_binary_file,
    -- Modify the mime type at the beginning of this line depending
    -- on the type of file being loaded.
    p_mime_type => 'text/plain; name="'||p_binary_file||'"'
    -- Send the email
    UTL_SMTP.CLOSE_DATA( v_conn );
    UTL_SMTP.QUIT( v_conn );
    END;
    Error
    ORA-22288: file or LOB operation GETLENGTH failed
    No such file or directory
    ORA-06512: at "SYS.DBMS_LOB", line 678
    ORA-06512: at "APPS.MAIL_FILES", line 122
    ORA-06512: at "APPS.MAIL_FILES", line 179
    ORA-06512: at line 2

    CREATE OR REPLACE PROCEDURE APPS.mail_files (p_from_name VARCHAR2,
    p_to_name VARCHAR2,
    p_subject VARCHAR2,
    p_message VARCHAR2,
    p_oracle_directory VARCHAR2,
    p_binary_file VARCHAR2)
    IS
    -- Example procedure to send a mail with an in line attachment
    -- encoded in Base64
    -- this procedure uses the following nested functions:
    -- binary_attachment - calls:
    -- begin_attachment - calls:
    -- write_boundary
    -- write_mime_header
    -- end attachment - calls;
    -- write_boundary
    -- change the following line to refer to your mail server
    v_smtp_server VARCHAR2(1000) := 'mail.company.com';
    v_smtp_server_port NUMBER := 25;
    v_directory_name VARCHAR2(1000);
    v_file_name VARCHAR2(1000);
    v_mesg VARCHAR2(32767);
    v_conn UTL_SMTP.CONNECTION;
    PROCEDURE write_mime_header(p_conn in out nocopy utl_smtp.connection,
    p_name in varchar2,
    p_value in varchar2)
    IS
    BEGIN
    UTL_SMTP.WRITE_RAW_DATA(
    p_conn,
    UTL_RAW.CAST_TO_RAW( p_name || ': ' || p_value || UTL_TCP.CRLF)
    END write_mime_header;
    PROCEDURE write_boundary(p_conn IN OUT NOCOPY UTL_SMTP.CONNECTION,
    p_last IN BOOLEAN DEFAULT false)
    IS
    BEGIN
    IF (p_last) THEN
    UTL_SMTP.WRITE_DATA(p_conn, '--DMW.Boundary.605592468--'||UTL_TCP.CRLF);
    ELSE
    UTL_SMTP.WRITE_DATA(p_conn, '--DMW.Boundary.605592468'||UTL_TCP.CRLF);
    END IF;
    END write_boundary;
    PROCEDURE end_attachment(p_conn IN OUT NOCOPY UTL_SMTP.CONNECTION,
    p_last IN BOOLEAN DEFAULT TRUE)
    IS
    BEGIN
    UTL_SMTP.WRITE_DATA(p_conn, UTL_TCP.CRLF);
    IF (p_last) THEN
    write_boundary(p_conn, p_last);
    END IF;
    END end_attachment;
    PROCEDURE begin_attachment(p_conn IN OUT NOCOPY UTL_SMTP.CONNECTION,
    p_mime_type IN VARCHAR2 DEFAULT 'text/plain',
    p_inline IN BOOLEAN DEFAULT false,
    p_filename IN VARCHAR2 DEFAULT null,
    p_transfer_enc in VARCHAR2 DEFAULT null)
    IS
    BEGIN
    write_boundary(p_conn);
    IF (p_transfer_enc IS NOT NULL) THEN
    write_mime_header(p_conn, 'Content-Transfer-Encoding',p_transfer_enc);
    END IF;
    write_mime_header(p_conn, 'Content-Type', p_mime_type);
    IF (p_filename IS NOT NULL) THEN
    IF (p_inline) THEN
    write_mime_header(
    p_conn,
    'Content-Disposition', 'inline; filename="' || p_filename || '"'
    ELSE
    write_mime_header(
    p_conn,
    'Content-Disposition', 'attachment; filename="' || p_filename || '"'
    END IF;
    END IF;
    UTL_SMTP.WRITE_DATA(p_conn, UTL_TCP.CRLF);
    END begin_attachment;
    PROCEDURE binary_attachment(p_conn IN OUT UTL_SMTP.CONNECTION,
    p_file_name IN VARCHAR2,
    p_mime_type in VARCHAR2)
    IS
    c_max_line_width CONSTANT PLS_INTEGER DEFAULT 54;
    v_amt BINARY_INTEGER := 672 * 3; /* ensures proper format; 2016 */
    v_bfile BFILE;
    v_file_length PLS_INTEGER;
    v_buf RAW(2100);
    v_modulo PLS_INTEGER;
    v_pieces PLS_INTEGER;
    v_file_pos pls_integer := 1;
    BEGIN
    begin_attachment(
    p_conn => p_conn,
    p_mime_type => p_mime_type,
    p_inline => TRUE,
    p_filename => p_file_name,
    p_transfer_enc => 'base64');
    BEGIN
    v_bfile := BFILENAME(p_oracle_directory, p_file_name);
    -- Get the size of the file to be attached
    v_file_length := DBMS_LOB.GETLENGTH(v_bfile);
    -- Calculate the number of pieces the file will be split up into
    v_pieces := TRUNC(v_file_length / v_amt);
    -- Calculate the remainder after dividing the file into v_amt chunks
    v_modulo := MOD(v_file_length, v_amt);
    IF (v_modulo <> 0) THEN
    -- Since the file does not devide equally
    -- we need to go round the loop an extra time to write the last
    -- few bytes - so add one to the loop counter.
    v_pieces := v_pieces + 1;
    END IF;
    DBMS_LOB.FILEOPEN(v_bfile, DBMS_LOB.FILE_READONLY);
    FOR i IN 1 .. v_pieces LOOP
    -- we can read at the beginning of the loop as we have already calculated
    -- how many iterations we will take and so do not need to check
    -- end of file inside the loop.
    v_buf := NULL;
    DBMS_LOB.READ(v_bfile, v_amt, v_file_pos, v_buf);
    v_file_pos := I * v_amt + 1;
    UTL_SMTP.WRITE_RAW_DATA(p_conn, UTL_ENCODE.BASE64_ENCODE(v_buf));
    END LOOP;
    END;
    DBMS_LOB.FILECLOSE(v_bfile);
    end_attachment(p_conn => p_conn);
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    end_attachment(p_conn => p_conn);
    DBMS_LOB.FILECLOSE(v_bfile);
    END binary_attachment;
    -- Main Routine
    BEGIN
    -- Connect and set up header information:
    v_conn:= UTL_SMTP.OPEN_CONNECTION( v_smtp_server, v_smtp_server_port );
    UTL_SMTP.HELO( v_conn, v_smtp_server );
    UTL_SMTP.MAIL( v_conn, p_from_name );
    UTL_SMTP.RCPT( v_conn, p_to_name );
    UTL_SMTP.OPEN_DATA ( v_conn );
    UTL_SMTP.WRITE_DATA(v_conn, 'Subject: '||p_subject||UTL_TCP.CRLF);
    v_mesg:= 'Content-Transfer-Encoding: 7bit' || UTL_TCP.CRLF ||
    'Content-Type: multipart/mixed;boundary="DMW.Boundary.605592468"' || UTL_TCP.CRLF ||
    'Mime-Version: 1.0' || UTL_TCP.CRLF ||
    '--DMW.Boundary.605592468' || UTL_TCP.CRLF ||
    'Content-Transfer-Encoding: binary'||UTL_TCP.CRLF||
    'Content-Type: text/plain' ||UTL_TCP.CRLF ||
    UTL_TCP.CRLF || p_message || UTL_TCP.CRLF ;
    UTL_SMTP.write_data(v_conn, 'To: ' || p_to_name || UTL_TCP.crlf);
    UTL_SMTP.WRITE_RAW_DATA ( v_conn, UTL_RAW.CAST_TO_RAW(v_mesg) );
    -- Add the Attachment
    binary_attachment(
    p_conn => v_conn,
    p_file_name => p_binary_file,
    -- Modify the mime type at the beginning of this line depending
    -- on the type of file being loaded.
    p_mime_type => 'text/plain; name="'||p_binary_file||'"'
    -- Send the email
    UTL_SMTP.CLOSE_DATA( v_conn );
    UTL_SMTP.QUIT( v_conn );
    END;
    Edited by: user12879396 on Oct 22, 2012 10:39 AM

  • ORA-22288:file or LOB operation FILEOPEN failed while loading XML file.

    Hello all,
    I am getting the following error messages while loading XML file to Oracle 9i table.
    declare
    ERROR at line 1:
    ORA-22288: file or LOB operation FILEOPEN failed
    No such file or directory
    ORA-06512: at "SYS.DBMS_LOB", line 504
    ORA-06512: at line 10
    The script I am using is all follows:-
    1. Created a file ldxmldata.sh on unix server directory
    dd conv=ucase if=$1|sed 's/<?XML/<?xml/'|sed 's/VERSION/version/'|sed 's
    /RECORD/ROW/'|sed 's/DATE/TRANSDATE/'|sed 's/&/-/'|sed 's/\/DATE>// TRANSDATE>/'>$1.UCASE
    sqlplus sales/sales@rac @upld.sql $1.UCASE
    2. Created SQL file upld.sql on unix server
    set serveroutput on
    exec DBMS_JAVA.SET_OUTPUT(1000000);
    @ldxml.sql bsl.xml.UCASE
    commit;
    exit
    3. Created sql file ldxml.sql on unix server
    declare
    insCtx DBMS_XMLSave.ctxType;
    rows number;
    file bfile := bfilename('XML_DIR','&1');
    charContent CLOB := ' ';
    targetFile bfile;
    warning number;
    begin
    targetFile := file;
    DBMS_LOB.fileopen(targetFile, DBMS_LOB.file_readonly);
    DBMS_LOB.loadfromFile(charContent,targetFile,DBMS_LOB.getLength(tar
    getFile),1,1);
    insCtx := DBMS_XMLSave.newContext('sales.s_price');
    rows := DBMS_XMLSave.insertXML(insCtx,charContent);
    DBMS_XMLSave.closeContext(insCtx);
    DBMS_LOB.fileclose(targetFile);
    end;
    4. As Sys,
    Created a directory XML_DIR and assigned it the path of Unix server directory
    where the script files reside.
    Granted read priviledge on XML_DIR to user sales.
    I am getting the above error messages. Kindly help with some possible solution.
    Arun Patodia
    Bokaro Steel City

    Hi guys,
    Sybrand, aplogoies, the second line of the error stack was on one line in the first post, full error stack below:
    ORA-22288: file or LOB operation FILEOPEN failed
    The program issued a command but the command length is incorrect.
    ORA-06512: at "SYS.DBMS_LOB", line 716
    ORA-06512: at "JLMS.LOAD_DATA_UTIL", line 417
    ORA-06512: at line 2I have looked at that error code as you mentioned, but the second line here doesn't really help much.
    Hoek, i took your advice and tried to replace FILEOPEN with OPEn but got the same error.
    Just to clarify as well, I am not using UNC or relative file paths as I know that these can cause problems.
    Rgds
    Dan

  • I had all of my video files that I work on in iMovie saved to an external hard drive exclusively to save space on my Macbook.  I had just finalized a project, went to work on another one and files couldn't be found, were not deleted how do I find them?

    I had all of my video files that I work on in iMovie saved to an external hard drive exclusively to save space on my Macbook.  The other day I had just finalized a project and went to work on another one and when I opened the project I could see what should have been there, but scrolling over the entire clip I would only see black and that the file was missing.  I did not drag anything on the hard drive to the trash or move anything.  How can I get those files?  These are videos of my kids and I am devastated and willing to try anything!

    Control click does not work - no option to find files.  I have no idea what to do.  When I look at the usage of the external drive the space is being used, but I cannot find the files.  I am going to try MacKeeper's Undelete and see if I can make any progress with it. 

  • I lost my iPhone device, how can I get my data back on another one without using an iCloud backup just back up on i Tunes, Please Help.

    I lost my iPhone device, how can I get my data back on another one without using an iCloud backup just back up on i Tunes, Please Help.??

    You can find the backup files and then copy them to a safe place if you are worrying about this.
    iTunes places the backup files in these places:
    Mac: ~/Library/Application Support/MobileSync/Backup/
    The "~" represents your Home folder. If you don't see Library in your Home folder, hold Option and click the Go menu.
    Windows Vista, Windows 7, and Windows 8: \Users\(username)\AppData\Roaming\Apple Computer\MobileSync\Backup\
    To quickly access the AppData folder, click Start. In the search bar, type %appdata%, then press Return.
    Windows XP: \Documents and Settings\(username)\Application Data\Apple Computer\MobileSync\Backup\
    To quickly access the Application Data folder, click Start, then choose Run. In the search bar, type %appdata%, then click OK.

  • When i Log into instagram it say my account  is disable but when i log in on another iphone my instagram account log's in. when i try logging into another account it continue to say disable. Why cant i log into instagram or make another one on my iphone?

    When i Log into instagram it say my account  is disable but when i log in on another iphone my instagram account log's in. When i try logging into another account on my phone it continue to say disable. i also tried to make a new instagram on my phone but it wont let me. i deleted the app over and over again but it still wont let me log into any instagram account. Why cant i log into instagram or make another one on my iphone?
    Is is=t possable to have your phone banned from a app forever???
    HELP !!

    I just asked the same thing and did some research. Some people have said  that the UDID code is like banned from instagram, but your account isn't. I'm able to use it on my phone but not on my iPod.

  • How can I move a Pages file from a folder to another one?

    I Have done the upgrade to mac os Yosemite but now i'm Not able to move a file from a folder to another one Inside iCloud
    now it's impossible to organize MY archive

    Thankyou Winston, you guess right. What i don't understand is why with the older version of mac os (10.9) i can organize my document into icloud folders using the Pages app window. But now with the new version i'm no longer able to do that. Using ipad in the same window there is no problem, but in mac os it doesn't work. 

  • Close the current UI and open another one

    Hello everyone,
    I've got the following code and I want to close the current window and open another one. When i use "System.exit(1);" it closes everything when I use "this.dispose()" it doesn't close anything what could I try to get this to work? any suggestions?
    the code is:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.util.*;
    //public class Equip_or_Job implements ActionListener {
    public class Equip_or_Job extends Frame implements ActionListener {
        JFrame dFrame;
        JPanel jePanel;
        JButton choice;
        JComboBox jeqid = new JComboBox();
        public Equip_or_Job() {
            //Create and set up the window.
            dFrame = new JFrame("Work with Jobid or Equipid");
            dFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            //Create and set up the panel.
            jePanel = new JPanel(new GridLayout(2, 1));
            dFrame.getContentPane().setLayout(new BorderLayout());
            //Add the widgets.
            addWidgets();
            //Set the default button.
            dFrame.getRootPane().setDefaultButton(choice);
            //Add the panel to the window.
            dFrame.getContentPane().add(jePanel, BorderLayout.CENTER);
            //Display the window.
            dFrame.pack();
            dFrame.setVisible(true);
    Create and add the widgets.
        private void addWidgets() {
             //Create widgets.
              jeqid.addItem("Chose by Job");
              jeqid.addItem("Chose by Equipment");
              choice = new JButton("Chose");
                //Listen to events from the Convert button.
                choice.addActionListener(this);
              jePanel.add(jeqid);
              jePanel.add(choice);
        public void actionPerformed(ActionEvent event) {
              String sel = (String) jeqid.getSelectedItem();
            if("Chose by Job".equals(sel)){
                   InsertNewDates inj = new InsertNewDates();
                   //System.exit(1);
                   dispose();
              else if("Chose by Equipment".equals(sel)){
                   InsertNewDates ineq = new InsertNewDates();
                   //System.exit(1);
                   dispose();
    Create the GUI and show it.  For thread safety,
    this method should be invoked from the
    event-dispatching thread.
        private static void createAndShowGUI() {
            //Make sure we have nice window decorations.
            try {
                   UIManager.setLookAndFeel(
                        UIManager.getCrossPlatformLookAndFeelClassName());
              catch (Exception e) { }
            Equip_or_Job eorj = new Equip_or_Job();
        public static void main(String[] args) {
            //Schedule a job for the event-dispatching thread:
            //creating and showing this application's GUI.
            javax.swing.SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    createAndShowGUI();
    thanks in advance :o)

    I'm not exactly sure what you want to do, but...:
    dFrame.setVisible(false) hides the current Frame and the application is still running
    Best reagrds, Marco

  • How do I delete a credit card from my iTunes account without adding another one? My friend bought an app with her credit card and I no longer have the info but every time I try to download a free app (ex: Instagram, Twitter, vine etc.)it ask for the info

    How do I delete a credit card from my iTunes account without adding another one? My friend bought an app with her credit card and I no longer have the info but every time I try to download a free app (ex: Instagram, Twitter, vine etc.) it ask for the credit cards security code. I can not find a way to delete that cards info without adding another cards info.

    http://support.apple.com/kb/ht1918
    http://support.apple.com/kb/ts5366

  • Spry Menu 2.0 issues in IE7..   yes another one!

    I have CS4, and have used the widget browser to create a Spry Menu 2.0 and have imported it to my site. It displays fine in every browser except for IE7. I have been reading a LOT of threads on issues similiar to this one, so I'm prepared to tell everyone I know to upgrade to at least IE8!! However, I would like to fix it if possible. The menu bar is located in an include file and is attached to all my pages through the php function. I have made zero changes to the css code since I imported it into the site.
    I also am wondering why there are two css pages for the menu bar.??
    Any help would be appreciated..
    One of the pages on the site is: michaelandrewshairstudio.com/offers.php
    That page is: ( I have taken out some meta tags and content, but the div's are all still in place.) I also deleted some commented tags by accident when I imported it..
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Michael Andrews Hair Salon Offers</title>
    <link href="Spry-UI-1.7/css/Menu/basic/SpryMenuBar.css" rel="stylesheet" type="text/css" />
    <link href="Spry-UI-1.7/css/Menu/basic/SpryMenuBasic.css" rel="stylesheet" type="text/css" />
    <script type='text/javascript' src="Spry-UI-1.7/includes/SpryDOMUtils.js"></script>
    <script type='text/javascript' src="Spry-UI-1.7/includes/SpryDOMEffects.js"></script>
    <script type='text/javascript' src="Spry-UI-1.7/includes/SpryWidget.js"></script>
    <script type='text/javascript' src="Spry-UI-1.7/includes/SpryMenu.js"></script>
    <script type='text/javascript' src="Spry-UI-1.7/includes/plugins/MenuBar2/SpryMenuBarKeyNavigationPlugin.js"></script>
    <script type='text/javascript' src="Spry-UI-1.7/includes/plugins/MenuBar2/SpryMenuBarIEWorkaroundsPlugin.js"></script>
    <link href="CSS/stylesA.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
    <div id="outerwrapper">
    <div id="header">
    <div id="navbar">
    <?php include("Spry-UI-1.7/includes/SpryMenuBar.php"); ?>
    </div>
    </div>
    <div id="mainbody">
    <div id="logo">
    </div>
    <hr />
    <div id="content">
    </div>
    </div>
    <div id="footer">
    <div id="footernav">
    </div>
    <div id="footertext">
    </div>
    </div>
    </div>
    </body>
    </html>
    SpryMenuBar.css
    #MenuBar  {
    background-color:#333;
    font-family: "Trebuchet MS", Arial, Helvetica, sans-serif; /* Specify fonts on on MenuBar and subMenu MenuItemContainer, so MenuItemContainer,
                MenuItem, and MenuItemLabel
                at a given level all use same definition for ems.
                Note that this means the size is also inherited to child submenus,
                so use caution in using relative sizes other than
                100% on submenu fonts. */
    font-weight: normal;
    font-size: 14px;
    font-style: normal;
    padding:0;
    border-color: #999999 #999999 #999999 #999999;
    border-width:3px;
    border-style: outset outset outset outset;
    /* Caution: because ID+class selectors do not work properly in IE6, but we want to restrict these rules to just this
    widget instance, we have used string-concatenated classnames for our selectors for the layout type of the menubar
    in this section. These have very low specificity, so be careful not to accidentally override them. */
    .MenuBar br { /* using just a class so it has same specificity as the ".MenuBarFixedCentered br" rule bleow */
    display:none;
    .MenuBarLeftShrink {
    float: left; /* shrink to content, as well as float the MenuBar */
    width: auto;
    .MenuBarRightShrink {
    float: right; /* shrink to content, as well as float the MenuBar */
    width: auto;
    .MenuBarFixedLeft {
    float: left;
    width: 80em;
    .MenuBarFixedCentered {
    float: none;
    width: 80em;
    margin-left:auto;
    margin-right:auto;
    .MenuBarFixedCentered br {
    clear:both;
    display:block;
    .MenuBarFixedCentered .SubMenu br {
    display:none;
    .MenuBarFullwidth {
    float: left;
    width: 100%;
    /* Top level menubar items - these actually apply to all items, and get overridden for 1st or successive level submenus */
    #MenuBar  .MenuItemContainer {
    padding: 0px 0px 0px 0px;
    margin: 0;  /* Zero out margin  on the item containers. The MenuItem is the active hover area.
        For most items, we have to do top or bottom padding or borders only on the MenuItem
        or a child so we keep the entire submenu tiled with items.
        Setting this to 0 avoids "dead spots" for hovering. */
    #MenuBar  .MenuItem {
    padding: 0px 24px 0px 0px;
    background-color:#333333;
    border-width:1px;
    border-color: #cccccc #ffffff #cccccc #999999;
    border-style: none none none solid;
    #MenuBar  .MenuItemFirst {
    border-style: none none none none;
    #MenuBar .MenuItemLast {
    border-style: none none none solid;
    #MenuBar  .MenuItem  .MenuItemLabel{
    text-align:center;
    line-height:1.4em;
    color:#cccccc;
    background-color:#333333;
    padding: 6px 15px 6px 39px;
    width: 10em;
    width:auto;
    .SpryIsIE6 #MenuBar  .MenuItem  .MenuItemLabel{
    width:1em; /* Equivalent to min-width in modern browsers */
    /* First level submenu items */
    #MenuBar .SubMenu  .MenuItem {
    font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
    font-weight: normal;
    font-size: 12px;
    font-style: normal;
    background-color:#666666;
    padding:0px 2px 0px 0px;
    border-width:1px;
    border-color: #cccccc #cccccc #cccccc #cccccc;
    /* Border styles are overriden by first and last items */
    border-style: solid solid none solid;
    #MenuBar  .SubMenu .MenuItemFirst {
    border-style: solid solid none solid;
    #MenuBar  .SubMenu .MenuItemFirst .MenuItemLabel{
    padding-top: 6px;
    #MenuBar .SubMenu .MenuItemLast {
    border-style: solid solid solid solid;
    #MenuBar .SubMenu .MenuItemLast .MenuItemLabel{
    padding-bottom: 6px;
    #MenuBar .SubMenu .MenuItem .MenuItemLabel{
    text-align:left;
    line-height:1em;
    background-color:#666666;
    color:#cccccc;
    padding: 6px 12px 6px 5px;
    width: 7em;
    width:auto;
    /* Hover states for containers, items and labels */
    #MenuBar .MenuItemHover {
    background-color: #333333;
    border-color: #cccccc #cccccc #cccccc #cccccc;
    #MenuBar .MenuItemWithSubMenu.MenuItemHover .MenuItemLabel{
    background-color: #333333; /* consider exposing this prop separately*/
    color: #ffffff;
    #MenuBar .MenuItemHover .MenuItemLabel{
    background-color: #333333;
    color: #ffffff;
    #MenuBar .SubMenu .MenuItemHover {
    background-color: #666666;
    border-color: #cccccc #cccccc #cccccc #cccccc;
    #MenuBar .SubMenu .MenuItemHover .MenuItemLabel{
    background-color: #666666;
    color: #ffffff;
    /* Submenu properties -- First level of submenus */
    #MenuBar .SubMenuVisible {
    background-color:#333;
    min-width:100%;  /* This keeps the menu from being skinnier than the parent MenuItemContainer - nice to have but not available on ie6 */
    border-color: #ffffff #ffffff #ffffff #ffffff;
    border-width:0px;
    border-style: none none none none;
    #MenuBar.MenuBar .SubMenuVisible {/* For Horizontal menubar only */
    top: 100%; /* 100% is at the bottom of parent menuItemContainer */
    left:0px; /* 'left' may need tuning depending upon borders or padding applied to menubar MenuItemContainer or MenuItem,
         and your personal taste.
         0px will left align the dropdown with the content area of the MenuItemContainer. Assuming you keep the margins 0
         on MenuItemContainer and MenuItem on the parent
         menubar, making this equal the sum of the MenuItemContainer & MenuItem padding-left will align
         the dropdown with the left of the menu item label.*/
    z-index:10;
    #MenuBar.MenuBarVertical .SubMenuVisible {
    top: 0px;
    left:100%;
    min-width:0px; /* Do not neeed to match width to parent MenuItemContainer - items will prevent total collapse */
    /* Submenu properties -- Second level submenu and beyond - these are visible descendents of .MenuLevel1 */
    #MenuBar .MenuLevel1 .SubMenuVisible {
    background-color: #ffffff;
    min-width:0px; /* Do not neeed to match width to parent MenuItemContainer - items will prevent total collapse*/
    top: 0px; /* If desired, you can move this down a smidge to separate top item''s submenu from menubar -
        that is really only needed for submenu on first item of MenuLevel1, or you can make it negative to make submenu more
        vertically 'centered' on its invoking item */
    left:100%; /* If you want to shift the submenu left to partially cover its invoking item, you can add a margin-left with a
        negative value to this rule. Alternatively, if you use fixed-width items, you can change this left value
        to use px or ems to get the offset you want. */
    /* IE6 rules - you can delete these if you do not want to support IE6 */
    /* A note about multiple classes in IE6.
    * Some of the rules above use multiple class names on an element for selection, such as "hover" (MenuItemHover) and "has a subMenu" (MenuItemWithSubMenu),
    * giving the selector '.MenuItemWithSubMenu.MenuItemHover'.
    * Unfortunately IE6 does not support using mutiple classnames in a selector for an element. For a selector such as '.foo.bar.baz', IE6 ignores
    * all but the final classname (here, '.baz'), and sets the specificity accordingly, counting just one of those classs as significant. To get around this
    * problem, we use the plugin in SpryMenuBarIEWorkaroundsPlugin.js to generate compound classnames for IE6, such as 'MenuItemWithSubMenuHover'.
    * Since there are a lot of these needed, the plugin does not generate the extra classes for modern browsers, and we use the CSS2 style mutltiple class
    * syntax for that. Since IE6 both applies rules where
    * it should not, and gets the specificity wrong too, we have to order rules carefully, so the rule misapplied in IE6 can be overridden.
    * So, we put the multiple class rule first. IE6 will mistakenly apply this rule.  We follow this with the single-class rule that it would
    * mistakenly override, making sure the  misinterpreted IE6 specificity is the same as the single-class selector, so the latter wins.
    * We then create a copy of the multiple class rule, adding a '.SpryIsIE6' class as context, and making sure the specificity for
    * the selector is high enough to beat the single-class rule in the "both classes match" case. We place the IE6 rule at the end of the
    * css style block to make it easy to delete if you want to drop IE6 support.
    * If you decide you do not need IE6 support, you can get rid of these, as well as the inclusion of the SpryMenuBarIEWorkaroundsPlugin.js script.
    * The 'SpryIsIE6' class is placed on the HTML element by  the script in SpryMenuBarIEWorkaroundsPlugin.js if the browser is Internet Explorer 6. This avoids the necessity of IE conditional comments for these rules.
    .SpryIsIE6 #MenuBar .MenuBarView .MenuItemWithSubMenuHover .MenuItemLabel /* IE6 selector  */{
    background-color: #333333; /* consider exposing this prop separately*/
    color: #ffffff;
    .SpryIsIE6 #MenuBar .MenuBarView .SubMenu .MenuItemWithSubMenuHover .MenuItemLabel/* IE6 selector  */{
    background-color: #666666; /* consider exposing this prop separately*/
    color: #ffffff;
    .SpryIsIE6 #MenuBar .SubMenu .SubMenu  /* IE6 selector  */{
    margin-left: -0px; /* Compensates for at least part of an IE6 "double padding" version of the "double margin" bug */
    SpryMenuBasic.css
    /* SpryMenuBasic.css - version 0.5 - Spry Pre-Release 1.7 */
    /* Copyright (c) 2010. Adobe Systems Incorporated. All rights reserved. */
    /* This is the css for a basic Spry 2 MenuBar.
    * The first section is basic layout, and should in general not need to be  modified.
    * The final section of this file specifies images to use for arrows for the menu. These
    * are either down or right-pointing as required by horizonatal or vertical layouts. You
    * can either replace the referenced images with your own, or you can modify these rules to
    * point to your won images.
    * These rules are supplemented by those specified in the OAM file for inclusion in the html document,
    * or alternatively, the file SpryMenuBarBasicSkin.css which is included with this widget. */
    /* Resets for ul and li in menus */
    .MenuBar  .MenuBarView, .MenuBar  .SubMenuView {
    display:block;
    list-style:none;
    margin:0;
    padding:0;
    /*** Layout Rules for Basic Menu ***/
    /* Top Level MenuBar
    * Because we float the MenuItemContainers in the MenuBar, we have to make sure the menubar wrapper expands to hold them all.
    * The simplest way is to float the widget wrapper
    .MenuBar { /* overridden by .MenuBarVertical version of this rule */
    float:left;
    width:100%;
    .MenuBarVertical {
    float:left; /* Used to make menubar shirink to fit contents */
    width:auto;
    /* SubMenus */
    .MenuBar .SubMenu {
    display:block;
    position:absolute;
    top:0;
    left:-10000px; /* By default, all non-visible submenus are hidden by moving way to the west */
    padding:0;
    /* First level of submenus - pulls down from horizontal menubar, right from vertical */
    .MenuBar .SubMenuVisible{ /* overridden by .MenuBarVertical version of this rule */
    top:100%;
    left:0px;
    .MenuBarVertical .SubMenuVisible {
    top:0px;
    left:100%;
    /* All submenus below level 1. All pullout to the right */
    .MenuBar .SubMenu .SubMenuVisible {
    display:block;
    position:absolute;
    top:0px;
    left:100%;
    /* MenuItems, MenuItemLabels, and MenuItemContainers */
    .MenuBar .MenuItem {
    display:block;
    text-decoration:none;
    .MenuBar .MenuItemLabel {
    display:block;
    .MenuBar .MenuItemContainer {
    position:relative;
    white-space:nowrap;
    float:left; /* overridden by .MenuBarVertical version of this rule */
    display:block;
    margin:0;
    padding:0;
    .MenuBarVertical .MenuItemContainer {
    float:none;
    .MenuBar .SubMenu .MenuItemContainer {
    float:none;
    /* Layout Rules needed by IE6 - excluded from other browsers */
    .SpryIsIE6 .SubMenu .SubMenu {
    width:100px;
    height:1%;
    .SpryIsIE6 .MenuBar .SubMenuVisible .SubMenuVisible {
    width:auto;
    /* End Layout section */
    * Arrows - This section specifies arrow images for a submenu dropdowns in Basic SpryMenu.
    .MenuBar .MenuItemLabel{
    background-image:none;
    /* For all arrows used here, we depend upon the image to push itself away from right edge, or the user can add right padding to the MenuItem */
    .MenuBar .MenuItemWithSubMenu .MenuItemLabel{
    background-image:url("images/ArrowMenuDownGrey.gif");
    background-position:right center;
    background-repeat:no-repeat;
    .MenuBar .MenuItemHover.MenuItemWithSubMenu .MenuItemLabel{
    background-image:url("images/ArrowMenuDownWhite.gif");
    background-position:right center;
    background-repeat:no-repeat;
    .MenuBarVertical .MenuItemHover.MenuItemWithSubMenu .MenuItemLabel{
    background-image:url("images/ArrowMenuRight.gif");
    background-position:right center;
    background-repeat:no-repeat;
    .MenuBarVertical .MenuItemWithSubMenu .MenuItemLabel{
    background-image:url("images/ArrowMenuRight.gif");
    background-position:right center;
    background-repeat:no-repeat;
    .MenuBar .SubMenu .MenuItemWithSubMenu .MenuItemLabel{
    background-image:url("images/ArrowMenuRight.gif");
    background-position:right center;
    background-repeat:no-repeat;
    .MenuBar .SubMenu .MenuItemHover.MenuItemWithSubMenu .MenuItemLabel{
    background-image:url("images/ArrowMenuRight.gif");
    background-position:right center;
    background-repeat:no-repeat;
    /* IE6 rules for Arrows */
    .SpryIsIE6 .MenuBar .MenuItemWithSubMenuHover .MenuItemLabel{
    background-image:url("images/ArrowMenuDown.gif");
    background-position:right center;
    background-repeat:no-repeat;
    .SpryIsIE6 .MenuBarVertical .MenuItemWithSubMenuHover .MenuItemLabel{
    background-image:url("images/ArrowMenuRight.gif");
    background-position:right center;
    background-repeat:no-repeat;
    .SpryIsIE6 .MenuBar .SubMenu .MenuItemWithSubMenuHover .MenuItemLabel{
    background-image:url("images/ArrowMenuRight.gif");
    background-position:right center;
    background-repeat:no-repeat;

    I love your subject line
    Spry Menu 2.0 issues in IE7..   yes another one!
    It is us as designers/developers that need to create websites for all current browsers. No sense in blaming the browsers, although in this case we could blame Spry Menu 2.0.
    Problem with that is that Spry Menu 2.0 has been successfully tested in all modern browsers.
    This leaves us with just one possibility, the designer/developer has erred somewhere along the line. After having checked the support files (JS and CSS) and looked at the markup, we now go to the constructor and see the following
    var MenuBar = new Spry.Widget.MenuBar2("#MenuBar", {
        widgetID: "MenuBar",
        widgetClass: "MenuBar  MenuBarLeftShrink",
        insertMenuBarBreak: true,
    A comma after the last value.
    I also am wondering why there are two css pages for the menu bar.??
    One is the standard CSS for the menubar and under normal circumstances, should not be touched; the other is for the convenience of the designer/developer so that he/she can tweak the menubar to suit. If you wish, you can combine both. In all cases, keep in mind that the CSS for the standard (basic) menubar should come first, so that the other CSS can override the first.
    This needs to be corrected in your document
    Gramps

Maybe you are looking for

  • How to pop-up window in swf inside a html?

    there is pop-up blocker in browsers. how can i pop-up window as well? what scripts should i type in fla file and html file? pls help!~

  • 2 23" Displays: Colors are not the same.

    Hi there I a running a G5 with two 23" Cinema Displays. I had to get one of the two displays exchanged because a USB port wasn't working anymore. The new display has different colors than the older one (the new one has more blue - the older one more

  • How can delete I all the incorrect 'addresses' in I-tunes?

    Hey Gang.. I just went thru my music collection and deleted a pile of umwanted tracks. As I have never consolidated my library (and currently dont have the disk space to do it), the 'addresses' for the deleted tracks still appear in I-tunes. Is there

  • Fonts in Library/Fonts are disabled after restart

    On every sytem start/restart I have all fonts in Library/Fonts folder disabled. Safe boot, cache cleaning etc. didn't help. Any help, please? It's quite annoying.

  • Preview opens in 2nd monitor

    I have a 2nd monitor above my main monitor. Whenever Preview opens a file, it puts it on the 2nd screen.....only when it is placed "above" the main. Sides and bottom work fine. Trashed caches, preferences, permissions, etc. Obviously, I have moved th