Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Mike

Pages: 1 ... 115 116 [117] 118 119 ... 124
PSOUG / considers switch to Oracle
« on: November 17, 2009, 10:27:56 AM » -the "Win Child Custody" service- considers switching to Oracle., the "Win Child Custody" service is exploring moving its data storage and customer service application away from mySQL to the Oracle database.

"Oracle will provide the reliability and scaling features we require, along with faster access to our client's information", said Kelly Rogers, Client Liaison at

OPTIMAL is a unique online service that helps parents win custody, change custody, or reduce child support. OPTIMAL is used every day by thousands of parents and families worldwide.

"Version3.0 is a major upgrade for our users and comes with dozens of new features and literally hundreds of improvements. It's more advanced than the similar services that are out there, and OPTIMAL even comes at a lower price. The increased feature set means that a more reliable database is required to ensure stability and responsiveness of our application for our users worldwide."

"Our development team is already beginning to map out the changes that we'll need to implement in order to switch to Oracle", according to Kelly, "and we hope to have Oracle in place and operational within the next 2 to 3 months."

About and OPTIMAL

OPTIMAL is an online custody calendar that allows you to easily schedule and track parenting time as well as monitor compliance with your custody arrangement. (Often just monitoring each parent's compliance is enough to cause a change for the better.) Whatever kind of parenting arrangement you have- joint custody, sole custody, long distance, cooperative or conflicted- OPTIMAL can help make communicating with the other parent and managing your parenting time easier.

What can OPTIMAL do for me?
OPTIMAL provides an unbiased, accessible record of your parenting time. This can reduce or eliminate disputes over custody or parenting time, and can prevent conflict between you and the child's other parent. By using a shared tool for scheduling parenting time OPTIMAL -tm- helps enforce the parenting plan and makes sure each parent receives the parenting time they deserve.

Who uses OPTIMAL?
Thousand of parents and families are using OPTIMAL to avoid the financial and emotional costs of returning to court over and over to resolve issues. By using OPTIMAL parents are able to coordinate schedules, communicate without stress, agree on changes to parenting schedules, and keep track of expenses without having to spend money on attorneys.

Can OPTIMAL help me in court?
Absolutely! You can use OPTIMAL to change custody, win custody, or reduce child support. OPTIMAL produces clear, compelling printouts that are specifically designed for use in court or negotiation. The OPTIMAL time logs are also powerful and effective tools, documenting any interference with your parenting time. As mentioned above, OPTIMAL can help you win child custody , change change custody , or reduce child support .

What comes with OPTIMAL?
The central parts of OPTIMAL are the Tracker and the Calendar. The Tracker lets you accurately record and track parenting time while the Calendar lets you show parenting schedules, appointments, birthdays, and more. However, OPTIMAL also contains a variety of other powerful and easy-to-use tools (included free) to help you manage and coordinate parenting time.

Nothing To Download, Nothing To Install!
OPTIMAL runs in your browser so you don't have to download or install anything- just sign up and you can be using it in minutes! And because it runs in your browser you can use it from anywhere: your home or office, a hotel, a friend's home... anywhere there is a PC with an internet connection! OPTIMAL works with any modern browser- Windows, Mac, or Linux .

The Form Wizards Make It Easy!
The OPTIMAL Form Wizards make it easy to enter your information- they guide you step-by-step, letting you back up and change things if you need to. You can try a Wizard by running the Demo and clicking the "Add a Calendar Event" link on the Home page.

Never Lose Critical Data
We know how important your records are, so your data is stored securely on our servers. You never have to worry about losing anything or spending time backing up your data. Even if your PC crashes or gets infected with a virus, you don't have to worry- your data will still be safe with us.

Powerful Graphs Make A Difference In Court!
The graphs OPTIMAL produces can make a powerful and compelling statement without saying a word. When presented in court or in negotiations they show exactly what's going on in a way that's hard to refute. A picture is worth a thousand words, and OPTIMAL graphs make your case in a clear and easy-to-understand way. No other system produces the detailed custody and parenting time statistics that OPTIMAL does.

Advanced Time Tracking? We Can Do It!
Need to track multiple pick-ups and drop offs per day? End-to-End visits? Multiple locations? No problem- OPTIMAL can do all that and more! Track time down to 1-minute periods and create as many visits per day as needed. Other custody tracking programs just can't do this!

Secure File Storage? We've Got It!
OPTIMAL comes with secure online file storage, so you can upload images, documents, scanned bills, and more. You can restrict access to your files as well as make selected ones available in several different ways.

Private Messaging? It's Included- Free.
OPTIMAL comes standard with a powerful private messaging system you can use to communicate with your children, the other parent, legal professionals, or whomever you choose. Unlike other services, this is a standard part of OPTIMAL and does not cost extra.

Previous Years? No Problem!
OPTIMAL calendars, time-tracking, and journal entries can go back as far as you need to go to track time for as many children as required. Previous years are available whenever you want.

Private Chat? We've Got It!
OPTIMAL provides you with a private chat area for use with your children, legal advisors, friends, or whomever you want to invite. OPTIMAL Chat is fast, secure, and full-featured.

Recommended By Professionals
OPTIMAL is endorsed and recommended by professionals and is recognized as a valuable tool for parents involved in divorce and custody situations. Read what professionals say about OPTIMAL.

Parents Love Us!
We've helped thousands of families over the years, and parents write us often to tell us how much OPTIMAL has helped them both in and out of court. Here's what parents say about OPTIMAL.

Mediators Love Us!
Mediators and therapists recommend OPTIMAL because they know it can help reduce the stress and conflict that come with managing custody and parenting time. When stress and conflict are reduced, everybody wins- especially the children.

Custody Evaluators Love Us!
OPTIMAL is the only custody-tracking tool endorsed by PACE , the Professional Association of Custody Evaluators. PACE is a private, non-profit organization whose membership is composed of mental health professionals who specialize in child custody and related issues.

Judges and Lawyers Love Us!
Judges and other legal professionals love OPTIMAL because it eliminates the "he said, she said" stories and gives them the detailed information they need to make fair decisions about custody and parenting time.

More Features, Easier To Use, and Costs Less!
We're not afraid to compare- OPTIMAL has more features, is easier to use, and has a proven track record. For example, see how we compare to the Our Family Wizard® service, and we think you'll agree that OPTIMAL is better:

You owe it to your children to get the best custody outcome you can. Don't leave the most important decisions in your life up to chance- Get OPTIMAL and take control of your custody outcome.

http://ParentingTime.Net - Win Child Custody
Win Child Custody
Seattle WA

Site URL:
Email: Contact

PSOUG / EC Formally Objects To Oracle's Purchase of Sun
« on: November 10, 2009, 05:17:49 PM »
EC Formally Objects To Oracle's Purchase of Sun

The EC has presented Oracle and Sun with a statement of objections. Despite the promotion of former MySQL CEO Marten Mickos, the statement seems to focus entirely on what many have feared: MySQL vs. Oracle databases.

From Sun's 8-K SEC filing:'The Statement of Objections sets out the Commission's preliminary assessment regarding, and is limited to, the combination of Sun's open source MySQL database product with Oracle's enterprise database products and its potential negative effects on competition in the market for database products.'

The EU and the EC are getting a rep for disagreeing with US counterparts." On Monday afternoon the DoJ reiterated its support for the deal. Matthew Aslett has a helpful timeline of the action from the EC.

PSOUG / Oracle's Sun Deal: Oracle May Need to Loosen Its Grip
« on: November 09, 2009, 08:57:05 AM »
Oracle's Sun Deal: Oracle May Need to Loosen Its Grip
While the Oracle-Sun merger is likely to be O.K.'d, the European Union will probably ask Oracle to give up some control over MySQL, Sun's open-source software

When Oracle announced its $7.4 billion acquisition of SunMicrosystems in April, the software behemoth was acting on a grand vision. The deal was part of Oracle's aim to become a soup-to-nuts supplier of everything companies need to run their computer systems,from chips and operating systems to databases and business programs.The grand plan may need some revision.

In order to alleviate pressure from European Union regulators worried about Oracle's growing power, Oracle may be forced to give up some control of a key aspect of the deal: the open-source MySQL database software owned by Sun.

The EU wants to make sure Oracle doesn't stifle competition in the $19-billion-a-year database market as it tries to complete its acquisition of Sun,which makes computer systems and software including the Java programming language and MySQL database, a kind of electronic filing system.

"Taking a Tough Stance"
MySQL, available free of charge, runs the Web sites of some of the Internet's biggest brands. Among them: Twitter, Facebook, Google, and Yahoo."They're taking a tough stance because 10 years down the road this could be a pretty big competitor to Oracle," says a securities analyst who asked not to be named because he was expressing personal views on the deal.

Full Story:

PSOUG / Oracle Berkeley DB Java Edition 4.0 Now Available
« on: November 09, 2009, 08:54:10 AM »
Oracle Berkeley DB Java Edition 4.0 Now Available
Redwood Shores, Calif. – November 9, 2009

Oracle today announced the new release of Oracle Berkeley DB Java Edition 4.0 including significant new features for high availability, scalability and performance, and demonstrating Oracle’s continuing commitment to open source, Java and the developer community.

A member of the Oracle Berkeley DB product family, Oracle Berkeley DB Java Edition is an open source, transactional storage engine for key-value pairs written entirely in Java that can be deployed as an embedded or “edge” database, enabling developers to build applications that require no manual administration.

Oracle Berkeley DB Java Edition 4.0 includes new replication features for high availability and scalability and significant performance improvements for highly concurrent applications. Oracle Berkeley DB Java Edition 4.0 with high availability is available under the existing Oracle dual license for Berkeley DB Java Edition.

In addition, improved monitoring capabilities, including a plug-in forthe Java jconsole utility, make it easier to deploy and monitor applications that utilize Oracle Berkeley DB Java Edition.
Oracle Berkeley DB Java Edition 4.0 joins recently released Oracle Berkeley DB 4.8 and Oracle Berkeley DB XML 2.5.

All three products are designed for developers, ISVs, OEMs and enterprises to integrate directly into their software applications,devices and equipment to deliver high performance, reliability and availability with virtually no human administration.

More Information:

PSOUG / Oracle Deal Delay Causes Sun Microsystems To Cut 3,000 Jobs
« on: October 21, 2009, 08:35:54 PM »
Oracle Deal Delay Causes Sun Microsystems To Cut 3,000 Jobs

It looks like Sun will be shedding 3,000 jobs, roughly 10% of their workforce, as they continue to lose money while waiting for EC regulators to approve their acquisition by Oracle. Oracle Chief Executive Officer Larry Ellison said Sept. 22 that Sun is losing about $100 million a month as the transaction is delayed by the EU probe.

James Staten, an analyst with Forrester, said, "The longer a cloud of uncertainty hangs over Sun, that drives customers into delays of purchases or into the hands of competitors. This is a very trying time for Sun and Oracle as they wait for an answer."

A spokesman for EU Competition Comissioner Neelie Kroes said today that she "expressed her disappointment that Oracle failed to produce, despite repeated requests, either hard evidence that there were no competition problems or a proposal for a remedy to the competition concerns identified by the commission," and that "a rapid solution lies in Oracle's hands."

PSOUG / Re: one question
« on: October 21, 2009, 06:36:28 AM »
what is the primary key and the foriegn key

In the context of relational databases, a foreign key is a referential constraint between two tables.

The foreign key identifies a column or a set of columns in one(referencing) table that refers to a column or set of columns in another (referenced) table.

The columns in the referencing table must be the primary key or other candidate keyin the referenced table. The values in one row of the referencing columns must occur in a single row in the referenced table. Thus, a row in the referencing table cannot contain values that don't exist in the referenced table (except potentially NULL).

This way references can be made to link information together and it is an essential part of database normalization. Multiple rows in the referencing table may refer to the same row in the referenced table. Most of the time, it reflects the one (master table,or referenced table) to many (child table, or referencing table)relationship.

MySQL Cofounder Says Oracle Should Sell Database To a Neutral 3d Party

Oracle should resolve antitrust concerns over its acquisition of Sun Microsystems by selling open-source database MySQL to a suitable third party, its cofounder and creator Michael 'Monty' Widenius said in a blog post on Monday.

Oracle's $7.4 billion acquisition of Sun is currently being held up by an investigation by the European Commission. The Commission's main concern seems to be MySQL, which was acquired by Sun in January 2008 for $1 billion.

A takeover by the world's leading proprietary database company of the world's leading open source database company compels the regulator to closely examine the effects on the European market, according to remarks made by Competition Commissioner Neelie Kroes last month.

The key objective by Widenius is to find a home outside Oracle for MySQL, where the database can be developed and compete with existing products, including Oracle's,according to Florian Mueller, a former MySQL shareholder who isc urrently working with Monty Program AB on this matter.

PSOUG / Mickos Urges EU To Approve Oracle's MySQL Takeover
« on: October 10, 2009, 12:37:52 PM »
Mickos Urges EU To Approve Oracle's MySQL Takeover

Former MySQL CEO Marten Mickos has written to EU Commissioner of Competition Neelie Kroes to urge speedy approval of Oracle's proposed purchase of Sun, including the open-source MySQL database.

The EU has been worried that Oracle's acquisition of Sun could end up hurting competition by dampening or killing MySQL's momentum.

But in his letter, Mickos separates MySQL-the-community from MySQL-the-company, arguing that Oracle's takeover cannot hurt the MySQL community: 'Those two meanings of the term "MySQL" stand in a close, mutually beneficial interaction with each other. But, most importantly, this interaction is voluntary and cannot be directly controlled by the vendor.'

In a follow-up interview with CNET, Mickos indicated that he has no financial interest in the matter, but instead argues he 'couldn't live with the fact that [he's] not taking action,' and is 'motivated now by trying to help the employees still at MySQL and Sun, and by an urge to bring rational discussion to the matter.'

Lumigent to Advocate Continuous Monitoring at Oracle OpenWorld 2009

• Session highlights value of continuously monitoring key business controls and master data for PeopleSoft Enterprise Financial Management solutions — something no transaction monitor can do
• Intended audience includes CFOs, controllers, finance departments, compliance/audit personnel, and business users
• Session date and time: Wednesday, October 14 at 11:45 a.m.

ACTON, Mass. — October 7, 2009 — Lumigent Technologies, Inc., the GRC business apps company, will be speaking at Oracle OpenWorld 2009 to demonstrate how companies running Oracle’s PeopleSoft Enterprise Financial Management can reduce their audit costs by 45 percent, simply by automating and continuously monitoring key controls. Oracle OpenWorld 2009 will be held October 11–15, 2009, at the Moscone Center in San Francisco.

In "Aligning Internal Controls with PeopleSoft Enterprise Financial Management," Paul Campaniello, vice president, marketing for Lumigent will discuss how an automated monitoring strategy designed to ensure the effective operation of internal controls is essential to any compliance effort. In addition to being linked to risk, monitoring frameworks should be closely associated with the primary business application so that they are understood in a business context.

In this session, attendees will learn how continuous monitoring of key business control settings and master data aligned with Oracle's PeopleSoft Enterprise Financial Management solutions help ensure that proper internal controls are in place and are effective over time. This presentation will be delivered on Wednesday, October 14 at 11:45 a.m. in Moscone West L3, room 3010/3012.

Campaniello’s presentation will draw from Lumigent and customer experience with the company’s AppGRC® product line, especially AppGRC for PeopleSoft Financial Management®, the industry’s first automated GRC control application for Oracle's PeopleSoft Enterprise Financial Management solutions. By replacing manual efforts with automated GRC control systems that continuously monitor the source data and key business controls, Lumigent is driving down the cost of regulatory compliance for organizations using PeopleSoft and other financial applications. At the same time, the AppGRC solutions provide auditors with persuasive evidence of SOX, DCAA and other regulatory or internal compliance.

Paul brings over 20 years of experience with software startup companies to Lumigent, holding several senior marketing and sales positions including VP of marketing at Exchange Solutions, VP of marketing at ComBrio, and director of worldwide marketing at Savantis. Prior to Savantis, he was at Precise Software, where he helped build Precise from a private, venture-backed startup to a public company with $80 million in revenue in just four years, prior to its sale to Veritas for $600 million. Paul holds both a BS and an MBA from Bentley College.

About Lumigent

Lumigent helps CFOs, CIOs, controllers and other business executives reduce the cost of meeting Governance, Risk and Compliance (GRC) requirements for their primary business applications. Organizations worldwide use Lumigent’s AppGRC® software solutions to automate compliance reporting in some of the most heavily regulated industries, including financial services, healthcare, manufacturing, and government. Lumigent improves operational efficiencies and mitigates business and financial risk by providing complete visibility into application data activity and automating application-aware controls to maintain the integrity of critical business information. For more information, please visit


Lumigent, the Lumigent logo, AppGRC and AppGRC for PeopleSoft Financial Management are trademarks or registered trademarks of Lumigent Technologies, Inc. Other product and company names are property of their respective owners.

Tags: AppGRC, Oracle OpenWorld, risk mitigation, regulatory compliance software, automated compliance, PeopleSoft Enterprise Financial Management, DCAA


Nicole Caruso, press relations for Lumigent
TECHMarket Communications

Elena Annuzzi, analyst relations for Lumigent
TECHMarket Communications

PSOUG / Oracle Fined For Benchmark Claims
« on: September 30, 2009, 10:04:55 PM »
Oracle Fined For Benchmark Claims

Information Week reports that the Transaction Processing Council, which sets benchmarks for measuring database performance, has fined Oracle $10,000 for Oracle's ads published August 27 and September 3 on the front page of the Wall Street Journal which violate the 'fair use' rules that govern TPC members by 'comparing an existing TPC result to something that does not exist.'

The ads said to expect a product announcement on October 14 that would demonstrate that some sort of hybrid Oracle-Sun setup would offer two-digit performance on the TPC-C online transaction processing test compared to IBM's 6 million transaction per minute result on its Power 595 running AIX and DB2. The TPC Council serves as a neutral forum where benchmark results are aired and compared.

'At the time of publication, they didn't have anything' submitted to the council says Michael Majdalany, administrator of the council adding that that Oracle is free to use TPC numbers once it submits an audited result for the Sun-Oracle system.

Fines by the TPC are infrequent, with the last action — a $5,000 fine — levied against Microsoft in 2005 for unsupported claims about SQL Server. 'It takes a fairly serious violation to warrant a member being fined,' says Majdalany."

PSOUG / BI Consulting Group to Host a Two-Day Conference in Twin Cities
« on: September 17, 2009, 07:28:40 AM »
BI Consulting Group to Host a Two-Day Company Conference in Twin Cities

Minneapolis, MN, USA, September 16, 2009 -- BI Consulting Group announced today that they will host their first-ever company conference this week in the Twin Cities Area of Minneapolis and Saint Paul. The conference, titled the BICG Summit, is a two-day event focused continuing education and company engagement. BICG employees and contractors are set to participate in educational sessions on advanced topics specific to Oracle Business Intelligence and Enterprise Performance Management.

Session titles include:

Advanced RPD Development
Oracle BI Management Pack
Essbase & OBIEE Integration
Dimensional Modeling Best Practices
Oracle MapViewer & OBIEE Integration
Performance Tuning an Oracle Database
Installing the Oracle BI Applications version 7.9.6
Oracle Real Time Decisions (RTD)
Oracle Data Integrator (ODI)
The Hyperion Stack

"We firmly believe that our people are our strongest asset and like all assets they need to be invested in to maximize performance," said Katherine Mayer, Director of BICG Operations. "Engagement is a key part of that investment and can really make a difference."

In addition to sessions focused on Oracle technology, BICG will feature an educational session dedicated to the best practice use of its proprietary service offering called BICG IMPACT -tm- , an impact analysis and data lineage tool created for Oracle Business Intelligence Enterprise Edition. The session focuses on the use of BICG IMPACT -tm- during the gap fit analysis phase of an Oracle Business Intelligence Applications project.

"We feel that it is extremely important to ensure all of our people are on the same page as it pertains to the standard best practices applied in all of our engagements," said Kevin McGinley, VP of Technology. Mike Jelen, BICG’s VP of Delivery and Strategy continued, "As a premier consulting organization, quality deliverables and consistency are top priorities."

As a reward for all the hard work at the BICG Summit, attendees will be treated to a late summer Minnesota boat cruise through the city.

"It is important for BICG to continually keep our employees engaged on a personal level with one another," said Amy Mayer, President of BI Consulting Group. "Because of the nature of our business, we are often spread across the globe on various projects while collaborating via phone, email, and instant messaging. The BICG Summit is one of the ways we allow for our teams to engage each other on a personal level."

BI Consulting Group (BICG) is Oracle's premier consulting partner focused exclusively on Oracle Enterprise Performance Management (EPM) and Business Intelligence (BI). Service offerings include consulting services, support, and education. The experts at BI Consulting Group have successfully completed some of the most complex implementations of Oracle BI in the world. Along the way, BICG has been honored with Oracle's Above and Beyond Award for Business Intelligence and the Oracle Excellence Award for the creation of innovative and standards-based technology solutions. BICG has also been named the #1 consulting firm for customer satisfaction by VendorRate.

Jeremiah Johnson
BI Consulting Group
Minneapolis, MN

PSOUG / Oracle Ends Partnership With HP
« on: September 16, 2009, 05:30:26 PM »
Oracle Ends Partnership With HP

As detailed in a Reuters report, Oracle is terminating their cooperative relationship with HP in light of their anticipated acquisition of Sun.

With Sun servers in house, Oracle apparently feels no need to work with HP anymore. They will 'continue to sell the Exadata computers, built in partnership with HP, until existing inventory is sold out, if customers request that model.'

Oracle is much more enthusiastic about a new version of Exadata, which they developed with Sun.

PSOUG / ORA-29280: invalid directory path
« on: September 12, 2009, 08:04:55 AM »
SQL> exec mail_attach('script.sql')
BEGIN mail_attach('script.sql'); END;
ERROR at line 1:
ORA-29280: invalid directory path
ORA-06512: at "SYS.UTL_FILE", line 33
ORA-06512: at "SYS.UTL_FILE", line 436
ORA-06512: at "VEMS.MAIL_ATTACH", line 27
ORA-06512: at line 1

Possible solutions:

- Be sure that the OS level user has permission to write to a folder
- Try upper case letters for the directory name, i.e. instead of out_dir use OUT_DIR

- The UTL_FILE_DIR parameter has been deprecated. Create a DIRECTORY object and use that.

PSOUG / Oracle To Increase Investment In SPARC and Solaris
« on: September 11, 2009, 10:16:17 PM »
Oracle To Increase Investment In SPARC and Solaris

The IT community has recently questionedwhat Oracle will do with Sun hardware if and when Oracle's acquisition  of Sun closes. And it seems that speculation about the future of SPARC hardware has been common among commenters for years.

Thatsaid, it seems newsworthy that Oracle is going out of their way withsome aggressive marketing directed at IBM to state clearly their plans to put more money than Sun does now into SPARC and Solaris."MySQL is not mentioned in this ad, perhaps because (as Matt Asay speculates) the EU is looking closely into that aspect of the proposed acquisition.

PSOUG / Working with BLOB and CLOB
« on: September 11, 2009, 08:57:56 AM »
Working with BLOB and CLOB

LOB basics
LOB stands for Large OBject, a stream of data stored in a database. Maximum capacity of a LOB is (4 gigabytes-1) bytes.In Oracle three kinds of LOB data type exist:

1) BLOB datatype stores unstructured binary large objects.   BLOB objects can be thought of as bitstreams with no character set semantics.

2) The CLOB datatype stores single-byte and multibyte character data. Both   fixed-width and variable-width character sets are supported, and both use the database character set.

3) The NCLOB datatype stores Unicode data.

dotConnect for Oracle supports all three datatypes.

You can retrieve values of LOB fields using OracleDataReader as well as other types like LONG and LONG RAW. The difference with usage of LOB data type becomes evident when you need to access these fields in DML and PL/SQL statements. For BLOB and CLOB data types only LOB locators (pointers to data) are stored in table columns; actual BLOB and CLOB data is stored in separate tablespace. This is the difference to the way that data of LONG or LONG RAW types is stored in database - tables hold their immediate values.

Another issue you should be aware of is temporary LOBs. This kind of object is not referenced by any table yet. It exists in current transaction only. You have to use temporary LOBs when inserting new data to a table. In dotConnect for Oracle, you can create temporary LOBs using OracleLob constructors. Once you create an OracleLob instance, the corresponding temporary LOB appears on the server and any data you insert into the object is sent immediately to server. An example of using temporary LOBs you will see later in the article.

Working with BLOB data
Binary data is generally represented as stream of bytes, or buffers. dotConnect for Oracle allows manipulating BLOB data in most convenient ways. You can work with OracleLob.Value property or use OracleLob.Read() and OracleLob.Write() methods to transfer data to and from the server. Both ways are presented in the samples below. Note that when OracleLob.LobType property is OracleDbType.Blob the OracleLob.Value is treated as an array of bytes (byte[]), whereas OracleDbType.Clob and OracleDbType.NClob representOracleLob.Value as string.

The next sample routines show how to upload a file from hard disk to server and download it back.To execute these routines you have to create a table that is described as follows:

Code: [Select]


Code: [Select]
static void UploadBlob(OracleConnection myConnection)
  //Open file on disk
  FileStream fs = new FileStream("D:\\Tmp\\test.bmp", FileMode.Open, FileAccess.Read);
  BinaryReader r = new BinaryReader(fs);
  //Create temporary BLOB
  OracleLob myLob = new OracleLob(myConnection,OracleDbType.Blob);
  int streamLength = (int)fs.Length;
  //Transfer data to server
  myLob.Write(r.ReadBytes(streamLength), 0, streamLength);
  //Perform INSERT
  OracleCommand myCommand = new OracleCommand(
   "INSERT INTO Pictures (ID, PicName, Picture) VALUES(1,'pict1',:Pictures)", myConnection);
  OracleParameter myParam = myCommand.Parameters.Add("Pictures", OracleDbType.Blob);
  myParam.OracleValue = myLob;
    Console.WriteLine(myCommand.ExecuteNonQuery() + " rows affected.");

static void DownloadBlob(OracleConnection myConnection)
  OracleCommand myCommand = new OracleCommand("SELECT * FROM Pictures", myConnection);
  OracleDataReader myReader = myCommand.ExecuteReader(System.Data.CommandBehavior.Default);
    while (myReader.Read())
//Obtain OracleLob directly from OracleDataReader
OracleLob myLob = myReader.GetOracleLob(myReader.GetOrdinal("Picture"));
if (!myLob.IsNull)
   string FN = myReader.GetString(myReader.GetOrdinal("PicName"));
   //Create file on disk
   FileStream fs = new FileStream("D:\\Tmp\\" + FN + ".bmp", FileMode.Create);
   //Use buffer to transfer data
   byte[] b = new byte[myLob.Length];
   //Read data from database
   //Write data to file
   Console.WriteLine(FN + " downloaded.");

[Visual Basic]

Code: [Select]
Public Sub UploadBlob(ByVal myConnection As OracleConnection)
'Open file on disk
Dim fs As FileStream = New FileStream("D:\Tmp\test.bmp", FileMode.Open, FileAccess.Read)
Dim r As BinaryReader = New BinaryReader(fs)
'Create temporary BLOB
Dim myLob As OracleLob = New OracleLob(myConnection, OracleDbType.Blob)
Dim streamLength As Int32 = fs.Length
'Transfer data to server
myLob.Write(r.ReadBytes(streamLength), 0, streamLength)
'Perform INSERT
Dim myCommand As OracleCommand = New OracleCommand(
"INSERT INTO Pictures (ID, PicName, Picture) VALUES(1,'pict1',:Pictures)", myConnection)
Dim myParam As OracleParameter = myCommand.Parameters.Add("Pictures", OracleDbType.Blob)
myParam.OracleValue = myLob
Console.WriteLine(myCommand.ExecuteNonQuery() & " rows affected.")
End Try
End Sub

Public Sub DownloadBlob(ByVal myConnection As OracleConnection)
Dim myCommand As New OracleCommand("SELECT * FROM Pictures", myConnection)
Dim myReader As OracleDataReader = & _
While myReader.Read()
  Dim myLob As OracleLob = myReader.GetOracleLob(myReader.GetOrdinal("Picture"))
  If Not myLob.IsNull Then
   Dim FN As String = myReader.GetString(myReader.GetOrdinal("PicName"))
   Dim fs As FileStream = New FileStream("D:\Tmp\" + FN + ".bmp", FileMode.Create)
   Dim w As BinaryWriter = New BinaryWriter(fs)
   Console.WriteLine(String.Concat(FN, " downloaded."))
  End If
End While
End Try
End Sub

Working with CLOB data
Working with CLOB data generally is same as working with BLOB data. The difference is in representation of Value property. For CLOB and NCLOB data types when you read from OracleLob.Value property, you get strings. The data is transparently decoded so you do not have to take care about its character set. If you need raw data however you can use streaming capabilities of OracleLob, that is OracleLob.Read and OracleLob.Write methods. Note that since OracleLob.Value is a read-only property, you can write data to LOB only with OracleLob.Write method, and no encoding is performed.

For example, consider this table definition.

Code: [Select]
Name VARCHAR2(30),
Value CLOB

If you need to perform simple tasks like fetch record set in most cases you do not needto know about OracleLob. When calling OracleDataReader.GetValue on fetch you get array of bytesfor BLOB column and string for CLOB one. In addition you can use OracleDataReader.GetChars,OracleDataReader.GetBytes to get pieces of LOB value.

For example,


Code: [Select]
OracleCommand oraCommand = new OracleCommand("SELECT * FROM ClobTable", oraConnection);
OracleDataReader reader = oraCommand.ExecuteReader();
while (reader.Read())

[Visual Basic]

Code: [Select]
Dim oraCommand As OracleCommand = new OracleCommand( _
"SELECT * FROM ClobTable", oraConnection)
Dim reader As OracleDataReader = oraCommand.ExecuteReader()
while (reader.Read())
end while

You can do the same thing using OracleLob object directly.


Code: [Select]
OracleCommand oraCommand = new OracleCommand("SELECT * FROM ClobTable", oraConnection);
OracleDataReader reader = oraCommand.ExecuteReader();
OracleLob clob;
while (reader.Read()) {
clob = reader.GetOracleLob(2);

[Visual Basic]

Code: [Select]
Dim oraCommand As OracleCommand = new OracleCommand( _
"SELECT * FROM ClobTable", oraConnection)
Dim reader OracleDataReader = oraCommand.ExecuteReader()
Dim clob As OracleLob
while (reader.Read())
clob = reader.GetOracleLob(2)
end while

As we see first code cut was shorter. So, usually, you need to access OracleLob directly in more complicated cases (e.g using temporary LOBs, advanced streaming operations).

Inserting LOBs on Oracle server 8.0.5 and older
Temporary LOBs are not supported in Oracle servers version 8.0.5 and older,so you have to create and initialize LOB locator for Value parameter.To initialize LOB locator you must use EMPTY_BLOB or EMPTY_CLOB Oracle function.To return initialized locator in the same statement use RETURNING clause.

For example,

Code: [Select]
UPDATE ClobTable
Name = :Name,
Value = EMPTY_CLOB()
Id = :Id

Here is the sample code:


Code: [Select]
string sql = "UPDATE ClobTable SET Name = :Name, Value = EMPTY_CLOB() +
   WHERE Id = :Id RETURNING Value INTO :Value";
OracleCommand oraCommand = new OracleCommand(sql, oraConnection);
oraCommand.Parameters.Add("Id", 1);
oraCommand.Parameters.Add("Name", "First");
OracleParameter param = oraCommand.Parameters.Add("Value", OracleDbType.Clob);
param.Direction = ParameterDirection.Input;
param.Value = "The CLOB test value.";

[Visual Basic]
Code: [Select]
Dim sql As string = "UPDATE ClobTable SET Name = :Name, Value = EMPTY_CLOB() & _
    WHERE Id = :Id RETURNING Value INTO :Value"
Dim oraCommand As OracleCommand = new OracleCommand(sql, oraConnection)
oraCommand.Parameters.Add("Id", 1)
oraCommand.Parameters.Add("Name", "First")
Dim param As OracleParameter = oraCommand.Parameters.Add("Value", OracleDbType.Clob)
param.Direction = ParameterDirection.Input
param.Value = "The CLOB test value."

dotConnect for Oracle writes LOB data to Oracle and then returns initialized Value field in :Value parameter. Stored procedures allow you to automate initialization process of LOB values as follows.

Code: [Select]
PROCEDURE ClobTableUpdate (p_Id NUMBER, p_Name VARCHAR2,
   p_Value OUT CLOB)
UPDATE ClobTable
Name = p_Name,
Value = EMPTY_CLOB()
Id = p_Id

Note that p_Value parameter is declared as OUT. At the same time set Direction property for parameter of Lob data type to ParameterDirection.Input and assign it with required data prior to actual call to stored procedure. Having previous procedure declaration we may execute it as this:


Code: [Select]
OracleCommand oraCommand = new OracleCommand("ClobTableUpdate", oraConnection);
oraCommand.CommandType = CommandType.StoredProcedure;
oraCommand.Parameters["p_Id"].Value = id;
oraCommand.Parameters["p_Name"].Value = name;
oraCommand.Parameters["p_Value"].Direction = ParameterDirection.Input;
oraCommand.Parameters["p_Value"].Value = "The CLOB test value.";

[Visual Basic]

Code: [Select]
Dim oraCommand As OracleCommand = new OracleCommand("ClobTableUpdate", oraConnection)
oraCommand.CommandType = CommandType.StoredProcedure
oraCommand.Parameters("p_Id").Value = id
oraCommand.Parameters("p_Name").Value = name
oraCommand.Parameters("p_Value").Direction = ParameterDirection.Input
oraCommand.Parameters("p_Value").Value = "The CLOB test value."

It is important to use Direction property of OracleParameter in LOB operations.If Direction is ParameterDirection.Input OracleCommand writes data to a server, if Directionis ParameterDirection.Output it reads data.

You can also use OracleDbType.Long and OracleDbType.LongRaw data types with LOB parametersto write ordinary DML statements. In this case Oracle automatically converts LONG andLONG ROW values to CLOB or BLOB data.

Pages: 1 ... 115 116 [117] 118 119 ... 124