![]() |
Hello and Welcome from United States to the UNIX and Linux Forums! Thank You for Visiting and Joining Our Global Community.
|
|
google unix.com
|
|||||||
| Forums | Register | Forum Rules | Links | Albums | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| UNIX for Dummies Questions & Answers If you're not sure where to post a UNIX or Linux question, post it here. All UNIX and Linux newbies welcome !! |
More UNIX and Linux Forum Topics You Might Find Helpful
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Definition for the UNIX term Pipe | dfrost126 | UNIX for Dummies Questions & Answers | 5 | 04-14-2008 07:17 PM |
| Encoding Problem while using "|" (PIPE) as delimiter from Mainframe to Unix | seshendra | UNIX for Dummies Questions & Answers | 1 | 02-20-2008 05:36 AM |
| splitting a pipe delimited file in unix | ddedic | Shell Programming and Scripting | 4 | 03-20-2007 01:16 AM |
| unix pipe in C | meh | High Level Programming | 1 | 10-16-2006 07:34 PM |
| Compress while wrting to a file using a unix pipe | booyena1 | HP-UX | 2 | 10-26-2005 12:52 AM |
![]() |
|
|
LinkBack | Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
|
|
||||
|
UNIX Pipe
Hi ,
I want to understand how the PIPE works in unix . Precisely what I am doing is this . 1. Creating a Named PIPE with the command mknod sqlldr.dat p 2. Directing a file output to the PIPE file in the background cat abc > sqlldr.dat 3.SQL Loader in oracle is reading the data from this . Now I want to undertsnad how it's really working ? My concern is file abc is going to be a big one . Does this cause any memory problem Links to how pipe works will be helfful Does any body has a idea of reading a PIPE file from utl_file in oracle ? |
|
||||
|
a pipe is an intermediate file that allows to separate process to communicate.
The file uses FIFO I/O - first-in first-out. The last thing written to the file is the first thing read from the file. I don't see any advantage to invoking sqlldr with a pipe. In fact, it may be a problem because pipes have a limit on "record" size - see /usr/include/limits.h _POSIX_PIPE_BUF and PIPE_BUF - and tables with several long columns will cause a problem with overflow. One way pipes are really useful is to have two separate Oracle sessions comminuicating to one another using DBMS_PIPE |
|
||||
|
I had an issue like this .
I have to delete few records from the file in the unix box and then load the data into the database .Precisely the records whose size is less then 250 . I think there is nothing in the sql loader which offers this . Checked when cluase etc . What I am doing now is this : Read file and copy all the records with 250 chracters to a temp file . Then load the data from the temp file I thougt the pipe will be useful in this case . Thanks Ashok |
|
||||
|
Quote:
Code:
mknod pipefile p compress < pipefile > exp.dmp.Z & exp file=pipefile |
|
||||
|
FWIW -
Under HPUX 11.0 Oracle 9.2.0.4.0 - 64bit Production - sqlldr does exactly that - when the length of the logical record exceeds PIPE_BUF, data is sometimes lost and log errors about incomplete or lost data show up. Overflow is not the right technical word - but I wasn't sure what the OP's level of understanding was. pipes really can't overflow, just lose track of EOR. |
![]() |
| Bookmarks |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|