iSeries
Navigator Does SQL and More
submitted
by Steve
Kontos.
To
run SQL statements (or scripts) in iSeries Navigator, do the
following:
Expand a configured connection by clicking the
little plus (+)
sign.
Expand the branch called Databases.
Right
Click on the first
entry
Select Run
SQL Scripts from
the context menu.
To change the syntax for entering SQL
statements from library.table to library/table, or vice versa:
Click
Connection
in the iSeries Navigator script window
Click JDBC
setup
Click the
Format
tab
Select the Naming
Convention from
the drop down list
Running Control Language Commands In the
Script Window
iSeries Navigator SQL has a facility CL:
to run Control Language commands. For example:
CL:DSPOBJD
OBJ(STEVEK/*ALL) OBJTYPE(*ALL) OUTPUT(*OUTFILE)
OUTFILE(QTEMP/DSPOBJD);
The
line above outputs a list of objects in library STEVEK.
Now
show the 10 biggest objects in library STEVEK:
select
* from qtemp/dspobjd order by odobsz desc fetch first 10 rows
only;
The
CL: facility in iSeries Nav does not extend to interactive commands.
Trying to run, say,
CL:call
qcmd
will
result in an error.
The two lines below form a simple script
which can be saved and reused.
CL:DSPOBJD
OBJ(STEVEK/*ALL) OBJTYPE(*ALL) OUTPUT(*OUTFILE)
OUTFILE(QTEMP/DSPOBJD);
select * from qtemp/dspobjd order by
odobsz desc fetch first 10 rows only;
To
run a script, all SQL statements need to be terminated with a
semi-colon. Ctrl-R will run the script. You can also select Run
--> All from
the menu bar.
To save a script that you have created, click
File
and then Save
and save your script.
In addition to executing CL commands via
the script facility, any SQL statement (or statements) can be saved
as a script.
Creating Work Files
/*
Delete the table */
drop table stevek/histwork;
/*
Create the table from a SELECT statement */
create table
stevek/histwork as
(select * from proddta/f42119 left join
proddta/f5542119
on sdkcoo=s1kcoo and sddoco=s1doco and
sddcto=s1dcto and sdlnid=s1lnid
where sddrqj between 106000 and
106999)
with data;
The
example above creates a workfile of sales orders for the year-to-date
for 2006 (note that sddrqj
is
a Julian date field).
Creating
Permanent Files
You can document the creation of a
database via the scripting facility in iSeries Nav.
First
create a table called COMPANY, keyed by company number.
CREATE
TABLE company
(
company_company for column compcomp NUMERIC (3,
0) CONSTRAINT pk_compcomp PRIMARY KEY,
company_name for column
compname VARCHAR (50) NOT NULL,
company_status for column
compstat CHAR (1) NOT NULL DEFAULT 'A'
);
Specifying
NOT
NULL is
not necessary, but is something you might want to do if you develop
with RPG. RPG can handle nulls, but not without a little help on
compilation, or a lot of help in the calculation specifications.
Now
create another table PROJECT, keyed by project code, explicitly
specifying the NOT
NULL values:
CREATE
TABLE PROJECT (
PROJECT_COMPANY FOR COLUMN PROJCOMP NUMERIC(3,
0) NOT NULL DEFAULT 0 ,
PROJECT_CODE FOR COLUMN PROJCODE
CHAR(10) NOT NULL DEFAULT '' ,
PROJECT_NAME FOR COLUMN
PROJNAME VARCHAR(50) NOT NULL DEFAULT '' ,
PROJECT_STATUS
FOR COLUMN PROJSTATUS CHAR(1) NOT NULL DEFAULT 'A'
,
CONSTRAINT PK_PROJCODE PRIMARY KEY( PROJECT_CODE ) )
;
Finally,
relate the company column in the PROJECT table to its parent:
ALTER
TABLE PROJECT
ADD CONSTRAINT FK_PROJCOMP
FOREIGN KEY(
PROJECT_COMPANY )
REFERENCES COMPANY ( COMPANY_COMPANY )
ON
DELETE NO ACTION
ON UPDATE NO ACTION ;
Now,
you can start inserting records.
INSERT
INTO company VALUES(1, 'TEST COMPANY’, default);
INSERT INTO
project VALUES(1, 'STEVEK001', ' Steve K Project #001 Test',
default);
The
things you can do with CREATE and ALTER are too numerous to list, but
if you have never created or modified files outside of DDS, you might
want to research this a little further. See the reference section at
the end of this document.
Whether it is creating files,
rebuilding indexes, running cleanup utilities, or whatever you can
think of – the SQL scripting facility in iSeries Navigator is
another tool available to you.
Reference
DB2
UDB for iSeries SQL Programming Concepts
V5R2
http://publib.boulder.ibm.com/iseries/v5r2/ic2924/index.htm?info/sqlp/rbafymstdbs.htm
DB2
Universal Database for iSeries SQL
Reference
http://publib.boulder.ibm.com/iseries/v5r2/ic2924/index.htm?info/db2/rbafzmst02.htm
“SQL
Bible”. Alex Kriegel, Boris M. Trkhnov. Wiley Press,
2003.
http://www.wiley.com/WileyCDA/WileyTitle/productCd-0764525840.html