Identity Insert with SQLOLEDB from Perl

I have a simple code sample here which throws an error on the SQL INSERT statement. It creates a table with a single integer identity column and then tries to force a value into it. My real world problem is more complex, but this distills the error I'm getting.
I can run the SQL statements from SQL Server Management Studio into the same database using the same credentials without issue.
use DBI;
use strict;
use warnings;
my $SQL_dbh;
my $SQL_sth;
my $tb = "testtb";
my $cnstr = "DBI:ADO:Provider=SQLOLEDB.1;
             Persist Security Info=False;
             User ID=<user id>;
             PWD=<password>;
             Initial Catalog=<database>;
             Data Source=<instance>;";
$SQL_dbh = DBI->connect($cnstr) || die "$DBI::errstr";
$SQL_sth = $SQL_dbh->prepare("create table $tb (col1 int identity(1,1))") || die "$DBI::errstr";
$SQL_sth->execute() || die "$DBI::errstr";
$SQL_sth = $SQL_dbh->prepare("set identity_insert $tb ON") || die "$DBI::errstr";
$SQL_sth->execute() || die "$DBI::errstr";
$SQL_sth = $SQL_dbh->prepare("insert into $tb (col1) values (4)") || die "$DBI::errstr";
$SQL_sth->execute() || die "$DBI::errstr";
$SQL_sth->finish || die "$DBI::errstr";
The error I get is:
DBD::ADO::st execute failed: Can't Execute Command 'insert into testtb (col1) values (4)'
  Package    : DBD::ADO::st
  Filename   : C:/Perl64/site/lib/DBD/ADO.pm
  Line       : 1244
  Last error : -2147217900
OLE exception from "Microsoft OLE DB Provider for SQL Server":
Cannot insert explicit value for identity column in table 'testtb' when
IDENTITY_INSERT is set to OFF.
Win32::OLE(0.1709) error 0x80040e14
    in METHOD/PROPERTYGET "Execute"
        Description : Cannot insert explicit value for identity column in table 'testtb' when IDENTITY_INSERT is set to
OFF.
        HelpContext :
           HelpFile :
        NativeError : 544
             Number : -2147217900
             Source : Microsoft OLE DB Provider for SQL Server
           SQLState : 42000
     at ./t3.pl line 30.
This is being run on a trial version of Windows Server 2012, Standard Edition with a trial version of SQL Server 2012. Both are fully patched. Perl is ActivePerl, version 5.16.3.1603.
Anyone any suggestions?
Thanks,
KTP

There's some perl data provider stuff wrapping ADO here, and it looks like it's resetting the connection, or otherwise preventing the IDENTITY INSERT setting from persisting between batches.
So best thing is to set IDENTITY INSERT in the same batch where you perform the insert.
A little background: you send commands to SQL Server in batches, and a batch contains 0 or more statements.  A batch is the basic unit of TSQL scripting. You are sending each statement in a separate batch, but that's not required. 
So instead of
$SQL_sth = $SQL_dbh->prepare("set identity_insert $tb ON") || die "$DBI::errstr";
$SQL_sth->execute() || die "$DBI::errstr";
$SQL_sth = $SQL_dbh->prepare("insert into $tb (col1) values (4)") || die "$DBI::errstr";
$SQL_sth->execute() || die "$DBI::errstr";
Try something like
$SQL_sth = $SQL_dbh->prepare("set identity_insert $tb ON; insert into $tb (col1) values (4)") || die "$DBI::errstr";
$SQL_sth->execute() || die "$DBI::errstr";
David
David http://blogs.msdn.com/b/dbrowne/

Similar Messages

  • BODS Error with IDENTITY INSERT and Transactional Data Loading

    Hi All,
    We are facing some issues while working with SAP BODS,
    Scenario: We have 4 tables in Microsoft SQL Server that contains identity Columns and they bears an Parent-Child Relationship among themselves.
    We need to insert values into the tables simultaneously.
    Solution we are trying to implement:
    a) Trying Transactional Options for each table in the data store – but for that the preloading and post loading SQL tabs are going  disabled
                        So error facing is enable identity_insert  is set to OFF. We have everything enabled in database the user which connects the BODS is the owner of the database.
    b) Trying Bulk Loading Options
                             Bulk Loading is able to insert values into tables, but then where there is a parent child relationship we are facing the error of Foreign-Key.
    Please Share your views.
    Thanks a lot in advance.
    Regards
    Joy

    Yes I have tried that, if we use Transaction Loading then both pre-load and post load options are disabled for that.
    But if we dont use transaction loading we are facing the parent child table loading problem. Foreign Key constraints are violated,
    I have also tried scripting i.e enabling the identity insert before the data-flow begins.
    Thanks and Regards
    Joy

  • Multi-table INSERT with PARALLEL hint on 2 node RAC

    Multi-table INSERT statement with parallelism set to 5, works fine and spawns multiple parallel
    servers to execute. Its just that it sticks on to only one instance of a 2 node RAC. The code I
    used is what is given below.
    create table t1 ( x int );
    create table t2 ( x int );
    insert /*+ APPEND parallel(t1,5) parallel (t2,5) */
    when (dummy='X') then into t1(x) values (y)
    when (dummy='Y') then into t2(x) values (y)
    select dummy, 1 y from dual;
    I can see multiple sessions using the below query, but on only one instance only. This happens not
    only for the above statement but also for a statement where real time table(as in table with more
    than 20 million records) are used.
    select p.server_name,ps.sid,ps.qcsid,ps.inst_id,ps.qcinst_id,degree,req_degree,
    sql.sql_text
    from Gv$px_process p, Gv$sql sql, Gv$session s , gv$px_session ps
    WHERE p.sid = s.sid
    and p.serial# = s.serial#
    and p.sid = ps.sid
    and p.serial# = ps.serial#
    and s.sql_address = sql.address
    and s.sql_hash_value = sql.hash_value
    and qcsid=945
    Won't parallel servers be spawned across instances for multi-table insert with parallelism on RAC?
    Thanks,
    Mahesh

    Please take a look at these 2 articles below
    http://christianbilien.wordpress.com/2007/09/12/strategies-for-rac-inter-instance-parallelized-queries-part-12/
    http://christianbilien.wordpress.com/2007/09/14/strategies-for-parallelized-queries-across-rac-instances-part-22/
    thanks
    http://swervedba.wordpress.com

  • Can I have two identical PCs with clones of the same hard drive?

    This all started when I had a problem with my first pc, a gateway laptop, would not wake up from sleep due to, supposedly, a driver problem. I didn't want to send it off for my free, under-warrantee, repair and be without a computer for however long that
    would take. So I bought another one and took it to a local dealer to clone the hard drive of the first one to put on the new one.
    This created a number of odd problems which eventually I figured out had something to do, it seemed, with Microsoft not allowing two identical machines to exist like that. I only plan to use one, the other one being exclusively for backup or in case something
    happened to the first. But I think the problems occurred when I tried to switch back and forth, to do some texting.
    Is there a way I can accomplish this?
    Thanks.

    Until Windows 7, it was possible to use two identical PCs with same clone. Provided, both the PCs must be legally licensed to use the Windows operating system (version as well as edition) and of same OEM, model and spec. This is possible because, the product
    keys are common for all the PCs of same OEM build (if preinstalled, and the installed product key is different from the one mentioned in COA). This made OEM builders to distribute to more PCs than the license agreement, which is impossible for Microsoft to
    find out. To solve this issue, Microsoft changed the licensing structure from Windows 8 - embedding the product key in BIOS. So, here, only the installation is provided and the product keys are not common for all the PCs even if they are of the same OEM build.
    Therefore, cloning fails here. And naturally, as Team Zigzag and EC Ltd say, same product key can't be used for more than one PC.
    As to restore the PC in case of an emergency, you can perform a backup of the existing installed software and user files, which can be restored later (File History in Windows 8). The following links may be helpful:
    http://windows.microsoft.com/en-us/windows-8/what-happened-to-backup-restore
    http://blogs.technet.com/b/keithmayer/archive/2013/09/17/backup-amp-recovery-of-windows-8-windows8-itpro-tipoftheday.aspx#.UkC-hmLrbIU
    Balaji Kundalam

  • How do I insert multiple rows from a single form ...

    How do I insert multiple rows from a single form?
    This form is organised by a table. (just as in an excel format)
    I have 20 items on a form each row item has five field
    +++++++++++ FORM AREA+++++++++++++++++++++++++++++++++++++++++++++++++++++
    +Product| qty In | Qty Out | Balance | Date +
    +------------------------------------------------------------------------+
    +Item1 | textbox1 | textbox2 | textbox3 | date +
    + |value = $qty_in1|value= &qty_out1|value=$balance1|value=$date1 +
    +------------------------------------------------------------------------+
    +Item 2 | textbox1 | textbox2 | textbox4 | date +
    + |value = $qty_in2|value= $qty_out1|value=$balance2|value=$date2 +
    +------------------------------------------------------------------------+
    + Item3 | textbox1 | textbox2 | textbox3 | date +
    +------------------------------------------------------------------------+
    + contd | | | +
    +------------------------------------------------------------------------+
    + item20| | | | +
    +------------------------------------------------------------------------+
    + + + SUBMIT + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    Database Structure
    +++++++++++++++++
    + Stock_tabe +
    +---------------+
    + refid +
    +---------------+
    + item +
    +---------------+
    + Qty In +
    +---------------+
    + Qty Out +
    +---------------+
    + Balance +
    +---------------+
    + Date +
    +++++++++++++++++
    Let's say for example user have to the use the form to enter all 10 items or few like 5 on their stock form into 4 different textbox field each lines of your form, however these items go into a "Stock_table" under Single insert transaction query when submit button is pressed.
    Please anyone help me out, on how to get this concept started.

    Hello,
    I have a way to do this, but it would take some hand coding on your part. If you feel comfortable hand writing php code and doing manual database calls, specificaly database INSERT calls you should be fine.
    Create a custom form using the ADDT Custom Form Wizard that has all the rows and fields you need. This may take a bit if you are adding the ability for up to 20 rows, as per your diagram of the form area. The nice thing about using ADDT to create the form is that you can setup the form validation at the same time. Leave the last step in the Custom Form Wizard blank. You can add a custom database call here, but I would leave it blank.
    Next, under ADDT's Forms Server Behaviors, select Custom Trigger. At the Basic tab, you enter your custom php code that will be executed. Here you are going to want to put your code that will check if a value has been entered in the form and then do a database INSERT operation on the Stock_table with that row. The advanced tab lets you set the order of operations and the name of the Custom Trigger. By default, it is set to AFTER. This means that the Custom Trigger will get executed AFTER the form data is processed by the Custom Form Transaction.
    I usually just enter TEST into the "Basic" tab of the Custom Trigger. Then set my order of operations in the "Advanced" tab and close the Custom Trigger. Then I go to the code view for that page in Dreamweaver and find the Custom Trigger function and edit the code manually. It's much easier this way because the Custom Trigger wizard does not show you formatting on the code, and you don't have to keep opening the Wizard to edit and test your code.
    Your going to have to have the Custom Trigger fuction do a test on the submitted form data. If data is present, then INSERT into database. Here's a basic example of what you need to do:
    In your code view, the Custom Trigger will look something like this:
    function Trigger_Custom(&$tNG) {
    if($tNG->getColumnValue("Item_1")) {
    $item1 = $tNG->getColumnValue("Item_1");
    $textbox1_1 = $tNG->getColumnValue("Textbox_1");
    $textbox1_2 = $tNG->getColumnValue("Textbox_2");
    $textbox1_3 = $tNG->getColumnValue("Textbox_3");
    $date1 = $tNG->getColumnValue("Textbox_3");
    $queryAdd = "INSERT INTO Stock_table
    (item, Qty_In, Qty_Out, Balance, Date) VALUES($item1, $textbox1_1, $textbox1_2, $textbox1_3, $date1)"
    $result = mysql_query($queryAdd) or die(mysql_error());
    This code checks to see if the form input field named Item_1 is set. If so, then get the rest of the values for the first item and insert them into the database. You would need to do this for each row in your form. So the if you let the customer add 20 rows, you would need to check 20 times to see if the data is there or write the code so that it stops once it encounters an empty Item field. To exit a Custom Trigger, you can return NULL; and it will jump out of the function. You can also throw custom error message out of triggers, but this post is already way to long to get into that.
    $tNG->getColumnValue("Item_1") is used to retrieve the value that was set by the form input field named Item_1. This field is named by the Custom Form Wizard when you create your form. You can see what all the input filed names are by looking in the code view for something like:
    // Add columns
    $customTransaction->addColumn("Item_1", "STRING_TYPE", "POST", "Item_1");
    There will be one for each field you created with the Custom Form Wizard.
    Unfortunately, I don't have an easy way to do what you need. Maybe there is a way, but since none of the experts have responded, I thought I would point you in a direction. You should read all you can about Custom Triggers in the ADDT documentation/help pdf to give you more detailed information about how Custom Triggers work.
    Hope this helps.
    Shane

  • Insert an image from a Database

    Hi - I am trying to insert an image from a database into a webpage.  Basically when clients register on the site they upload their logo which i want to come up when they look at their account details and when they post a job.  When I test the file upload the file name is in an "image" field in my database and the image is in the website files on the server but I am having problems trying to get the logo to shop up on the webpage.  I have one table called Recruiters where all the client's contact details (and logo upload goes) and a table called jobs where all the job details go when they post a job (this does not hold the logo upload). 
    At the moment i am trying to insert the image into the Recruiter account Details page where all the clients contact details are and all this information comes from the Recruiter table (including the image) but the image does not appear.  the query in my recordset is:-
    SELECT *
    FROM recruiters
    WHERE RecruiterID = colname
    (colname = $_GET['RecruiterID'])
    <?php require_once('../Connections/laura.php'); ?>
    <?php
    //initialize the session
    if (!isset($_SESSION)) {
      session_start();
    // ** Logout the current user. **
    $logoutAction = $_SERVER['PHP_SELF']."?doLogout=true";
    if ((isset($_SERVER['QUERY_STRING'])) && ($_SERVER['QUERY_STRING'] != "")){
      $logoutAction .="&". htmlentities($_SERVER['QUERY_STRING']);
    if ((isset($_GET['doLogout'])) &&($_GET['doLogout']=="true")){
      //to fully log out a visitor we need to clear the session varialbles
      $_SESSION['MM_Username'] = NULL;
      $_SESSION['MM_UserGroup'] = NULL;
      $_SESSION['PrevUrl'] = NULL;
      unset($_SESSION['MM_Username']);
      unset($_SESSION['MM_UserGroup']);
      unset($_SESSION['PrevUrl']);
      $logoutGoTo = "../index.php";
      if ($logoutGoTo) {
        header("Location: $logoutGoTo");
        exit;
    ?>
    <?php
    if (!isset($_SESSION)) {
      session_start();
    $MM_authorizedUsers = "Recruiter";
    $MM_donotCheckaccess = "false";
    // *** Restrict Access To Page: Grant or deny access to this page
    function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) {
      // For security, start by assuming the visitor is NOT authorized.
      $isValid = False;
      // When a visitor has logged into this site, the Session variable MM_Username set equal to their username.
      // Therefore, we know that a user is NOT logged in if that Session variable is blank.
      if (!empty($UserName)) {
        // Besides being logged in, you may restrict access to only certain users based on an ID established when they login.
        // Parse the strings into arrays.
        $arrUsers = Explode(",", $strUsers);
        $arrGroups = Explode(",", $strGroups);
        if (in_array($UserName, $arrUsers)) {
          $isValid = true;
        // Or, you may restrict access to only certain users based on their username.
        if (in_array($UserGroup, $arrGroups)) {
          $isValid = true;
        if (($strUsers == "") && false) {
          $isValid = true;
      return $isValid;
    $MM_restrictGoTo = "../Unavailablepage.php";
    if (!((isset($_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers, $_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {  
      $MM_qsChar = "?";
      $MM_referrer = $_SERVER['PHP_SELF'];
      if (strpos($MM_restrictGoTo, "?")) $MM_qsChar = "&";
      if (isset($_SERVER['QUERY_STRING']) && strlen($_SERVER['QUERY_STRING']) > 0)
      $MM_referrer .= "?" . $_SERVER['QUERY_STRING'];
      $MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" . urlencode($MM_referrer);
      header("Location: ". $MM_restrictGoTo);
      exit;
    ?>
    <?php
    if (!function_exists("GetSQLValueString")) {
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
      if (PHP_VERSION < 6) {
        $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
      $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
      switch ($theType) {
        case "text":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;   
        case "long":
        case "int":
          $theValue = ($theValue != "") ? intval($theValue) : "NULL";
          break;
        case "double":
          $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
          break;
        case "date":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;
        case "defined":
          $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
          break;
      return $theValue;
    $colname_rsAccountDetails = "-1";
    if (isset($_GET['RecruiterID'])) {
      $colname_rsAccountDetails = $_GET['RecruiterID'];
    mysql_select_db($database_laura, $laura);
    $query_rsAccountDetails = sprintf("SELECT * FROM recruiters WHERE RecruiterID = %s", GetSQLValueString($colname_rsAccountDetails, "int"));
    $rsAccountDetails = mysql_query($query_rsAccountDetails, $laura) or die(mysql_error());
    $row_rsAccountDetails = mysql_fetch_assoc($rsAccountDetails);
    $totalRows_rsAccountDetails = mysql_num_rows($rsAccountDetails);
    ?>
    <!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>Nursery and Childcare Jobs in the UK</title>
    <link href="../CSS/Global.css" rel="stylesheet" type="text/css" />
    <script src="../SpryAssets/SpryMenuBar.js" type="text/javascript"></script>
    <link href="../SpryAssets/SpryMenuBarHorizontal.css" rel="stylesheet" type="text/css" />
    <link href="../SpryAssets/SpryMenuBarVertical.css" rel="stylesheet" type="text/css" />
    <!-- google adwords -->
    <script type="text/javascript">
      var _gaq = _gaq || [];
      _gaq.push(['_setAccount', 'UA-6435415-4']);
      _gaq.push(['_trackPageview']);
      (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
    </script>
    </head>
    <body>
    <div class="container">
      <div class="header"><!-- end .header --><a href="../index.php"><img src="../Images/Logo.png" width="900" height="200" alt="Logo" /></a></div>
       <ul id="MenuBar1" class="MenuBarHorizontal">
          <li><a href="../index.php">Home</a>      </li>
          <li><a href="#" class="MenuBarItemSubmenu">Recruiters</a>
            <ul>
              <li><a href="recruiterbenefits.php">Benefits</a></li>
              <li><a href="recruiterfees.php">Fees</a></li>
              <li><a href="recreg.php">Register</a></li>
              <li><a href="reclogin.php">Login </a></li>
            </ul>
          </li>
          <li><a class="MenuBarItemSubmenu" href="#">Jobseekers</a>
            <ul>
              <li><a href="../Jobseekerarea/jobseekerbenefits.php">Benefits</a>          </li>
              <li><a href="../Jobseekerarea/jobseekerreg1.php">Register</a></li>
              <li><a href="../Jobseekerarea/jslogin.php">Login</a></li>
            </ul>
          </li>
          <li><a href="../contactus.php">Contact Us</a></li>
      </ul>
      <div class="sidebar1">
        <p> </p>
        <div class="recruitsidebar">
          <ul id="MenuBar2" class="MenuBarVertical">
            <li><a href="postajob.php">Post a Job</a></li>
            <li><a href="recruiterjobs1.php">My Jobs</a></li>
            <li><a href="recAccdetails.php?RecruiterID=<?php echo $row_rsAccountDetails['RecruiterID']; ?>">My Details</a></li>
            <li><a href="Saferrecruitment.php">Safer Recruitment</a></li>
            <li><a href="Interview1.php" class="MenuBarItemSubmenu">Interviewing Staff</a>
              <ul>
                <li><a href="recInterviewquestions.php">Nursery Staff Interview Questions</a></li>
              </ul>
            </li>
            <li><a href="Nurseryjobsdescriptions.php">Nursery Job Descriptions</a></li>
            <li><a href="recruiterarea.php">Recruiter Home</a></li>
    <li><a href="<?php echo $logoutAction ?>">Log Out</a></li>
          </ul>
          <p> </p>
        </div>
    </div>
      <div class="content">
        <h1>Account Details</h1>
        <p>Below are the details you have provided us with about your nursery/setting.</p>
        <p> </p>
        <form id="accountdetailsform" name="accountdetailsform" method="post" action="recUpdate.php?RecruiterID=<?php echo $row_rsAccountDetails['RecruiterID']; ?>">
          <table width="580" border="0" cellpadding="3" cellspacing="3" id="accountdetails">
            <tr>
              <td width="212" scope="col">Nursery/Setting Name</td>
              <td width="347" scope="col"><?php echo $row_rsAccountDetails['client']; ?></td>
            </tr>
            <tr>
              <td>Contact Name</td>
              <td><?php echo $row_rsAccountDetails['contactname']; ?></td>
            </tr>
            <tr>
              <td>Setting Type</td>
              <td><?php echo $row_rsAccountDetails['settingtype']; ?></td>
            </tr>
            <tr>
              <td>Nursery/Setting</td>
              <td><?php echo $row_rsAccountDetails['Setting']; ?></td>
            </tr>
            <tr>
              <td>Building Name/Number</td>
              <td><?php echo $row_rsAccountDetails['buildingnumber']; ?></td>
            </tr>
            <tr>
              <td>Street Name</td>
              <td><?php echo $row_rsAccountDetails['streetname']; ?></td>
            </tr>
            <tr>
              <td>Address</td>
              <td><?php echo $row_rsAccountDetails['address3']; ?></td>
            </tr>
            <tr>
              <td>Town/City</td>
              <td><?php echo $row_rsAccountDetails['town']; ?></td>
            </tr>
            <tr>
              <td>Post Code</td>
              <td><?php echo $row_rsAccountDetails['postcode']; ?></td>
            </tr>
            <tr>
              <td>Region</td>
              <td><?php echo $row_rsAccountDetails['region']; ?></td>
            </tr>
            <tr>
              <td>Telephone</td>
              <td><?php echo $row_rsAccountDetails['telephone']; ?></td>
            </tr>
            <tr>
              <td>Email</td>
              <td><?php echo $row_rsAccountDetails['email']; ?></td>
            </tr>
            <tr>
              <td>Website</td>
              <td><?php echo $row_rsAccountDetails['WebAddress']; ?></td>
            </tr>
            <tr>
              <td>Password</td>
              <td> </td>
            </tr>
            <tr>
              <td>Logo</td>
              <td><img src="<?php echo $row_rsAccountDetails['Image']; ?>" alt="Logo" /></td>
            </tr>
            <tr>
              <td>Date Registered</td>
              <td><?php echo $row_rsAccountDetails['dateregistered']; ?></td>
            </tr>
          </table>
          <p>
            <input name="hiddenField" type="hidden" id="hiddenField" value="<?php echo $row_rsAccountDetails['RecruiterID']; ?>" />
          </p>
          <p>
            <input type="submit" name="Update" id="Update" value="Update Details" />
          </p>
          <p> </p>
        </form>
        <p> </p>
        <table width="600" border="0" cellpadding="3" cellspacing="3" class="postform">
          <tr>      </tr>
          <tr>      </tr>
          <tr>      </tr>
        </table>
        <p> </p>
    <p> </p>
    </div>
      <div class="sidebar2">
        <h4> </h4>
        <!-- end .sidebar2 --></div>
      <div class="footer">
        <p><a href="../index.php">Home</a> | <a href="../contactus.php">Contact us</a> | <a href="../PrivacyPolicy.php">Privacy</a> | <a href="../termsandconditions.php">Terms of Business</a></p>
        <p>&copy; theNurseryJobSite.com 2011</p>
        <!-- end .footer --></div>
      <!-- end .container --></div>
    <script type="text/javascript">
    var MenuBar1 = new Spry.Widget.MenuBar("MenuBar1", {imgDown:"SpryAssets/SpryMenuBarDownHover.gif", imgRight:"SpryAssets/SpryMenuBarRightHover.gif"});
    var MenuBar2 = new Spry.Widget.MenuBar("MenuBar2", {imgRight:"../SpryAssets/SpryMenuBarRightHover.gif"});
    </script>
    </body>
    </html>
    <?php
    mysql_free_result($rsAccountDetails);
    ?>

    Hi
    You were right – I had to insert full path and it has worked so thanks.
    Would you be able to help me out with inserting the logo into a job post page and  the recordset I will need to insert the logo?
    Basically I want to add the logo that is uploaded when a client registers on the site onto a job info page.  To access the the details about a job, jobseekers just click on the job that interests them which takes them to the job details page which pulls all the information from the "Job" table in the database.  However, the logo is stored in the "image" field in the "Recruiter" table in the database.   I have tried setting up a recordset as:-
    SELECT Image
    FROM recruiters
    WHERE RecruiterID = colname
    (colname = $_GET['RecruiterID'])
    <?php require_once('../Connections/laura.php'); ?>
    <?php
    //initialize the session
    if (!isset($_SESSION)) {
      session_start();
    // ** Logout the current user. **
    $logoutAction = $_SERVER['PHP_SELF']."?doLogout=true";
    if ((isset($_SERVER['QUERY_STRING'])) && ($_SERVER['QUERY_STRING'] != "")){
      $logoutAction .="&". htmlentities($_SERVER['QUERY_STRING']);
    if ((isset($_GET['doLogout'])) &&($_GET['doLogout']=="true")){
      //to fully log out a visitor we need to clear the session varialbles
      $_SESSION['MM_Username'] = NULL;
      $_SESSION['MM_UserGroup'] = NULL;
      $_SESSION['PrevUrl'] = NULL;
      unset($_SESSION['MM_Username']);
      unset($_SESSION['MM_UserGroup']);
      unset($_SESSION['PrevUrl']);
      $logoutGoTo = "../index.php";
      if ($logoutGoTo) {
        header("Location: $logoutGoTo");
        exit;
    ?>
    <?php
    if (!isset($_SESSION)) {
      session_start();
    $MM_authorizedUsers = "Recruiter";
    $MM_donotCheckaccess = "false";
    // *** Restrict Access To Page: Grant or deny access to this page
    function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) {
      // For security, start by assuming the visitor is NOT authorized.
      $isValid = False;
      // When a visitor has logged into this site, the Session variable MM_Username set equal to their username.
      // Therefore, we know that a user is NOT logged in if that Session variable is blank.
      if (!empty($UserName)) {
        // Besides being logged in, you may restrict access to only certain users based on an ID established when they login.
        // Parse the strings into arrays.
        $arrUsers = Explode(",", $strUsers);
        $arrGroups = Explode(",", $strGroups);
        if (in_array($UserName, $arrUsers)) {
          $isValid = true;
        // Or, you may restrict access to only certain users based on their username.
        if (in_array($UserGroup, $arrGroups)) {
          $isValid = true;
        if (($strUsers == "") && false) {
          $isValid = true;
      return $isValid;
    $MM_restrictGoTo = "../Unavailablepage.php";
    if (!((isset($_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers, $_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {  
      $MM_qsChar = "?";
      $MM_referrer = $_SERVER['PHP_SELF'];
      if (strpos($MM_restrictGoTo, "?")) $MM_qsChar = "&";
      if (isset($_SERVER['QUERY_STRING']) && strlen($_SERVER['QUERY_STRING']) > 0)
      $MM_referrer .= "?" . $_SERVER['QUERY_STRING'];
      $MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" . urlencode($MM_referrer);
      header("Location: ". $MM_restrictGoTo);
      exit;
    ?>
    <?php
    if (!function_exists("GetSQLValueString")) {
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
      if (PHP_VERSION < 6) {
        $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
      $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
      switch ($theType) {
        case "text":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;   
        case "long":
        case "int":
          $theValue = ($theValue != "") ? intval($theValue) : "NULL";
          break;
        case "double":
          $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
          break;
        case "date":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;
        case "defined":
          $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
          break;
      return $theValue;
    $colname_rsDetails = "-1";
    if (isset($_GET['JobID'])) {
      $colname_rsDetails = $_GET['JobID'];
    mysql_select_db($database_laura, $laura);
    $query_rsDetails = sprintf("SELECT * FROM jobs WHERE JobID = %s", GetSQLValueString($colname_rsDetails, "text"));
    $rsDetails = mysql_query($query_rsDetails, $laura) or die(mysql_error());
    $row_rsDetails = mysql_fetch_assoc($rsDetails);
    $totalRows_rsDetails = "-1";
    if (isset($_GET['JobID'])) {
      $totalRows_rsDetails = $_GET['JobID'];
    mysql_select_db($database_laura, $laura);
    $query_rsDetails = sprintf("SELECT recruiters.Image, jobs.JobID, jobs.RecruiterID, jobs.jobtitle, jobs.`Position`, jobs.Nursery, jobs.branchlocation, jobs.ContactName, jobs.JobDescription, jobs.Location, jobs.town, jobs.employmenttype, jobs.Hours, jobs.qualifications, jobs.Salary, jobs.ContactNo, jobs.Email, jobs.dateposted  FROM jobs, recruiters WHERE JobID = %s", GetSQLValueString($colname_rsDetails, "int"));
    $rsDetails = mysql_query($query_rsDetails, $laura) or die(mysql_error());
    $row_rsDetails = mysql_fetch_assoc($rsDetails);
    $totalRows_rsDetails = "-1";
    if (isset($_GET['JobID'])) {
      $totalRows_rsDetails = $_GET['JobID'];
    mysql_select_db($database_laura, $laura);
    $query_rsDetails = sprintf("SELECT recruiters.Image, jobs.JobID, jobs.RecruiterID, jobs.jobtitle, jobs.`Position`, jobs.Nursery, jobs.branchlocation, jobs.ContactName, jobs.JobDescription, jobs.Location, jobs.town, jobs.employmenttype, jobs.Hours, jobs.qualifications, jobs.Salary, jobs.ContactNo, jobs.Email, jobs.dateposted FROM jobs, recruiters WHERE JobID = %s", GetSQLValueString($colname_rsDetails, "int"));
    $rsDetails = mysql_query($query_rsDetails, $laura) or die(mysql_error());
    $row_rsDetails = mysql_fetch_assoc($rsDetails);
    $totalRows_rsDetails = "-1";
    if (isset($_GET['JobID'])) {
      $totalRows_rsDetails = $_GET['JobID'];
    mysql_select_db($database_laura, $laura);
    $query_rsDetails = sprintf("SELECT recruiters.Image, jobs.JobID, jobs.RecruiterID, jobs.jobtitle, jobs.`Position`, jobs.Nursery, jobs.branchlocation, jobs.ContactName, jobs.JobDescription, jobs.Location, jobs.town, jobs.employmenttype, jobs.Hours, jobs.qualifications, jobs.Salary, jobs.ContactNo, jobs.Email, jobs.dateposted FROM jobs, recruiters WHERE JobID = %s", GetSQLValueString($totalRows_rsDetails, "int"));
    $rsDetails = mysql_query($query_rsDetails, $laura) or die(mysql_error());
    $row_rsDetails = mysql_fetch_assoc($rsDetails);
    $totalRows_rsDetails = mysql_num_rows($rsDetails);
    $colname_rsRecruiterID2 = "-1";
    if (isset($_GET['RecruiterID'])) {
      $colname_rsRecruiterID2 = $_GET['RecruiterID'];
    mysql_select_db($database_laura, $laura);
    $query_rsRecruiterID2 = sprintf("SELECT RecruiterID FROM recruiters WHERE RecruiterID = %s", GetSQLValueString($colname_rsRecruiterID2, "int"));
    $rsRecruiterID2 = mysql_query($query_rsRecruiterID2, $laura) or die(mysql_error());
    $row_rsRecruiterID2 = mysql_fetch_assoc($rsRecruiterID2);
    $totalRows_rsRecruiterID2 = mysql_num_rows($rsRecruiterID2);
    $colname_rsRecruiterID = "-1";
    if (isset($_SESSION['MM_Username'])) {
      $colname_rsRecruiterID = $_SESSION['MM_Username'];
    mysql_select_db($database_laura, $laura);
    $query_rsRecruiterID = sprintf("SELECT RecruiterID FROM recruiters WHERE email = %s", GetSQLValueString($colname_rsRecruiterID, "text"));
    $rsRecruiterID = mysql_query($query_rsRecruiterID, $laura) or die(mysql_error());
    $row_rsRecruiterID = mysql_fetch_assoc($rsRecruiterID);
    $totalRows_rsRecruiterID = mysql_num_rows($rsRecruiterID);
    $colname_Recordset1 = "-1";
    if (isset($_GET['RecruiterID'])) {
      $colname_Recordset1 = $_GET['RecruiterID'];
    mysql_select_db($database_laura, $laura);
    $query_Recordset1 = sprintf("SELECT Image FROM recruiters WHERE RecruiterID = %s", GetSQLValueString($colname_Recordset1, "int"));
    $Recordset1 = mysql_query($query_Recordset1, $laura) or die(mysql_error());
    $row_Recordset1 = mysql_fetch_assoc($Recordset1);
    $totalRows_Recordset1 = mysql_num_rows($Recordset1);
    $query_rsJobs = "SELECT * FROM jobs";
    $rsJobs = mysql_query($query_rsJobs, $laura) or die(mysql_error());
    $row_rsJobs = mysql_fetch_assoc($rsJobs);
    $totalRows_rsJobs = mysql_num_rows($rsJobs);
    $colname_rsJobs = "-1";
    if (isset($_GET['Position'])) {
      $colname_rsJobs = $_GET['Position'];
    $varLocation_rsJobs = "-1";
    if (isset($_GET['Location'])) {
      $varLocation_rsJobs = $_GET['Location'];
    mysql_select_db($database_laura, $laura);
    $query_rsJobs = sprintf("SELECT `Position`, Nursery, Location, Salary, Email, ContactNo, JobDescription, JobID FROM jobs WHERE `Position` = %s AND jobs.Location = %s", GetSQLValueString($colname_rsJobs, "text"),GetSQLValueString($varLocation_rsJobs, "text"));
    $rsJobs = mysql_query($query_rsJobs, $laura) or die(mysql_error());
    $row_rsJobs = mysql_fetch_assoc($rsJobs);
    ?>
    <!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>Nursery and Childcare Jobs in the UK</title>
    <link href="../CSS/Global.css" rel="stylesheet" type="text/css" />
    <script src="../SpryAssets/SpryMenuBar.js" type="text/javascript"></script>
    <link href="../SpryAssets/SpryMenuBarHorizontal.css" rel="stylesheet" type="text/css" />
    <link href="../SpryAssets/SpryMenuBarVertical.css" rel="stylesheet" type="text/css" />
    <!-- google adwards -->
    <script type="text/javascript">
      var _gaq = _gaq || [];
      _gaq.push(['_setAccount', 'UA-6435415-4']);
      _gaq.push(['_trackPageview']);
      (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
    </script>
    </head>
    <body>
    <div class="container">
      <div class="header"><!-- end .header --><a href="../index.php"><img src="../Images/Logo.png" width="900" height="200" alt="the Nursery Job Site" /></a></div>
      <div class="navbar">  <ul id="MenuBar1" class="MenuBarHorizontal">
          <li><a href="thenurseryjobsite.php">About the Nursery Job Site</a>      </li>
          <li><a href="#" class="MenuBarItemSubmenu">Recruiters</a>
            <ul>
              <li><a href="Recruiterarea/recruiterbenefits.php">Benefits</a></li>
              <li><a href="Recruiterarea/recruiterfees.php">Fees</a></li>
              <li><a href="Recruiterarea/reclogin.php">Login</a></li>
              <li><a href="Recruiterarea/recreg.php">Register</a></li>
            </ul>
          </li>
          <li><a class="MenuBarItemSubmenu" href="#">Jobseekers</a>
            <ul>
              <li><a href="Jobseekerarea/jobseekerbenefits.php">Benefits</a>          </li>
              <li><a href="Jobseekerarea/jslogin.php">Login</a></li>
              <li><a href="Jobseekerarea/jobseekerreg1.php">Register</a></li>
            </ul>
          </li>
          <li><a href="contactus.php">Contact Us</a></li>
        </ul> </div> <!--end navbar div -->
      <div class="sidebar1">
        <p> </p>
        <div class="recruitsidebar">
          <ul id="MenuBar2" class="MenuBarVertical">
            <li><a href="postajob.php">Post a Job</a></li>
            <li><a href="recAccdetails.php?RecruiterID=<?php echo $row_rsRecruiterID['RecruiterID']; ?>">My Details </a></li>
            <li><a href="recruiterjobs1.php">My Jobs</a></li>
            <li><a href="Saferrecruitment.php">Safer Recruitment</a></li>
            <li><a href="Interview1.php" class="MenuBarItemSubmenu">Interviewing Staff</a>
              <ul>
                <li><a href="recInterviewquestions.php">Nursery Staff Interview Questions</a></li>
              </ul>
            </li>
            <li><a href="Nurseryjobsdescriptions.php">Nursery Job Descriptions</a></li>
            <li><a href="recruiterarea.php">Recruiter Home</a></li>
    <li><a href="<?php echo $logoutAction ?>">Log Out</a></li>
          </ul>
          <p> </p>
        </div>
    </div>
      <div class="content">
        <h1> </h1>
    <div class="detailheading" id="detailheading">
          <h1> </h1>
          <table width="564" border="0" align="center" cellpadding="3" cellspacing="3" id="headingtable">
            <tr>
              <td width="89" height="44" align="center" class="headertext"><h1>Nursery:</h1></td>
              <td width="283" class="headertext"><?php echo $row_rsDetails['Nursery']; ?></td>
              <td width="162" rowspan="2"><img src="<?php echo $row_Recordset1['Image']; ?>" alt="" name="nurserylogo" align="right" id="nurserylogo" /></td>
            </tr>
            <tr align="left" class="headertext">
              <td width="89" height="44" align="center"><h1 class="headertext">Job Title:</h1></td>
              <td align="left"><?php echo $row_rsDetails['jobtitle']; ?></td>
            </tr>
          </table>
          <p> </p>
        </div>
        <table width="568" border="0" align="center" cellpadding="3" cellspacing="3" class="detail" id="detailtable">
          <tr>
            <td width="162" scope="col">Job Title</td>
            <td width="381" scope="col"><?php echo $row_rsDetails['jobtitle']; ?></td>
          </tr>
          <tr>
            <td>Nursery</td>
            <td><?php echo $row_rsDetails['Nursery']; ?></td>
          </tr>
          <tr>
            <td>Branch Name/Location</td>
            <td><?php echo $row_rsDetails['branchlocation']; ?></td>
          </tr>
          <tr>
            <td>Location</td>
            <td><?php echo $row_rsDetails['Location']; ?>,<?php echo $row_rsDetails['town']; ?></td>
          </tr>
          <tr>
            <td valign="top">Job Description</td>
            <td><p> </p>
              <p><?php echo $row_rsDetails['JobDescription']; ?></p>
            <p> </p></td>
          </tr>
          <tr>
            <td>Qualifications Required</td>
            <td><?php echo $row_rsDetails['qualifications']; ?></td>
          </tr>
          <tr>
            <td>Employment Type</td>
            <td><?php echo $row_rsDetails['employmenttype']; ?></td>
          </tr>
          <tr>
            <td>Hours</td>
            <td><?php echo $row_rsDetails['Hours']; ?></td>
          </tr>
          <tr>
            <td>Salary</td>
            <td>£<?php echo $row_rsDetails['Salary']; ?></td>
          </tr>
          <tr>
            <td>Contact Number</td>
            <td><?php echo $row_rsDetails['ContactNo']; ?></td>
          </tr>
          <tr>
            <td>Email</td>
            <td><?php echo $row_rsDetails['Email']; ?></td>
          </tr>
          <tr>
            <td>Date Posted</td>
            <td><?php echo $row_rsDetails['dateposted']; ?></td>
          </tr>
          <tr>
            <td>Job ID</td>
            <td><?php echo $row_rsDetails['JobID']; ?></td>
          </tr>
        </table>
        <p><br />
        </p>
        <form id="recruiterjobsform" name="recruiterjobsform" method="post" action="recruiterjobs1.php">
          <input name="RecruiterIDjobs" type="hidden" id="RecruiterIDjobs" value="<?php echo $row_rsDetails['RecruiterID']; ?>" />
          <input type="submit" name="button" id="button" value="return to my jobs" />
        </form>
        <p> </p>
    <script type="text/javascript">
    var MenuBar2 = new Spry.Widget.MenuBar("MenuBar2", {imgRight:"../SpryAssets/SpryMenuBarRightHover.gif"});
        </script><script type="text/javascript">
    var MenuBar1 = new Spry.Widget.MenuBar("MenuBar1", {imgDown:"SpryAssets/SpryMenuBarDownHover.gif", imgRight:"SpryAssets/SpryMenuBarRightHover.gif"});
    var MenuBar2 = new Spry.Widget.MenuBar("MenuBar2", {imgRight:"../SpryAssets/SpryMenuBarRightHover.gif"});
    </script>
    <p> </p>
    </div>
      <div class="sidebar2">
        <h4> </h4>
        <!-- end .sidebar2 --></div>
      <div class="footer">
        <p><a href="../index.php">Home</a> | <a href="../contactus.php">Contact us</a> | <a href="../PrivacyPolicy.php">Privacy</a> | <a href="../termsandconditions.php">Terms of Business</a></p>
        <p>&copy; theNurseryJobSite.com 2011</p>
        <!-- end .footer --></div>
      <!-- end .container --></div>
    <script type="text/javascript">
    var MenuBar1 = new Spry.Widget.MenuBar("MenuBar1", {imgDown:"SpryAssets/SpryMenuBarDownHover.gif", imgRight:"SpryAssets/SpryMenuBarRightHover.gif"});
    var MenuBar2 = new Spry.Widget.MenuBar("MenuBar2", {imgRight:"../SpryAssets/SpryMenuBarRightHover.gif"});
    </script>
    </body>
    </html>
    <?php
    mysql_free_result($rsDetails);
    mysql_free_result($rsRecruiterID2);
    mysql_free_result($rsRecruiterID);
    mysql_free_result($Recordset1);
    ?>

  • How to insert the data from XML to a table

    Hi,
    I'm using Oracle 10g Express Edition
    I need help in How to insert the data from XML file into the table.
    Below is the example i'm working on..
    I have create ridb user with below mentioned privileges:
    Account Status Locked Unlocked
    Default Tablespace: USERS
    Temporary Tablespace: TEMP
    User Privileges :
    Roles:
    CONNECT
    RESOURCE
    Direct Grant System Privileges:
    CREATE DATABASE LINK
    CREATE MATERIALIZED VIEW
    CREATE PROCEDURE
    CREATE PUBLIC SYNONYM
    CREATE ROLE
    CREATE SEQUENCE
    CREATE SYNONYM
    CREATE TABLE
    CREATE TRIGGER
    CREATE TYPE
    CREATE VIEW
    & table is created TRIALZIPCODES below mentioned is the DDL:
    CREATE TABLE TRIALZIPCODES
    STATE_ABBR VARCHAR2(20) NOT NULL
    , ZIP_CODE NUMBER(10, 0) NOT NULL
    , ZIP_CODE_EXT VARCHAR2(20)
    Below is the XML FILE: which is stored in C:\OracleProject Folder
    File name: trial.xml
    <?xml version="1.0" ?>
    <metadata>
    - <Zipcodes>
    - <mappings Record="4">
    <STATE_ABBREVIATION>CA</STATE_ABBREVIATION>
    <ZIPCODE>94301</ZIPCODE>
    </mappings>
    - <mappings Record="5">
    <STATE_ABBREVIATION>CO</STATE_ABBREVIATION>
    <ZIPCODE>80323</ZIPCODE>
    <ZIP_CODE_EXTN>9277</ZIP_CODE_EXTN>
    </mappings>
    </Zipcodes>
    </metadata>
    PL/SQL Procedure:which i'm trying to execute from SQLDeveloper
    create or replace
    PROCEDURE TRIAL AS
    BEGIN
    DECLARE
    -- declare attributes
    charString varchar2(80);
    finalStr varchar2(4000) := null;
    rowsp integer;
    v_FileHandle UTL_FILE.FILE_TYPE;
    l_context_handle dbms_xmlgen.ctxHandle;
    insCtx DBMS_XMLStore.ctxType;
    begin
    -- DBMS_XMLGEN.setRowTag ( ctx IN ctxHandle, rowTag IN VARCHAR2);
    -- DBMS_XMLGEN.setRowSetTag ( ctx IN ctxHandle, rowSetTag IN VARCHAR2);
    -- the name of the table as specified in our DTD
    DBMS_XMLGEN.SETROWSETTAG(l_context_handle,'zipcodes');
    -- the name of the data set as specified in our DTD
    DBMS_xmlgen.setRowTag(l_context_handle,'mappings');
    -- for getting the output on the screen
    dbms_output.enable(1000000);
    -- open the XML document in read only mode
    v_FileHandle := utl_file.fopen('c:/OracleProject','trial.xml', 'r');
    loop
    BEGIN
    utl_file.get_line(v_FileHandle, charString);
    exception
    when no_data_found then
    utl_file.fclose(v_FileHandle);
    exit;
    END;
    dbms_output.put_line(charString);
    if finalStr is not null then
    finalStr := finalStr || charString;
    else
    finalStr := charString;
    end if;
    end loop;
    -- for inserting the XML data into the table
    insCtx := DBMS_XMLSTORE.NEWCONTEXT('RIDB.TRIALZIPCODES');
    insCtx := DBMS_XMLSTORE.INSERTXML(insCtx, finalStr);
    dbms_output.put_line('INSERT DONE '||TO_CHAR(rowsp));
    DBMS_XMLStore.closeContext(insCtx);
    END;
    END TRIAL;
    For the first time when i complied i got the errors as :
    Procedure RIDB.PROCEDURE1@RIDB
    Error(16,14): PLS-00201: identifier 'UTL_FILE' must be declared
    Error(16,14): PL/SQL: Item ignored
    Error(29,1): PLS-00320: the declaration of the type of this expression is incomplete or malformed
    Error(29,1): PL/SQL: Statement ignored
    Error(33,1): PL/SQL: Statement ignored
    Error(33,19): PLS-00320: the declaration of the type of this expression is incomplete or malformed
    Error(36,1): PL/SQL: Statement ignored
    Error(36,17): PLS-00320: the declaration of the type of this expression is incomplete or malformed
    So i logged in as sys & grant the permission to execute on UTL_FILE to ridb (user):
    SQL Statement:
    grant execute on utl_file to ridb
    So, it got compiled successfully but when i execute it gives me error as:
    Source does not have a runnable target.
    What does this mean?
    So I browse through forum & i got to know that i need to initial the UTL_FILE_DIR ="C:/OracleProject" in init.ora
    So can i edit the init.ora with notepad.When i tried to do that it says permission denied
    In my system it shows the init.ora file in path C:\oraclexe\app\oracle\product\10.2.0\server\config\scripts
    but there is also other file initXETemp in the same path do i need to do the changes in it.
    I have tried even editing the SPFILE as mentioned below:
    C:\oraclexe\app\oracle\product\10.2.0\server\dbs\SPFILEEXE - I had edit this file using notepad & set the value of UTL_FILE_DIR ="C:/OracleProject". So next time when i restarted i'm unable to log on to the database.
    So i had reinstall the software again.
    Could you please let me know how to proceed..

    hi,
    I have created the directory from sys database
    CREATE or replace DIRECTORY XML_DIR2 AS 'C:\OracleProject';
    & grant read,write access to the user
    grant read,write on directory XML_DIR2 to RIDB;
    & i had change the tag name in the xml file as shown below:
    <?xml version = '1.0'?>
    <metadata>
    <Zipcodes>
    <mappings Record="4">
    <STABBRE>CA</STABBRE>
    <ZIPCODE>94301</ZIPCODE>
    </mappings>
    <mappings Record="5">
    <STABBRE>CO</STABBRE>
    <ZIPCODE>80323</ZIPCODE>
    <ZIPCODEEXT>9277</ZIPCODEEXT>
    </mappings>
    </Zipcodes>
    </metadata>
    TRIALZIPCODE table as shown below:
    CREATE TABLE "RIDB"."TRIALZIPCODE"
    (     "STABBRE" VARCHAR2(20 BYTE),
         "ZIPCODE" NUMBER(*,6) NOT NULL ENABLE,
         "ZIPCODEEXT" NUMBER
    ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ;
    I have tried two methods as shown below:
    Procedure 1:
    create or replace
    PROCEDURE TRIAL_V2 AS
    BEGIN
    DECLARE
    -- declare attributes
    charString varchar2(80);
    finalStr varchar2(4000) := null;
    rowsp integer;
    v_FileHandle UTL_FILE.FILE_TYPE;
    l_context_handle dbms_xmlgen.ctxHandle;
    insCtx DBMS_XMLStore.ctxType;
    cnt NUMBER;
    xmldoc xmltype := xmltype( bfilename('XML_DIR2','trialxml.xml'), nls_charset_id('AL32UTF8') );
    --XML_DIR VARCHAR2(40) := 'C:\\OracleProject';
    BEGIN
    insCtx := DBMS_XMLStore.newContext('DEV.TRIALZIPCODES');
    DBMS_XMLStore.setUpdateColumn(insCtx, 'STABBRE');
    DBMS_XMLStore.setUpdateColumn(insCtx, 'ZIPCODE');
    DBMS_XMLStore.setUpdatecolumn(insCtx, 'ZIPCODEEXT');
    DBMS_XMLStore.setRowTag(insCtx, 'mappings');
    cnt := DBMS_XMLStore.insertXML(insCtx, xmldoc);
    DBMS_XMLStore.closeContext(insCtx);
    END;
    Procedure 1 was compiled with out errors but when i execute i got the error as :
    Source does not have a runnable target.
    Procedure 2_
    CREATE OR REPLACE PROCEDURE TRIAL_V3 AS
    BEGIN
    DECLARE
    -- declare attributes
    charString varchar2(80);
    finalStr varchar2(4000) := null;
    rowsp integer;
    v_FileHandle UTL_FILE.FILE_TYPE;
    l_context_handle dbms_xmlgen.ctxHandle;
    insCtx DBMS_XMLStore.ctxType;
    cnt NUMBER;
    xmldoc xmltype := xmltype( bfilename('XML_DIR2','trialxml.xml'), nls_charset_id('AL32UTF8') );
    --XML_DIR VARCHAR2(40) := 'C:\\OracleProject';
    BEGIN
    INSERT INTO trialzipcode (STABBRE, ZIPCODE, ZIPCODEEXT)
    SELECT extractvalue(x.column_value, 'mappings/STABBRE'),
    extractvalue(x.column_value, 'mappings/ZIPCODE'),
    extractvalue(x.column_value, 'mappings/ZIPCODEEXT')
    FROM TABLE(
    XMLSequence(
    EXTRACT(
    xmltype( bfilename('XML_DIR2','trialxml.xml'), nls_charset_id('AL32UTF8') ),
    'metadata/Zipcodes/mappings'
    ) x
    END;
    END TRIAL_V3;
    Procedure 2 was complied without errors but when i execute i got the error as:
    Connecting to the database RIDB.
    ORA-22288: file or LOB operation FILEOPEN failed
    The system cannot find the file specified.
    ORA-06512: at "SYS.DBMS_LOB", line 523
    ORA-06512: at "SYS.XMLTYPE", line 287
    ORA-06512: at "RIDB.TRIAL_V3", line 12
    ORA-06512: at line 2
    Process exited.
    Disconnecting from the database RIDB.
    Could you please let me know how to proceed...

  • Prepopulating PDF Fillable Forms with data from XML files

    How can I get a PDF fillable form to open pre-populated with data from an XML file automatically? I've been using Adobe Standard 9.0 and am willing to upgrade in a modest fashion if necessary. I am aware of the Navigation method > Forms > Manage Form Data > Import Data. This works fine, however, my users are not smart enough to do tis much clicking and selecting. Is there an automated way to have this XML data merged into the PDF file on the fly. These files will reside on an internal local area network and will be operated on local PC's that will probably have Acrobat Reader ONLY. I have been told that the only way to accomplish this is through Java Scripting. I would prefer to do this the 'old fashioned' way of command line switches, but that does not appear to be an option. Does anyone have a sample Javascript that would accomplish what I am trying to achieve. Any help would be greatly appreciated.

    Hi Sharon
    The easiest way is:
    - Open your PDF form within Acrobat
    - From the File menu, import the XML form data into the form
    - From the File menu, use Save As... to save the file with a new name.
    The new PDF will be identical to the original one, but will have the data embedded in it. Voila.
    If you want the same form to pre-populate with different XML files depending on the circumstances, or if you're generating the XML on the fly, then things get more complicated. (And more expensive.) As your consultant said, LiveCycle Forms is one option, but it is expensive (actually even more than 10K). There are other options, including Cold Fusion, custom servlets, etc.
    Howard
    http://www.avoka.com

  • Inserting an image from an URL in a BLOB

    Hello all,
    As it's said in the title, I need a PL/SQL procedure to insert a image from web URL in a BLOB table column.
    How can I do that?
    Thanks in advance for your help.
    Max

    found this on the internet http://www.oracle-base.com/articles/misc/RetrievingHTMLandBinariesIntoTablesOverHTTP.php
    CREATE TABLE http_blob_test (
      id    NUMBER(10),
      url   VARCHAR2(255),
      data  BLOB,
      CONSTRAINT http_blob_test_pk PRIMARY KEY (id)
    CREATE SEQUENCE http_blob_test_seq;
    CREATE OR REPLACE PROCEDURE load_binary_from_url (p_url  IN  VARCHAR2) AS
      l_http_request   UTL_HTTP.req;
      l_http_response  UTL_HTTP.resp;
      l_blob           BLOB;
      l_raw            RAW(32767);
    BEGIN
      -- Initialize the BLOB.
      DBMS_LOB.createtemporary(l_blob, FALSE);
      -- Make a HTTP request and get the response.
      l_http_request  := UTL_HTTP.begin_request(p_url);
      l_http_response := UTL_HTTP.get_response(l_http_request);
      -- Copy the response into the BLOB.
      BEGIN
        LOOP
          UTL_HTTP.read_raw(l_http_response, l_raw, 32767);
          DBMS_LOB.writeappend (l_blob, UTL_RAW.length(l_raw), l_raw);
        END LOOP;
      EXCEPTION
        WHEN UTL_HTTP.end_of_body THEN
          UTL_HTTP.end_response(l_http_response);
      END;
      -- Insert the data into the table.
      INSERT INTO http_blob_test (id, url, data)
      VALUES (http_blob_test_seq.NEXTVAL, p_url, l_blob);
      -- Relase the resources associated with the temporary LOB.
      DBMS_LOB.freetemporary(l_blob);
    EXCEPTION
      WHEN OTHERS THEN
        UTL_HTTP.end_response(l_http_response);
        DBMS_LOB.freetemporary(l_blob);
        RAISE;
    END load_binary_from_url;
    EXEC load_binary_from_url('http://forums.oracle.com/forums/themes/english/resources/oralogo_small.gif');

  • Issues with importing from excel

    I have been running into a several issues with importing from Excel.
    First my configuration
    I am running SQL Developer ver 1.5.5 Build MAIN-5969
    I am on a Windows XP Professional Version 2002 with Service Pack 3
    I am importing into an Oracle 10g database.
    1. SQL Developer doesn't work on Excel 2007, I have to save all my files into Excel 97-2003 format before I can use them.
    2. If I run into an error loading and stop the process, SQL Developer doesn't release the Excel file and I get a sharing violation if I try to save the spreadsheet without closing SQL Developer.
    3. I have found that I have to set print area to the area I want to work with, otherwise the import wizard tries to keep adding rows.
    4. When using the Import wizard, it keeps adding commas on fields with numerics unless I specify the column in excel as text. Currently the column is formatted as General in the spreadsheet or I can change the wizard format to say the column is an integer, but it actually is just a code field with numeric characters so it may have leading zeroes that I need to keep.
    This might be related,
    I have a column in excel defined as text but only contains numerics. It is of length 4, but the wizard sets a precision of 5 with a datatype of VARCHAR2. If I try to change it to 4, I get an error saying the field is not large enough. Yet, when I do a LEN on the column, it only gives me a 4. I have other fields in the same sheet that a 3 position numeric and 2 position numeric and those are fine. I am thinking this is related to the comma being inserted in a numeric field for anything greater than 3 positions.
    5. Importing excel dates to oracle dates doesn't work. I have to convert the excel date column to text then import as a VARCHAR, then convert to Date once in the database.
    6. The default of nullible is not set on any columns and I have to set them before the import. (I would prefer it set to nullible and I have to uncheck the box to make it not nullible. I would prefer to import all of the data and then deal with the nulls after they have been pulled in)
    7. When I select header columns included it uses that as the column names. Is it possible to do the name length check then? It has bit me a few times where I try to import and forget to check the name length and then I get an error when I start running the import.
    8. If one of the columns to import has all nulls, then the precision comes out to 0 and if it isn't changed an error occurs on import. Could this situation default to a precision of 1?
    9. It would be nice if there was a completion message displayed and a cancel option while running.

    On point 3.
    I have a column in excel that consists of numbers. 4 digit numeric codes. Ex, 1111, 2345, etc
    The column's format is general. It displays as just 4 numbers.
    When I start the wizard initially, the column appears with data as 1,111, 2,345, etc, on the Data Preview screen.
    It determines the precision to be 5 on the column definition screen.
    If I change the precision to 4 then continue, that field will error out when I verify with "not big enough to hold the data in source columns"
    If, I change the excel column to a TEXT column.
    Excel still displays as 1111, 2345, etc
    The wizard then displays the same data 1111, 2345 on the Data Previeiw screen
    Yet, when I get to the column definition screen it still sizes it as a 5
    If I change it to a 4, I get the same error when verifying.
    If I leave them alone as 5, then it processes just fine.

  • Insert Object (create from pdf file) in wordpad fails

    Problem:
    I am unable to insert object (create from existing pdf file) in wordpad application.
    Environment:
    OS: Windows 7 Professional + SP1 (64-bit)
    Acrobat X (32-bit installer)
    Procedure:
    Open Wordpad application, click on 'Insert Object', choose 'Create from File', Browse and Select exsting pdf file, click 'Display As Icon' and Click 'Ok'
    Expexted Result:
    PDF should get inserted as OLE object to wordpad
    Actual Result:
    Error message "Failed to create object. Make sure the application is entered in the system registry."
    Addition Notes:
    I noticed that while insterting PDF (OLE object) it seach for certain registry key (AutoConvertTo) which is not available hence it fails.

    Yes, I am aware. But this problem appears only when I insert PDF file (which is Adobe file).
    I guess this has nothing to do specifically with 'wordpad' but I referenced known application from standard offiering. It happens with any 64-bit application using 'rich-edit' control (this is Microsoft too ) and allowing user to insert OLE objects.
    I guess somewhere Adobe Acrobat installation fails to create required registry entries which are being referred by 64-bit applications while inserting PDF files as OLE objects.

  • How to insert cropped images from photoshop without the white background

    Basically all I want to do is take a peice of writing from a video and insert it into another video. To do this I've took a screenshot of the font from the video and imported it into photoshop. I've then cropped/cut/took the the peice of writing I want, letter by letter. I want to be able to insert it into another video, but whenever I attempt to do it, I have the default white background of photoshop. Is there anyway to insert an image from photoshop, without taking the background with it, or even insert a layer from photoshop straight into final cut pro? Sorry if this is confusing.

    I don't think so. I cropped the letters, put them each an individual file, removed the background, saved them as a TIF then tried to import them onto Final Cut Pro, but a white background still appeared in the TIF file. Basically I just want to make the background transparent I believe.

  • How to insert special character from Oracle form builder 10g

    Dear all,
    I need help. how to insert special character like 'Superscript or Subscript ' from oracle form builder 10g. I had try in Oracle form builder 6i with press ALT+ASCII code in the text item and it work, but in the oracle form builder 10g this method doesn't work... would you like to help me...somebody please...
    Best Regard,
    Dedy P.T.

    What do you mean by insert ... from Forms Builder? Do you mean you want to add it as text in a string of pl/sql code or as part of boiler plate text (label) or a value on the Property Palette?
    For special characters you would need set NLS_LANG to something that would support the characters you want to use. For the Builder to see the change, you would need to set NLS_LANG to something like:
    NLS_LANG=AMERICAN_AMERICA.UTF8
    This can be done in the Windows Registry or system. As I mentioned, this will only apply to the Builder and will have nothing to do with a running form. For running forms you would need to set this in default.env. As for things like super and sub scripts, these are font formats and not necessarily characters. For the most part, I don't believe these are supported in Forms.

  • The font of text marker insertion is different from before

    A strange behaviour from a while: the default font of text marker insertion is different from before. I don't remember what font was before, but surely not the one of now.
    I think it's probably due to "firefox" installation (it has caused also a system preferences modification I discovered with a lot of trouble...)
    Anyway, how I can restore the "old" default font of marker text insertion?
    (the problem occurs only on insertion because in arrange the usual font view is maintained)

    its hard to work out what your problem exactly is. can you give more details? why is the text marker font important? do you mean how it displays in the text marker editor?

  • Master Data: 2 records with different FROM-TO dates

    Hi,
    I am extracting the master data from R/3. In R/3 the master data record is created with valid FROM: 01/01/1900 and valid TO: 12/31/9999. But when I extract the data into BW it is coming as 2 records one with 01/01/1000-12/31/1899 range and the other with 01/01/1900-12/31/9999.
    What settings/steps I need to change to get only one record for now and of course in future any change to the records will comes as different valid date range.
    When I schedule the info package, the update tab consist of Fixed time interval start date: 10/20/2005; end date: 12/31/9999.
    Time being to avoid this in the transfer rule of FROM date info object selected constant option with date 01/01/1900 as in R/3????
    Appreciate your help on this.
    Thanks.
    Sudha.

    Hi Nagesh,
    Thanks for reply.
    I have assigned one-to-one from R/3 to BW.
    In R/3 I have FROM and TO date and assigned these two fields to Transfer structure FROM and TO info objects.
    I have maintained Transfer rule only after getting two records into BW for every one entry in R/3. In the rule I just assigned constant date to avoid 2 records for every entry from r/3. So nothing to do with the routine.
    I want to see one record in BW for every entry coming from R/3. At present in the BW master data sitting as 2 records.
    Example:
    one record in R/3 with:
    FROM date: 01/01/1900; TO date: 12/31/9999.
    Inserted 2 records into BW with:
    FROM date: 01/01/1000; TO date: 12/31/1899.
    FROM date: 01/01/1900; TO date: 12/31/9999.
    Thanks.
    Sudha.

Maybe you are looking for