|
View previous topic :: View next topic
|
| Author |
Message |
HABBIE
New User
Joined: 08 Jul 2014 Posts: 24 Location: INDIA
|
|
|
|
Hi,
I m trying to write a query,
INSERT INTO ERT_TY
(z_DB_NAME,z_TABLE_NAME,z_COLUMN_NAME,S_COLUMN_TYP E,z_DATA)
SELECT 'TRAIN12','ALBUM',
'DEPTNAME','CHAR',DEPTNAME
FROM TRAIN12.DEPT FETCH FIRST 5 ROWS ONLY;
Error:
ILLEGAL USE OF KEYWORD FETCH. TOKEN WITH UNION EXCEPT QUERYNO WAS EXPECTED. SQLCODE=-199, SQLSTATE=42601
My db2 : version8 Z/os
os: windows
From the docs I got that FETCH will not work inside a subquery.
Can some one kindly let me know , how i have to insert the first 5 rows of a table into some other table. |
|
| Back to top |
|
 |
Rohit Umarjikar
Global Moderator

Joined: 21 Sep 2010 Posts: 3109 Location: NYC,USA
|
|
|
|
| Look for a Cursor. |
|
| Back to top |
|
 |
RahulG31
Active User
Joined: 20 Dec 2014 Posts: 446 Location: USA
|
|
|
|
How do you identify the 'first 5 rows' of a table?
Do you have any specific records to be inserted into the table OR you just want some random 5 rows from another table?
If you want specific rows then you can use a 'where' clause in your select query. Otherwise, you may have to write something like:
| Code: |
INSERT INTO ERT_TY
(z_DB_NAME,z_TABLE_NAME,z_COLUMN_NAME,S_COLUMN_TYP E,z_DATA)
SELECT 'TRAIN12','ALBUM',
'DEPTNAME','CHAR',DEPTNAME
FROM TRAIN12.DEPT where condition UNION ALL
SELECT 'TRAIN12','ALBUM',
'DEPTNAME','CHAR',DEPTNAME
FROM TRAIN12.DEPT where condition;
|
Repeat the Select query 5 times with Union All. So, there will be 5 select queries and each query should return one row to be added. I don't see if you can actually insert a fixed number of rows through a Select query in a single shot. |
|
| Back to top |
|
 |
|
|
 |
All times are GMT + 6 Hours |
|