Sunday, November 8, 2015

1.7 COPY: Loading Data from STDIN

COPY: Loading Data from STDIN:

Following example shows how to load data from STDIN.

This allows us to input data using keyboard. Note that to end the input we need to use \.

sukul1=> COPY USER_30_DAY_TABLES.EMPLOYEE_1 (NAME,AGE,JOINING_DATE FILLER VARCHAR(10),JOINING_YEAR AS TO_NUMBER(TO_CHAR(TO_DATE(JOINING_DATE,'YYYY-MM-DD'),'YYYY')),SALARY) FROM STDIN;
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself.
>> GREG|26|2010-02-13|3000
>> \.
sukul1=> select * from USER_30_DAY_TABLES.EMPLOYEE_1;
  NAME  | AGE | JOINING_YEAR | SALARY
--------+-----+--------------+--------
 GREG   |  26 |         2010 |   3000
 SUKUL  |  28 |         2010 |  10000
 RUTUJA |  24 |         2005 |  20000

(3 rows)

Following is another example of using STDIN.

echo 'JEFFERY|23|2016-02-01|20010' | vsql -U sukul1 -w xxxxxxx -h gone077.xxxx.lll.com -c "COPY USER_30_DAY_TABLES.EMPLOYEE_1 ( NAME,AGE,JOINING_DATE FILLER VARCHAR(10),JOINING_YEAR AS TO_NUMBER(TO_CHAR(TO_DATE(JOINING_DATE,'YYYY-MM-DD'),'YYYY')),SALARY) FROM STDIN DELIMITER '|' ABORT ON ERROR DIRECT;"

sukul1=> select * from USER_30_DAY_TABLES.EMPLOYEE_1;
   NAME   | AGE | JOINING_YEAR | SALARY
----------+-----+--------------+--------
 EMMANUEL |  28 |         2010 |  10000
 JEFFERY  |  23 |         2016 |  20010
 SUKUL    |  28 |         2010 |  10000
 RUTUJA   |  24 |         2005 |  20000
 ALVARO   |  24 |         2005 |  20000

(5 rows)

No comments:

Post a Comment