IBX Test Suite
Copyright MWA Software 2016-2021
Starting Tests
Client API Version = 2.5
Firebird Environment Variable = /opt/firebird/2.5.9
Firebird Client Library Path = /opt/firebird/2.5.9/lib/libfbembed.so
Running Test 01: Open and read from Employee Database
Read dataset unidirectional buffering
Row No = 1
EMP_NO = 12
FIRST_NAME = Terri
LAST_NAME = Lee
PHONE_EXT = 256
HIRE_DATE = 01/5/1990
DEPT_NO = 000
JOB_CODE = Admin
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 53793
FULL_NAME = Lee, Terri
DEPT_PATH = Corporate Headquarters
DEPT_KEY_PATH = 000
Row No = 2
EMP_NO = 105
FIRST_NAME = Oliver H.
LAST_NAME = Bender
PHONE_EXT = 255
HIRE_DATE = 08/10/1992
DEPT_NO = 000
JOB_CODE = CEO
JOB_GRADE = 1
JOB_COUNTRY = USA
SALARY = 212850
FULL_NAME = Bender, Oliver H.
DEPT_PATH = Corporate Headquarters
DEPT_KEY_PATH = 000
Row No = 3
EMP_NO = 85
FIRST_NAME = Mary S.
LAST_NAME = MacDonald
PHONE_EXT = 477
HIRE_DATE = 01/6/1992
DEPT_NO = 100
JOB_CODE = VP
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 111262.5
FULL_NAME = MacDonald, Mary S.
DEPT_PATH = Corporate Headquarters / Sales and Marketing
DEPT_KEY_PATH = 000;100
Row No = 4
EMP_NO = 127
FIRST_NAME = Michael
LAST_NAME = Yanowski
PHONE_EXT = 492
HIRE_DATE = 09/8/1993
DEPT_NO = 100
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 44000
FULL_NAME = Yanowski, Michael
DEPT_PATH = Corporate Headquarters / Sales and Marketing
DEPT_KEY_PATH = 000;100
Row No = 5
EMP_NO = 8
FIRST_NAME = Leslie
LAST_NAME = Johnson
PHONE_EXT = 410
HIRE_DATE = 05/4/1989
DEPT_NO = 180
JOB_CODE = Mktg
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 64635
FULL_NAME = Johnson, Leslie
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Marketing
DEPT_KEY_PATH = 000;100;180
Row No = 6
EMP_NO = 52
FIRST_NAME = Carol
LAST_NAME = Nordstrom
PHONE_EXT = 420
HIRE_DATE = 02/10/1991
DEPT_NO = 180
JOB_CODE = PRel
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 42742.5
FULL_NAME = Nordstrom, Carol
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Marketing
DEPT_KEY_PATH = 000;100;180
Row No = 7
EMP_NO = 5
FIRST_NAME = Kim
LAST_NAME = Lambert
PHONE_EXT = 22
HIRE_DATE = 06/2/1989
DEPT_NO = 130
JOB_CODE = Eng
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 102750
FULL_NAME = Lambert, Kim
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Field Office: East Coast
DEPT_KEY_PATH = 000;100;130
Row No = 8
EMP_NO = 11
FIRST_NAME = K. J.
LAST_NAME = Weston
PHONE_EXT = 34
HIRE_DATE = 17/1/1990
DEPT_NO = 130
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 86292.94
FULL_NAME = Weston, K. J.
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Field Office: East Coast
DEPT_KEY_PATH = 000;100;130
Row No = 9
EMP_NO = 72
FIRST_NAME = Claudia
LAST_NAME = Sutherland
PHONE_EXT = NULL
HIRE_DATE = 20/4/1992
DEPT_NO = 140
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = Canada
SALARY = 100914
FULL_NAME = Sutherland, Claudia
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Field Office: Canada
DEPT_KEY_PATH = 000;100;140
Row No = 10
EMP_NO = 34
FIRST_NAME = Janet
LAST_NAME = Baldwin
PHONE_EXT = 2
HIRE_DATE = 21/3/1991
DEPT_NO = 110
JOB_CODE = Sales
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 61637.81
FULL_NAME = Baldwin, Janet
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Pacific Rim Headquarters
DEPT_KEY_PATH = 000;100;110
Row No = 11
EMP_NO = 61
FIRST_NAME = Luke
LAST_NAME = Leung
PHONE_EXT = 3
HIRE_DATE = 18/2/1992
DEPT_NO = 110
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 68805
FULL_NAME = Leung, Luke
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Pacific Rim Headquarters
DEPT_KEY_PATH = 000;100;110
Row No = 12
EMP_NO = 110
FIRST_NAME = Yuki
LAST_NAME = Ichida
PHONE_EXT = 22
HIRE_DATE = 04/2/1993
DEPT_NO = 115
JOB_CODE = Eng
JOB_GRADE = 3
JOB_COUNTRY = Japan
SALARY = 6000000
FULL_NAME = Ichida, Yuki
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Pacific Rim Headquarters / Field Office: Japan
DEPT_KEY_PATH = 000;100;110;115
Row No = 13
EMP_NO = 118
FIRST_NAME = Takashi
LAST_NAME = Yamamoto
PHONE_EXT = 23
HIRE_DATE = 01/7/1993
DEPT_NO = 115
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = Japan
SALARY = 7480000
FULL_NAME = Yamamoto, Takashi
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Pacific Rim Headquarters / Field Office: Japan
DEPT_KEY_PATH = 000;100;110;115
Row No = 14
EMP_NO = 28
FIRST_NAME = Ann
LAST_NAME = Bennet
PHONE_EXT = 5
HIRE_DATE = 01/2/1991
DEPT_NO = 120
JOB_CODE = Admin
JOB_GRADE = 5
JOB_COUNTRY = England
SALARY = 22935
FULL_NAME = Bennet, Ann
DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters
DEPT_KEY_PATH = 000;100;120
Row No = 15
EMP_NO = 36
FIRST_NAME = Roger
LAST_NAME = Reeves
PHONE_EXT = 6
HIRE_DATE = 25/4/1991
DEPT_NO = 120
JOB_CODE = Sales
JOB_GRADE = 3
JOB_COUNTRY = England
SALARY = 33620.63
FULL_NAME = Reeves, Roger
DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters
DEPT_KEY_PATH = 000;100;120
Row No = 16
EMP_NO = 37
FIRST_NAME = Willie
LAST_NAME = Stansbury
PHONE_EXT = 7
HIRE_DATE = 25/4/1991
DEPT_NO = 120
JOB_CODE = Eng
JOB_GRADE = 4
JOB_COUNTRY = England
SALARY = 39224.06
FULL_NAME = Stansbury, Willie
DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters
DEPT_KEY_PATH = 000;100;120
Row No = 17
EMP_NO = 141
FIRST_NAME = Pierre
LAST_NAME = Osborne
PHONE_EXT = NULL
HIRE_DATE = 03/1/1994
DEPT_NO = 121
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = Switzerland
SALARY = 110000
FULL_NAME = Osborne, Pierre
DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters / Field Office: Switzerland
DEPT_KEY_PATH = 000;100;120;121
Row No = 18
EMP_NO = 134
FIRST_NAME = Jacques
LAST_NAME = Glon
PHONE_EXT = NULL
HIRE_DATE = 23/8/1993
DEPT_NO = 123
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = France
SALARY = 390500
FULL_NAME = Glon, Jacques
DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters / Field Office: France
DEPT_KEY_PATH = 000;100;120;123
Row No = 19
EMP_NO = 121
FIRST_NAME = Roberto
LAST_NAME = Ferrari
PHONE_EXT = 1
HIRE_DATE = 12/7/1993
DEPT_NO = 125
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = Italy
SALARY = 99000000
FULL_NAME = Ferrari, Roberto
DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters / Field Office: Italy
DEPT_KEY_PATH = 000;100;120;125
Row No = 20
EMP_NO = 2
FIRST_NAME = Robert
LAST_NAME = Nelson
PHONE_EXT = 250
HIRE_DATE = 28/12/1988
DEPT_NO = 600
JOB_CODE = VP
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 105900
FULL_NAME = Nelson, Robert
DEPT_PATH = Corporate Headquarters / Engineering
DEPT_KEY_PATH = 000;600
Row No = 21
EMP_NO = 109
FIRST_NAME = Kelly
LAST_NAME = Brown
PHONE_EXT = 202
HIRE_DATE = 04/2/1993
DEPT_NO = 600
JOB_CODE = Admin
JOB_GRADE = 5
JOB_COUNTRY = USA
SALARY = 27000
FULL_NAME = Brown, Kelly
DEPT_PATH = Corporate Headquarters / Engineering
DEPT_KEY_PATH = 000;600
Row No = 22
EMP_NO = 4
FIRST_NAME = Bruce
LAST_NAME = Young
PHONE_EXT = 233
HIRE_DATE = 28/12/1988
DEPT_NO = 621
JOB_CODE = Eng
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 97500
FULL_NAME = Young, Bruce
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Software Development
DEPT_KEY_PATH = 000;600;620;621
Row No = 23
EMP_NO = 45
FIRST_NAME = Ashok
LAST_NAME = Ramanathan
PHONE_EXT = 209
HIRE_DATE = 01/8/1991
DEPT_NO = 621
JOB_CODE = Eng
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 80689.5
FULL_NAME = Ramanathan, Ashok
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Software Development
DEPT_KEY_PATH = 000;600;620;621
Row No = 24
EMP_NO = 83
FIRST_NAME = Dana
LAST_NAME = Bishop
PHONE_EXT = 290
HIRE_DATE = 01/6/1992
DEPT_NO = 621
JOB_CODE = Eng
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 62550
FULL_NAME = Bishop, Dana
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Software Development
DEPT_KEY_PATH = 000;600;620;621
Row No = 25
EMP_NO = 138
FIRST_NAME = T.J.
LAST_NAME = Green
PHONE_EXT = 218
HIRE_DATE = 01/11/1993
DEPT_NO = 621
JOB_CODE = Eng
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 36000
FULL_NAME = Green, T.J.
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Software Development
DEPT_KEY_PATH = 000;600;620;621
Row No = 26
EMP_NO = 9
FIRST_NAME = Phil
LAST_NAME = Forest
PHONE_EXT = 229
HIRE_DATE = 17/4/1989
DEPT_NO = 622
JOB_CODE = Mngr
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 75060
FULL_NAME = Forest, Phil
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Quality Assurance
DEPT_KEY_PATH = 000;600;620;622
Row No = 27
EMP_NO = 71
FIRST_NAME = Jennifer M.
LAST_NAME = Burbank
PHONE_EXT = 289
HIRE_DATE = 15/4/1992
DEPT_NO = 622
JOB_CODE = Eng
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 53167.5
FULL_NAME = Burbank, Jennifer M.
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Quality Assurance
DEPT_KEY_PATH = 000;600;620;622
Row No = 28
EMP_NO = 145
FIRST_NAME = Mark
LAST_NAME = Guckenheimer
PHONE_EXT = 221
HIRE_DATE = 02/5/1994
DEPT_NO = 622
JOB_CODE = Eng
JOB_GRADE = 5
JOB_COUNTRY = USA
SALARY = 32000
FULL_NAME = Guckenheimer, Mark
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Quality Assurance
DEPT_KEY_PATH = 000;600;620;622
Row No = 29
EMP_NO = 15
FIRST_NAME = Katherine
LAST_NAME = Young
PHONE_EXT = 231
HIRE_DATE = 14/6/1990
DEPT_NO = 623
JOB_CODE = Mngr
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 67241.25
FULL_NAME = Young, Katherine
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Customer Support
DEPT_KEY_PATH = 000;600;620;623
Row No = 30
EMP_NO = 29
FIRST_NAME = Roger
LAST_NAME = De Souza
PHONE_EXT = 288
HIRE_DATE = 18/2/1991
DEPT_NO = 623
JOB_CODE = Eng
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 69482.63
FULL_NAME = De Souza, Roger
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Customer Support
DEPT_KEY_PATH = 000;600;620;623
Row No = 31
EMP_NO = 44
FIRST_NAME = Leslie
LAST_NAME = Phong
PHONE_EXT = 216
HIRE_DATE = 03/6/1991
DEPT_NO = 623
JOB_CODE = Eng
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 56034.38
FULL_NAME = Phong, Leslie
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Customer Support
DEPT_KEY_PATH = 000;600;620;623
Row No = 32
EMP_NO = 114
FIRST_NAME = Bill
LAST_NAME = Parker
PHONE_EXT = 247
HIRE_DATE = 01/6/1993
DEPT_NO = 623
JOB_CODE = Eng
JOB_GRADE = 5
JOB_COUNTRY = USA
SALARY = 35000
FULL_NAME = Parker, Bill
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Customer Support
DEPT_KEY_PATH = 000;600;620;623
Row No = 33
EMP_NO = 136
FIRST_NAME = Scott
LAST_NAME = Johnson
PHONE_EXT = 265
HIRE_DATE = 13/9/1993
DEPT_NO = 623
JOB_CODE = Doc
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 60000
FULL_NAME = Johnson, Scott
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Customer Support
DEPT_KEY_PATH = 000;600;620;623
Row No = 34
EMP_NO = 65
FIRST_NAME = Sue Anne
LAST_NAME = O'Brien
PHONE_EXT = 877
HIRE_DATE = 23/3/1992
DEPT_NO = 670
JOB_CODE = Admin
JOB_GRADE = 5
JOB_COUNTRY = USA
SALARY = 31275
FULL_NAME = O'Brien, Sue Anne
DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div.
DEPT_KEY_PATH = 000;600;670
Row No = 35
EMP_NO = 107
FIRST_NAME = Kevin
LAST_NAME = Cook
PHONE_EXT = 894
HIRE_DATE = 01/2/1993
DEPT_NO = 670
JOB_CODE = Dir
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 111262.5
FULL_NAME = Cook, Kevin
DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div.
DEPT_KEY_PATH = 000;600;670
Row No = 36
EMP_NO = 20
FIRST_NAME = Chris
LAST_NAME = Papadopoulos
PHONE_EXT = 887
HIRE_DATE = 01/1/1990
DEPT_NO = 671
JOB_CODE = Mngr
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 89655
FULL_NAME = Papadopoulos, Chris
DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Research and Development
DEPT_KEY_PATH = 000;600;670;671
Row No = 37
EMP_NO = 24
FIRST_NAME = Pete
LAST_NAME = Fisher
PHONE_EXT = 888
HIRE_DATE = 12/9/1990
DEPT_NO = 671
JOB_CODE = Eng
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 81810.19
FULL_NAME = Fisher, Pete
DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Research and Development
DEPT_KEY_PATH = 000;600;670;671
Row No = 38
EMP_NO = 113
FIRST_NAME = Mary
LAST_NAME = Page
PHONE_EXT = 845
HIRE_DATE = 12/4/1993
DEPT_NO = 671
JOB_CODE = Eng
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 48000
FULL_NAME = Page, Mary
DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Research and Development
DEPT_KEY_PATH = 000;600;670;671
Row No = 39
EMP_NO = 94
FIRST_NAME = Randy
LAST_NAME = Williams
PHONE_EXT = 892
HIRE_DATE = 08/8/1992
DEPT_NO = 672
JOB_CODE = Mngr
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 56295
FULL_NAME = Williams, Randy
DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Customer Services
DEPT_KEY_PATH = 000;600;670;672
Row No = 40
EMP_NO = 144
FIRST_NAME = John
LAST_NAME = Montgomery
PHONE_EXT = 820
HIRE_DATE = 30/3/1994
DEPT_NO = 672
JOB_CODE = Eng
JOB_GRADE = 5
JOB_COUNTRY = USA
SALARY = 35000
FULL_NAME = Montgomery, John
DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Customer Services
DEPT_KEY_PATH = 000;600;670;672
Row No = 41
EMP_NO = 14
FIRST_NAME = Stewart
LAST_NAME = Hall
PHONE_EXT = 227
HIRE_DATE = 04/6/1990
DEPT_NO = 900
JOB_CODE = Finan
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 69482.63
FULL_NAME = Hall, Stewart
DEPT_PATH = Corporate Headquarters / Finance
DEPT_KEY_PATH = 000;900
Row No = 42
EMP_NO = 46
FIRST_NAME = Walter
LAST_NAME = Steadman
PHONE_EXT = 210
HIRE_DATE = 09/8/1991
DEPT_NO = 900
JOB_CODE = CFO
JOB_GRADE = 1
JOB_COUNTRY = USA
SALARY = 116100
FULL_NAME = Steadman, Walter
DEPT_PATH = Corporate Headquarters / Finance
DEPT_KEY_PATH = 000;900
Rows printed = 42
Current memory = 954,480
Delta memory = 9,544
Max memory = 1,001,928
Elapsed time= 0.027 sec
Cpu = 0.002 sec
Buffers = 75
Reads = 3
Writes = 0
Fetches = 212
Selects = 0
Inserts = 0
Updates = 0
Deletes = 0
Reconnect
Read dataset bidirectional buffering
Row No = 1
EMP_NO = 12
FIRST_NAME = Terri
LAST_NAME = Lee
PHONE_EXT = 256
HIRE_DATE = 01/5/1990
DEPT_NO = 000
JOB_CODE = Admin
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 53793
FULL_NAME = Lee, Terri
DEPT_PATH = Corporate Headquarters
DEPT_KEY_PATH = 000
Row No = 2
EMP_NO = 105
FIRST_NAME = Oliver H.
LAST_NAME = Bender
PHONE_EXT = 255
HIRE_DATE = 08/10/1992
DEPT_NO = 000
JOB_CODE = CEO
JOB_GRADE = 1
JOB_COUNTRY = USA
SALARY = 212850
FULL_NAME = Bender, Oliver H.
DEPT_PATH = Corporate Headquarters
DEPT_KEY_PATH = 000
Row No = 3
EMP_NO = 85
FIRST_NAME = Mary S.
LAST_NAME = MacDonald
PHONE_EXT = 477
HIRE_DATE = 01/6/1992
DEPT_NO = 100
JOB_CODE = VP
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 111262.5
FULL_NAME = MacDonald, Mary S.
DEPT_PATH = Corporate Headquarters / Sales and Marketing
DEPT_KEY_PATH = 000;100
Row No = 4
EMP_NO = 127
FIRST_NAME = Michael
LAST_NAME = Yanowski
PHONE_EXT = 492
HIRE_DATE = 09/8/1993
DEPT_NO = 100
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 44000
FULL_NAME = Yanowski, Michael
DEPT_PATH = Corporate Headquarters / Sales and Marketing
DEPT_KEY_PATH = 000;100
Row No = 5
EMP_NO = 8
FIRST_NAME = Leslie
LAST_NAME = Johnson
PHONE_EXT = 410
HIRE_DATE = 05/4/1989
DEPT_NO = 180
JOB_CODE = Mktg
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 64635
FULL_NAME = Johnson, Leslie
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Marketing
DEPT_KEY_PATH = 000;100;180
Row No = 6
EMP_NO = 52
FIRST_NAME = Carol
LAST_NAME = Nordstrom
PHONE_EXT = 420
HIRE_DATE = 02/10/1991
DEPT_NO = 180
JOB_CODE = PRel
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 42742.5
FULL_NAME = Nordstrom, Carol
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Marketing
DEPT_KEY_PATH = 000;100;180
Row No = 7
EMP_NO = 5
FIRST_NAME = Kim
LAST_NAME = Lambert
PHONE_EXT = 22
HIRE_DATE = 06/2/1989
DEPT_NO = 130
JOB_CODE = Eng
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 102750
FULL_NAME = Lambert, Kim
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Field Office: East Coast
DEPT_KEY_PATH = 000;100;130
Row No = 8
EMP_NO = 11
FIRST_NAME = K. J.
LAST_NAME = Weston
PHONE_EXT = 34
HIRE_DATE = 17/1/1990
DEPT_NO = 130
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 86292.94
FULL_NAME = Weston, K. J.
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Field Office: East Coast
DEPT_KEY_PATH = 000;100;130
Row No = 9
EMP_NO = 72
FIRST_NAME = Claudia
LAST_NAME = Sutherland
PHONE_EXT = NULL
HIRE_DATE = 20/4/1992
DEPT_NO = 140
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = Canada
SALARY = 100914
FULL_NAME = Sutherland, Claudia
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Field Office: Canada
DEPT_KEY_PATH = 000;100;140
Row No = 10
EMP_NO = 34
FIRST_NAME = Janet
LAST_NAME = Baldwin
PHONE_EXT = 2
HIRE_DATE = 21/3/1991
DEPT_NO = 110
JOB_CODE = Sales
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 61637.81
FULL_NAME = Baldwin, Janet
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Pacific Rim Headquarters
DEPT_KEY_PATH = 000;100;110
Row No = 11
EMP_NO = 61
FIRST_NAME = Luke
LAST_NAME = Leung
PHONE_EXT = 3
HIRE_DATE = 18/2/1992
DEPT_NO = 110
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 68805
FULL_NAME = Leung, Luke
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Pacific Rim Headquarters
DEPT_KEY_PATH = 000;100;110
Row No = 12
EMP_NO = 110
FIRST_NAME = Yuki
LAST_NAME = Ichida
PHONE_EXT = 22
HIRE_DATE = 04/2/1993
DEPT_NO = 115
JOB_CODE = Eng
JOB_GRADE = 3
JOB_COUNTRY = Japan
SALARY = 6000000
FULL_NAME = Ichida, Yuki
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Pacific Rim Headquarters / Field Office: Japan
DEPT_KEY_PATH = 000;100;110;115
Row No = 13
EMP_NO = 118
FIRST_NAME = Takashi
LAST_NAME = Yamamoto
PHONE_EXT = 23
HIRE_DATE = 01/7/1993
DEPT_NO = 115
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = Japan
SALARY = 7480000
FULL_NAME = Yamamoto, Takashi
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Pacific Rim Headquarters / Field Office: Japan
DEPT_KEY_PATH = 000;100;110;115
Row No = 14
EMP_NO = 28
FIRST_NAME = Ann
LAST_NAME = Bennet
PHONE_EXT = 5
HIRE_DATE = 01/2/1991
DEPT_NO = 120
JOB_CODE = Admin
JOB_GRADE = 5
JOB_COUNTRY = England
SALARY = 22935
FULL_NAME = Bennet, Ann
DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters
DEPT_KEY_PATH = 000;100;120
Row No = 15
EMP_NO = 36
FIRST_NAME = Roger
LAST_NAME = Reeves
PHONE_EXT = 6
HIRE_DATE = 25/4/1991
DEPT_NO = 120
JOB_CODE = Sales
JOB_GRADE = 3
JOB_COUNTRY = England
SALARY = 33620.63
FULL_NAME = Reeves, Roger
DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters
DEPT_KEY_PATH = 000;100;120
Row No = 16
EMP_NO = 37
FIRST_NAME = Willie
LAST_NAME = Stansbury
PHONE_EXT = 7
HIRE_DATE = 25/4/1991
DEPT_NO = 120
JOB_CODE = Eng
JOB_GRADE = 4
JOB_COUNTRY = England
SALARY = 39224.06
FULL_NAME = Stansbury, Willie
DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters
DEPT_KEY_PATH = 000;100;120
Row No = 17
EMP_NO = 141
FIRST_NAME = Pierre
LAST_NAME = Osborne
PHONE_EXT = NULL
HIRE_DATE = 03/1/1994
DEPT_NO = 121
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = Switzerland
SALARY = 110000
FULL_NAME = Osborne, Pierre
DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters / Field Office: Switzerland
DEPT_KEY_PATH = 000;100;120;121
Row No = 18
EMP_NO = 134
FIRST_NAME = Jacques
LAST_NAME = Glon
PHONE_EXT = NULL
HIRE_DATE = 23/8/1993
DEPT_NO = 123
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = France
SALARY = 390500
FULL_NAME = Glon, Jacques
DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters / Field Office: France
DEPT_KEY_PATH = 000;100;120;123
Row No = 19
EMP_NO = 121
FIRST_NAME = Roberto
LAST_NAME = Ferrari
PHONE_EXT = 1
HIRE_DATE = 12/7/1993
DEPT_NO = 125
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = Italy
SALARY = 99000000
FULL_NAME = Ferrari, Roberto
DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters / Field Office: Italy
DEPT_KEY_PATH = 000;100;120;125
Row No = 20
EMP_NO = 2
FIRST_NAME = Robert
LAST_NAME = Nelson
PHONE_EXT = 250
HIRE_DATE = 28/12/1988
DEPT_NO = 600
JOB_CODE = VP
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 105900
FULL_NAME = Nelson, Robert
DEPT_PATH = Corporate Headquarters / Engineering
DEPT_KEY_PATH = 000;600
Row No = 21
EMP_NO = 109
FIRST_NAME = Kelly
LAST_NAME = Brown
PHONE_EXT = 202
HIRE_DATE = 04/2/1993
DEPT_NO = 600
JOB_CODE = Admin
JOB_GRADE = 5
JOB_COUNTRY = USA
SALARY = 27000
FULL_NAME = Brown, Kelly
DEPT_PATH = Corporate Headquarters / Engineering
DEPT_KEY_PATH = 000;600
Row No = 22
EMP_NO = 4
FIRST_NAME = Bruce
LAST_NAME = Young
PHONE_EXT = 233
HIRE_DATE = 28/12/1988
DEPT_NO = 621
JOB_CODE = Eng
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 97500
FULL_NAME = Young, Bruce
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Software Development
DEPT_KEY_PATH = 000;600;620;621
Row No = 23
EMP_NO = 45
FIRST_NAME = Ashok
LAST_NAME = Ramanathan
PHONE_EXT = 209
HIRE_DATE = 01/8/1991
DEPT_NO = 621
JOB_CODE = Eng
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 80689.5
FULL_NAME = Ramanathan, Ashok
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Software Development
DEPT_KEY_PATH = 000;600;620;621
Row No = 24
EMP_NO = 83
FIRST_NAME = Dana
LAST_NAME = Bishop
PHONE_EXT = 290
HIRE_DATE = 01/6/1992
DEPT_NO = 621
JOB_CODE = Eng
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 62550
FULL_NAME = Bishop, Dana
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Software Development
DEPT_KEY_PATH = 000;600;620;621
Row No = 25
EMP_NO = 138
FIRST_NAME = T.J.
LAST_NAME = Green
PHONE_EXT = 218
HIRE_DATE = 01/11/1993
DEPT_NO = 621
JOB_CODE = Eng
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 36000
FULL_NAME = Green, T.J.
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Software Development
DEPT_KEY_PATH = 000;600;620;621
Row No = 26
EMP_NO = 9
FIRST_NAME = Phil
LAST_NAME = Forest
PHONE_EXT = 229
HIRE_DATE = 17/4/1989
DEPT_NO = 622
JOB_CODE = Mngr
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 75060
FULL_NAME = Forest, Phil
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Quality Assurance
DEPT_KEY_PATH = 000;600;620;622
Row No = 27
EMP_NO = 71
FIRST_NAME = Jennifer M.
LAST_NAME = Burbank
PHONE_EXT = 289
HIRE_DATE = 15/4/1992
DEPT_NO = 622
JOB_CODE = Eng
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 53167.5
FULL_NAME = Burbank, Jennifer M.
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Quality Assurance
DEPT_KEY_PATH = 000;600;620;622
Row No = 28
EMP_NO = 145
FIRST_NAME = Mark
LAST_NAME = Guckenheimer
PHONE_EXT = 221
HIRE_DATE = 02/5/1994
DEPT_NO = 622
JOB_CODE = Eng
JOB_GRADE = 5
JOB_COUNTRY = USA
SALARY = 32000
FULL_NAME = Guckenheimer, Mark
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Quality Assurance
DEPT_KEY_PATH = 000;600;620;622
Row No = 29
EMP_NO = 15
FIRST_NAME = Katherine
LAST_NAME = Young
PHONE_EXT = 231
HIRE_DATE = 14/6/1990
DEPT_NO = 623
JOB_CODE = Mngr
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 67241.25
FULL_NAME = Young, Katherine
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Customer Support
DEPT_KEY_PATH = 000;600;620;623
Row No = 30
EMP_NO = 29
FIRST_NAME = Roger
LAST_NAME = De Souza
PHONE_EXT = 288
HIRE_DATE = 18/2/1991
DEPT_NO = 623
JOB_CODE = Eng
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 69482.63
FULL_NAME = De Souza, Roger
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Customer Support
DEPT_KEY_PATH = 000;600;620;623
Row No = 31
EMP_NO = 44
FIRST_NAME = Leslie
LAST_NAME = Phong
PHONE_EXT = 216
HIRE_DATE = 03/6/1991
DEPT_NO = 623
JOB_CODE = Eng
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 56034.38
FULL_NAME = Phong, Leslie
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Customer Support
DEPT_KEY_PATH = 000;600;620;623
Row No = 32
EMP_NO = 114
FIRST_NAME = Bill
LAST_NAME = Parker
PHONE_EXT = 247
HIRE_DATE = 01/6/1993
DEPT_NO = 623
JOB_CODE = Eng
JOB_GRADE = 5
JOB_COUNTRY = USA
SALARY = 35000
FULL_NAME = Parker, Bill
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Customer Support
DEPT_KEY_PATH = 000;600;620;623
Row No = 33
EMP_NO = 136
FIRST_NAME = Scott
LAST_NAME = Johnson
PHONE_EXT = 265
HIRE_DATE = 13/9/1993
DEPT_NO = 623
JOB_CODE = Doc
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 60000
FULL_NAME = Johnson, Scott
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Customer Support
DEPT_KEY_PATH = 000;600;620;623
Row No = 34
EMP_NO = 65
FIRST_NAME = Sue Anne
LAST_NAME = O'Brien
PHONE_EXT = 877
HIRE_DATE = 23/3/1992
DEPT_NO = 670
JOB_CODE = Admin
JOB_GRADE = 5
JOB_COUNTRY = USA
SALARY = 31275
FULL_NAME = O'Brien, Sue Anne
DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div.
DEPT_KEY_PATH = 000;600;670
Row No = 35
EMP_NO = 107
FIRST_NAME = Kevin
LAST_NAME = Cook
PHONE_EXT = 894
HIRE_DATE = 01/2/1993
DEPT_NO = 670
JOB_CODE = Dir
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 111262.5
FULL_NAME = Cook, Kevin
DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div.
DEPT_KEY_PATH = 000;600;670
Row No = 36
EMP_NO = 20
FIRST_NAME = Chris
LAST_NAME = Papadopoulos
PHONE_EXT = 887
HIRE_DATE = 01/1/1990
DEPT_NO = 671
JOB_CODE = Mngr
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 89655
FULL_NAME = Papadopoulos, Chris
DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Research and Development
DEPT_KEY_PATH = 000;600;670;671
Row No = 37
EMP_NO = 24
FIRST_NAME = Pete
LAST_NAME = Fisher
PHONE_EXT = 888
HIRE_DATE = 12/9/1990
DEPT_NO = 671
JOB_CODE = Eng
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 81810.19
FULL_NAME = Fisher, Pete
DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Research and Development
DEPT_KEY_PATH = 000;600;670;671
Row No = 38
EMP_NO = 113
FIRST_NAME = Mary
LAST_NAME = Page
PHONE_EXT = 845
HIRE_DATE = 12/4/1993
DEPT_NO = 671
JOB_CODE = Eng
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 48000
FULL_NAME = Page, Mary
DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Research and Development
DEPT_KEY_PATH = 000;600;670;671
Row No = 39
EMP_NO = 94
FIRST_NAME = Randy
LAST_NAME = Williams
PHONE_EXT = 892
HIRE_DATE = 08/8/1992
DEPT_NO = 672
JOB_CODE = Mngr
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 56295
FULL_NAME = Williams, Randy
DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Customer Services
DEPT_KEY_PATH = 000;600;670;672
Row No = 40
EMP_NO = 144
FIRST_NAME = John
LAST_NAME = Montgomery
PHONE_EXT = 820
HIRE_DATE = 30/3/1994
DEPT_NO = 672
JOB_CODE = Eng
JOB_GRADE = 5
JOB_COUNTRY = USA
SALARY = 35000
FULL_NAME = Montgomery, John
DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Customer Services
DEPT_KEY_PATH = 000;600;670;672
Row No = 41
EMP_NO = 14
FIRST_NAME = Stewart
LAST_NAME = Hall
PHONE_EXT = 227
HIRE_DATE = 04/6/1990
DEPT_NO = 900
JOB_CODE = Finan
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 69482.63
FULL_NAME = Hall, Stewart
DEPT_PATH = Corporate Headquarters / Finance
DEPT_KEY_PATH = 000;900
Row No = 42
EMP_NO = 46
FIRST_NAME = Walter
LAST_NAME = Steadman
PHONE_EXT = 210
HIRE_DATE = 09/8/1991
DEPT_NO = 900
JOB_CODE = CFO
JOB_GRADE = 1
JOB_COUNTRY = USA
SALARY = 116100
FULL_NAME = Steadman, Walter
DEPT_PATH = Corporate Headquarters / Finance
DEPT_KEY_PATH = 000;900
Rows printed = 42
Server Side Filter: Hire Date < 1/1/90
Row No = 1
EMP_NO = 8
FIRST_NAME = Leslie
LAST_NAME = Johnson
PHONE_EXT = 410
HIRE_DATE = 05/4/1989
DEPT_NO = 180
JOB_CODE = Mktg
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 64635
FULL_NAME = Johnson, Leslie
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Marketing
DEPT_KEY_PATH = 000;100;180
Row No = 2
EMP_NO = 5
FIRST_NAME = Kim
LAST_NAME = Lambert
PHONE_EXT = 22
HIRE_DATE = 06/2/1989
DEPT_NO = 130
JOB_CODE = Eng
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 102750
FULL_NAME = Lambert, Kim
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Field Office: East Coast
DEPT_KEY_PATH = 000;100;130
Row No = 3
EMP_NO = 2
FIRST_NAME = Robert
LAST_NAME = Nelson
PHONE_EXT = 250
HIRE_DATE = 28/12/1988
DEPT_NO = 600
JOB_CODE = VP
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 105900
FULL_NAME = Nelson, Robert
DEPT_PATH = Corporate Headquarters / Engineering
DEPT_KEY_PATH = 000;600
Row No = 4
EMP_NO = 4
FIRST_NAME = Bruce
LAST_NAME = Young
PHONE_EXT = 233
HIRE_DATE = 28/12/1988
DEPT_NO = 621
JOB_CODE = Eng
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 97500
FULL_NAME = Young, Bruce
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Software Development
DEPT_KEY_PATH = 000;600;620;621
Row No = 5
EMP_NO = 9
FIRST_NAME = Phil
LAST_NAME = Forest
PHONE_EXT = 229
HIRE_DATE = 17/4/1989
DEPT_NO = 622
JOB_CODE = Mngr
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 75060
FULL_NAME = Forest, Phil
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Quality Assurance
DEPT_KEY_PATH = 000;600;620;622
Rows printed = 5
Client side Filter: Hire Date > 1/1/94
Row No = 1
EMP_NO = 141
FIRST_NAME = Pierre
LAST_NAME = Osborne
PHONE_EXT = NULL
HIRE_DATE = 03/1/1994
DEPT_NO = 121
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = Switzerland
SALARY = 110000
FULL_NAME = Osborne, Pierre
DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters / Field Office: Switzerland
DEPT_KEY_PATH = 000;100;120;121
Row No = 2
EMP_NO = 145
FIRST_NAME = Mark
LAST_NAME = Guckenheimer
PHONE_EXT = 221
HIRE_DATE = 02/5/1994
DEPT_NO = 622
JOB_CODE = Eng
JOB_GRADE = 5
JOB_COUNTRY = USA
SALARY = 32000
FULL_NAME = Guckenheimer, Mark
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Quality Assurance
DEPT_KEY_PATH = 000;600;620;622
Row No = 3
EMP_NO = 144
FIRST_NAME = John
LAST_NAME = Montgomery
PHONE_EXT = 820
HIRE_DATE = 30/3/1994
DEPT_NO = 672
JOB_CODE = Eng
JOB_GRADE = 5
JOB_COUNTRY = USA
SALARY = 35000
FULL_NAME = Montgomery, John
DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Customer Services
DEPT_KEY_PATH = 000;600;670;672
Rows printed = 3
TIBQuery with open parameters - select only records with First Name = Claudia
Row No = 1
EMP_NO = 72
FIRST_NAME = Claudia
LAST_NAME = Sutherland
PHONE_EXT = NULL
HIRE_DATE = 20/4/1992
DEPT_NO = 140
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = Canada
SALARY = 100914
FULL_NAME = Sutherland, Claudia
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Field Office: Canada
DEPT_KEY_PATH = 000;100;140
Rows printed = 1
------------------------------------------------------
Running Test 02: Database Event Handlers and Idle disconnect
Before Connect
Connected to localhost:employee
DPB: Item Count = 3
isc_dpb_user_name = SYSDBA
isc_dpb_password = xxxxxxxx
isc_dpb_lc_ctype = UTF8
Before Disconnect
localhost:employee Disconnected after 1 ms
Before Connect
Connected to localhost:employee
DPB: Item Count = 3
isc_dpb_user_name = SYSDBA
isc_dpb_password = xxxxxxxx
isc_dpb_lc_ctype = UTF8
Before Disconnect
localhost:employee Disconnected after 1994 ms
Idle Timer Expired for Test_Database_02
Database Closed
Transaction Events
Before Connect
Connected to localhost:employee
DPB: Item Count = 3
isc_dpb_user_name = SYSDBA
isc_dpb_password = xxxxxxxx
isc_dpb_lc_ctype = UTF8
Requested TPB: Item Count = 3
isc_tpb_concurrency
isc_tpb_wait
isc_tpb_read
Transaction Starts
TPB: Item Count = 3
isc_tpb_concurrency
isc_tpb_wait
isc_tpb_read
Transaction Ending
Transaction Ended after 1 ms
Transaction idle timer test
Requested TPB: Item Count = 3
isc_tpb_concurrency
isc_tpb_wait
isc_tpb_read
Transaction Starts
TPB: Item Count = 3
isc_tpb_concurrency
isc_tpb_wait
isc_tpb_read
Transaction Ending
Transaction Ended after 2003 ms
Idle Timer Expired for Test_Transaction_02
Before Disconnect
localhost:employee Disconnected after 2012 ms
SQL Dialect Downgrade test
Before Connect
Connected to localhost:/tmp/ibx-testsuite/testsuite1.fdb
DPB: Item Count = 4
isc_dpb_user_name = SYSDBA
isc_dpb_password = xxxxxxxx
isc_dpb_lc_ctype = UTF8
isc_dpb_set_db_sql_dialect = 1
localhost:/tmp/ibx-testsuite/testsuite1.fdb created
Before Disconnect
localhost:/tmp/ibx-testsuite/testsuite1.fdb Disconnected after 9 ms
Before Connect
Warning: SQL Dialect Downgrade of localhost:/tmp/ibx-testsuite/testsuite1.fdb
Connected to localhost:/tmp/ibx-testsuite/testsuite1.fdb
DPB: Item Count = 3
isc_dpb_user_name = SYSDBA
isc_dpb_password = xxxxxxxx
isc_dpb_lc_ctype = UTF8
Before Disconnect
localhost:/tmp/ibx-testsuite/testsuite1.fdb Disconnected after 2 ms
------------------------------------------------------
Running Test 03: Database Information
Authentication Method = Legacy_Auth
Remote Protocol = TCPv4
Attachment SQLDialect = 3
Firebird/linux AMD64 (access method), version "LI-V2.5.9.27139 Firebird 2.5"
Firebird/linux AMD64 (remote server), version "LI-V2.5.9.27139 Firebird 2.5/tcp (zeus)/P12"
Firebird/linux AMD64 (remote interface), version "LI-V2.5.9.27139 Firebird 2.5/tcp (zeus)/P12"
on disk structure version 11.2
FB Version: Firebird/linux AMD64 (access method), version "LI-V2.5.9.27139 Firebird 2.5", Firebird/linux AMD64 (remote server), version "LI-V2.5.9.27139 Firebird 2.5/tcp (zeus)/P12", Firebird/linux AMD64 (remote interface), version "LI-V2.5.9.27139 Firebird 2.5/tcp (zeus)/P12", on disk structure version 11.2
Firebird Library Pathname = /opt/firebird/2.5.9/lib/libfbembed.so
DB SQLDialect = 3
Allocation = 272
Base Level = 4
DB File Name = /opt/firebird/2.5.9/examples/empbuild/employee.fdb
DB Site Name = zeus
DB Implementation No = 7
Database Created: 17/6/2019 19:37:08
DB Implementation Class = 0
Space is Reserved
ODS Minor Version = 2
ODS Major Version = 11
Page Size = 4096
Version = LI-V6.3.9.27139 Firebird 2.5
Current Memory = 881032
Forced Writes Enabled
Max Memory = 921016
Number of Buffers = 75
Sweep Interval = 20000
User Names: SYSDBA
Fetches = 2282
Marks = 6
Reads = 91
Writes = 6
Transaction Count = 1
Read Idx Count
RDB$FIELDS = 105
RDB$RELATION_FIELDS = 193
RDB$RELATIONS = 137
RDB$TYPES = 5
RDB$TRIGGERS = 36
RDB$CHARACTER_SETS = 14
RDB$COLLATIONS = 10
Read Seq Count
RDB$PAGES = 88
RDB$DATABASE = 1
RDB$RELATIONS = 53
Database is Read/Write
Hex Dump of Database Page 100:
7 70 39 30 C 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 21 2 0 0 16 0 6F 1 0 0 27 0 50 2 0 0 0 0 7 49 4E 54 45 47 5F 31 A9 0 7 30 AA 0 7 31 AB 0 7 32 AC 0 7 33 AD 0 7 34 AE 0 7 35 AF 0 7 36 B0 0 7 37 B1 0 7 38 B2 0 7 39 A1 0 6 32 B3 0 7 30 B4 0 7 31 B5 0 7 32 B6 0 7 33 B7 0 7 34 B8 0 7 35 B9 0 7 36 BA 0 7 37 BB 0 7 38 BC 0 7 39 A2 0 6 33 BD 0 7 30 BE 0 7 31 BF 0 7 32 A0 1 7 33 A1 1 7 34 A2 1 7 35 A3 1 7 36 A4 1 7 37 A5 1 7 38 A6 1 7 39 A3 0 6 34 A7 1 7 30 A8 1 7 31 A9 1 7 32 AA 1 7 33 AB 1 7 34 AC 1 7 35 AF 7 7 36 B0 7 7 37 B1 7 7 38 B2 7 7 39 A4 0 6 35 B3 7 7 30 B4 7 7 31 B5 7 7 32 B6 7 7 33 B7 7 7 34 B8 7 7 35 B9 7 7 36 BA 7 7 37 BB 7 7 38 BC 7 7 39 A5 0 6 36 BD 7 7 30 BE 7 7 31 BF 7 7 32 A0 8 7 33 A1 8 7 34 A2 8 7 35 A3 8 7 36 A4 8 7 37 A5 8 7 38 A6 8 7 39 A6 0 6 37 A7 8 7 30 A8 8 7 31 A9 8 7 32 AA 8 7 33 AB 8 7 34 AC 8 7 35 AD 8 7 36 AE 8 7 37 AF 8 7 38 B0 8 7 39 A7 0 6 38 B1 8 7 30 A8 0 6 39 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
------------------------------------------------------
Running Test 04: Handling of data types up to Firebird 3
Creating Database from resources/Test04.sql
Create Table IBXTest (
TableKey Integer not null,
F1 Smallint,
F2 Float,
F3 Double Precision,
F4 Decimal(9,3),
F5 Decimal(18,4),
F6 Date,
F7 Timestamp,
F8 Char (2),
F9 VarChar(256),
F10 Blob,
F11 BigInt,
"f12" Integer,
F13 Time,
F14 Blob sub_type text,
F15 Double Precision Computed by (F2 + F3),
MyArray Integer [0:16],
"GRANTS" VarChar(20),
"My Field" VarChar(32),
"MY Field" VarChar(32),
Primary Key(TableKey)
);
Transaction Exec Query "Create Table IBXTest (
TableKey Integer not null,
F1 Smallint,
F2 Float,
F3 Double Precision,
F4 Decimal(9,3),
F5 Decimal(18,4),
F6 Date,
F7 Timestamp,
F8 Char (2),
F9 VarChar(256),
F10 Blob,
F11 BigInt,
"f12" Integer,
F13 Time,
F14 Blob sub_type text,
F15 Double Precision Computed by (F2 + F3),
MyArray Integer [0:16],
"GRANTS" VarChar(20),
"My Field" VarChar(32),
"MY Field" VarChar(32),
Primary Key(TableKey)
)
"
Create Generator IBXGen;
Transaction Exec Query "Create Generator IBXGen
"
Transaction Exec Query "Select A.TABLEKEY, A.F1, A.F2, A.F3, A.F4, A.F5, A.F6, A.F7, A.F8, A.F9, A.F10, A.F11, A."f12", A.F13, A.F14, A.MyArray, A.GRANTS, A."My Field" as MYFIELD1, A."MY Field" as MYFIELD2 From IBXTEST A
"
Add a record
Transaction Exec Query "Select Gen_ID(IBXGEN,1) From RDB$Database
"
Transaction Insert
Transaction Exec Query "Insert Into IBXTEST(TABLEKEY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, "f12", F13, F14, MyArray, GRANTS) Values(:TABLEKEY, :F1, :F2, :F3, :F4, :F5, :F6, :F7,:F8, :F9, :F10, :F11, :F12, :F13, :F14, :MyArray, :GRANTS) Returning MyArray, F10, F14, F15
"
Transaction Post
Add and edit a record
Transaction Exec Query "Select Gen_ID(IBXGEN,1) From RDB$Database
"
Transaction Insert
Transaction Exec Query "Insert Into IBXTEST(TABLEKEY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, "f12", F13, F14, MyArray, GRANTS) Values(:TABLEKEY, :F1, :F2, :F3, :F4, :F5, :F6, :F7,:F8, :F9, :F10, :F11, :F12, :F13, :F14, :MyArray, :GRANTS) Returning MyArray, F10, F14, F15
"
Transaction Post
Transaction Edit
Transaction Exec Query "Update IBXTEST A Set A.F1 = :F1, A.F2 = :F2, A.F3 = :F3, A.F4 = :F4, A.F5 = :F5, A.F6 = :F6, A.F7 = :F7, A.F8 = :F8, A.F9 = :F9, A.F10 = :F10, A.F11 = :F11, A."f12" = :F12, A.F13 = :F13, A.F14 = :F14, A.MyArray = :MyArray, A."My Field" = :MYFIELD1, A."MY Field" = :MYFIELD2, A.GRANTS = :GRANTS Where A.TABLEKEY = :OLD_TABLEKEY
"
Transaction Post
Clear Blob and Array
Transaction Exec Query "Select Gen_ID(IBXGEN,1) From RDB$Database
"
Transaction Insert
Transaction Exec Query "Insert Into IBXTEST(TABLEKEY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, "f12", F13, F14, MyArray, GRANTS) Values(:TABLEKEY, :F1, :F2, :F3, :F4, :F5, :F6, :F7,:F8, :F9, :F10, :F11, :F12, :F13, :F14, :MyArray, :GRANTS) Returning MyArray, F10, F14, F15
"
Transaction Post
Transaction Edit
Transaction Exec Query "Update IBXTEST A Set A.F1 = :F1, A.F2 = :F2, A.F3 = :F3, A.F4 = :F4, A.F5 = :F5, A.F6 = :F6, A.F7 = :F7, A.F8 = :F8, A.F9 = :F9, A.F10 = :F10, A.F11 = :F11, A."f12" = :F12, A.F13 = :F13, A.F14 = :F14, A.MyArray = :MyArray, A."My Field" = :MYFIELD1, A."MY Field" = :MYFIELD2, A.GRANTS = :GRANTS Where A.TABLEKEY = :OLD_TABLEKEY
"
Transaction Exec Query "Select A.TABLEKEY, A.F1, A.F2, A.F3, A.F4, A.F5, A.F6, A.F7, A.F8, A.F9, A.F10, A.F11, A."f12", A.F13, A.F14, A.MyArray, A.GRANTS, A."My Field" as MYFIELD1, A."MY Field" as MYFIELD2 From IBXTEST A Where A.TABLEKEY = :TABLEKEY
"
Transaction Post
Transaction Exec Query "Select A.TABLEKEY, A.F1, A.F2, A.F3, A.F4, A.F5, A.F6, A.F7, A.F8, A.F9, A.F10, A.F11, A."f12", A.F13, A.F14, A.MyArray, A.GRANTS, A."My Field" as MYFIELD1, A."MY Field" as MYFIELD2 From IBXTEST A
"
Row No = 1
TABLEKEY = 1
F1 = 2
F2 = 0.314000010490
F3 = 0.314123456780
F4 = 101.314
F5 = 101.99
F6 = 25/12/2007
F7 = 25/12/2007 12:30:29.130
F8 = XX (Charset = UTF8 Codepage = 65001)
F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
F10 = (blob), Length = 543916
F11 = 9223372036854775807
F12 = 65566
F13 = 12:30:45.000
F14 (Charset = UTF8 Codepage = 65001)
If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o'er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
'Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe'er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l'amour, continuez à jouer;
Donnez-m'en un excès, que, surexcité,
L'appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m'est venu à l'oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l'odeur! Assez; Pas plus:
«Ce n'est pas si doux maintenant qu'avant.
O esprit d'amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n'y entre,
De quelle validité et de quelle hauteur soe'er,
Mais tombe dans l'abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
GRANTS = NULL
MYFIELD1 = NULL
MYFIELD2 = NULL
Row No = 2
TABLEKEY = 2
F1 = 2
F2 = 0.314000010490
F3 = 0.314123456780
F4 = 101.314
F5 = 101.99
F6 = 25/12/2007
F7 = 25/12/2007 12:30:29.130
F8 = XX (Charset = UTF8 Codepage = 65001)
F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
F10 = (blob), Length = 543916
F11 = 9223372036854775807
F12 = 65566
F13 = 12:30:45.000
F14 (Charset = UTF8 Codepage = 65001)
If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o'er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
'Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe'er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l'amour, continuez à jouer;
Donnez-m'en un excès, que, surexcité,
L'appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m'est venu à l'oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l'odeur! Assez; Pas plus:
«Ce n'est pas si doux maintenant qu'avant.
O esprit d'amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n'y entre,
De quelle validité et de quelle hauteur soe'er,
Mais tombe dans l'abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
GRANTS = NULL
MYFIELD1 = My Field (Charset = UTF8 Codepage = 65001)
MYFIELD2 = MY Field (Charset = UTF8 Codepage = 65001)
Row No = 3
TABLEKEY = 3
F1 = 2
F2 = 0.314000010490
F3 = 0.314123456780
F4 = 101.314
F5 = 101.99
F6 = 25/12/2007
F7 = 25/12/2007 12:30:29.130
F8 = XX (Charset = UTF8 Codepage = 65001)
F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
F10 = (blob), Length = 543916
F11 = 9223372036854775807
F12 = 65566
F13 = 12:30:45.000
F14 = NULL
MYARRAY = NULL
GRANTS = NULL
MYFIELD1 = NULL
MYFIELD2 = NULL
Rows printed = 3
Transaction Exec Query "Delete From IBXTEST A Where A.TABLEKEY = :OLD_TABLEKEY
"
Transaction Delete
Transaction Exec Query "Select A.TABLEKEY, A.F1, A.F2, A.F3, A.F4, A.F5, A.F6, A.F7, A.F8, A.F9, A.F10, A.F11, A."f12", A.F13, A.F14, A.MyArray, A.GRANTS, A."My Field" as MYFIELD1, A."MY Field" as MYFIELD2 From IBXTEST A
"
Delete a record
Transaction Exec Query "Delete From IBXTEST A Where A.TABLEKEY = :OLD_TABLEKEY
"
Transaction Delete
Row No = 1
TABLEKEY = 2
F1 = 2
F2 = 0.314000010490
F3 = 0.314123456780
F4 = 101.314
F5 = 101.99
F6 = 25/12/2007
F7 = 25/12/2007 12:30:29.130
F8 = XX (Charset = UTF8 Codepage = 65001)
F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
F10 = (blob), Length = 543916
F11 = 9223372036854775807
F12 = 65566
F13 = 12:30:45.000
F14 (Charset = UTF8 Codepage = 65001)
If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o'er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
'Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe'er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l'amour, continuez à jouer;
Donnez-m'en un excès, que, surexcité,
L'appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m'est venu à l'oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l'odeur! Assez; Pas plus:
«Ce n'est pas si doux maintenant qu'avant.
O esprit d'amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n'y entre,
De quelle validité et de quelle hauteur soe'er,
Mais tombe dans l'abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
GRANTS = NULL
MYFIELD1 = My Field (Charset = UTF8 Codepage = 65001)
MYFIELD2 = MY Field (Charset = UTF8 Codepage = 65001)
Rows printed = 1
Rollback Retaining
Transaction Exec Query "Select A.TABLEKEY, A.F1, A.F2, A.F3, A.F4, A.F5, A.F6, A.F7, A.F8, A.F9, A.F10, A.F11, A."f12", A.F13, A.F14, A.MyArray, A.GRANTS, A."My Field" as MYFIELD1, A."MY Field" as MYFIELD2 From IBXTEST A
"
Row No = 1
TABLEKEY = 1
F1 = 2
F2 = 0.314000010490
F3 = 0.314123456780
F4 = 101.314
F5 = 101.99
F6 = 25/12/2007
F7 = 25/12/2007 12:30:29.130
F8 = XX (Charset = UTF8 Codepage = 65001)
F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
F10 = (blob), Length = 543916
F11 = 9223372036854775807
F12 = 65566
F13 = 12:30:45.000
F14 (Charset = UTF8 Codepage = 65001)
If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o'er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
'Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe'er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l'amour, continuez à jouer;
Donnez-m'en un excès, que, surexcité,
L'appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m'est venu à l'oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l'odeur! Assez; Pas plus:
«Ce n'est pas si doux maintenant qu'avant.
O esprit d'amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n'y entre,
De quelle validité et de quelle hauteur soe'er,
Mais tombe dans l'abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
GRANTS = NULL
MYFIELD1 = NULL
MYFIELD2 = NULL
Row No = 2
TABLEKEY = 2
F1 = 2
F2 = 0.314000010490
F3 = 0.314123456780
F4 = 101.314
F5 = 101.99
F6 = 25/12/2007
F7 = 25/12/2007 12:30:29.130
F8 = XX (Charset = UTF8 Codepage = 65001)
F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
F10 = (blob), Length = 543916
F11 = 9223372036854775807
F12 = 65566
F13 = 12:30:45.000
F14 (Charset = UTF8 Codepage = 65001)
If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o'er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
'Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe'er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l'amour, continuez à jouer;
Donnez-m'en un excès, que, surexcité,
L'appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m'est venu à l'oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l'odeur! Assez; Pas plus:
«Ce n'est pas si doux maintenant qu'avant.
O esprit d'amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n'y entre,
De quelle validité et de quelle hauteur soe'er,
Mais tombe dans l'abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
GRANTS = NULL
MYFIELD1 = My Field (Charset = UTF8 Codepage = 65001)
MYFIELD2 = MY Field (Charset = UTF8 Codepage = 65001)
Rows printed = 2
Delete a record
Transaction Exec Query "Delete From IBXTEST A Where A.TABLEKEY = :OLD_TABLEKEY
"
Transaction Delete
Row No = 1
TABLEKEY = 2
F1 = 2
F2 = 0.314000010490
F3 = 0.314123456780
F4 = 101.314
F5 = 101.99
F6 = 25/12/2007
F7 = 25/12/2007 12:30:29.130
F8 = XX (Charset = UTF8 Codepage = 65001)
F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
F10 = (blob), Length = 543916
F11 = 9223372036854775807
F12 = 65566
F13 = 12:30:45.000
F14 (Charset = UTF8 Codepage = 65001)
If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o'er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
'Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe'er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l'amour, continuez à jouer;
Donnez-m'en un excès, que, surexcité,
L'appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m'est venu à l'oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l'odeur! Assez; Pas plus:
«Ce n'est pas si doux maintenant qu'avant.
O esprit d'amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n'y entre,
De quelle validité et de quelle hauteur soe'er,
Mais tombe dans l'abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
GRANTS = NULL
MYFIELD1 = My Field (Charset = UTF8 Codepage = 65001)
MYFIELD2 = MY Field (Charset = UTF8 Codepage = 65001)
Rows printed = 1
Rollback
Transaction Exec Query "Select A.TABLEKEY, A.F1, A.F2, A.F3, A.F4, A.F5, A.F6, A.F7, A.F8, A.F9, A.F10, A.F11, A."f12", A.F13, A.F14, A.MyArray, A.GRANTS, A."My Field" as MYFIELD1, A."MY Field" as MYFIELD2 From IBXTEST A
"
Row No = 1
TABLEKEY = 1
F1 = 2
F2 = 0.314000010490
F3 = 0.314123456780
F4 = 101.314
F5 = 101.99
F6 = 25/12/2007
F7 = 25/12/2007 12:30:29.130
F8 = XX (Charset = UTF8 Codepage = 65001)
F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
F10 = (blob), Length = 543916
F11 = 9223372036854775807
F12 = 65566
F13 = 12:30:45.000
F14 (Charset = UTF8 Codepage = 65001)
If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o'er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
'Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe'er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l'amour, continuez à jouer;
Donnez-m'en un excès, que, surexcité,
L'appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m'est venu à l'oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l'odeur! Assez; Pas plus:
«Ce n'est pas si doux maintenant qu'avant.
O esprit d'amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n'y entre,
De quelle validité et de quelle hauteur soe'er,
Mais tombe dans l'abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
GRANTS = NULL
MYFIELD1 = NULL
MYFIELD2 = NULL
Row No = 2
TABLEKEY = 2
F1 = 2
F2 = 0.314000010490
F3 = 0.314123456780
F4 = 101.314
F5 = 101.99
F6 = 25/12/2007
F7 = 25/12/2007 12:30:29.130
F8 = XX (Charset = UTF8 Codepage = 65001)
F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
F10 = (blob), Length = 543916
F11 = 9223372036854775807
F12 = 65566
F13 = 12:30:45.000
F14 (Charset = UTF8 Codepage = 65001)
If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o'er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
'Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe'er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l'amour, continuez à jouer;
Donnez-m'en un excès, que, surexcité,
L'appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m'est venu à l'oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l'odeur! Assez; Pas plus:
«Ce n'est pas si doux maintenant qu'avant.
O esprit d'amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n'y entre,
De quelle validité et de quelle hauteur soe'er,
Mais tombe dans l'abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
GRANTS = NULL
MYFIELD1 = My Field (Charset = UTF8 Codepage = 65001)
MYFIELD2 = MY Field (Charset = UTF8 Codepage = 65001)
Rows printed = 2
Commit Retaining
Transaction Exec Query "Select Gen_ID(IBXGEN,1) From RDB$Database
"
Transaction Insert
Transaction Exec Query "Insert Into IBXTEST(TABLEKEY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, "f12", F13, F14, MyArray, GRANTS) Values(:TABLEKEY, :F1, :F2, :F3, :F4, :F5, :F6, :F7,:F8, :F9, :F10, :F11, :F12, :F13, :F14, :MyArray, :GRANTS) Returning MyArray, F10, F14, F15
"
Transaction Post
Transaction Exec Query "Select A.TABLEKEY, A.F1, A.F2, A.F3, A.F4, A.F5, A.F6, A.F7, A.F8, A.F9, A.F10, A.F11, A."f12", A.F13, A.F14, A.MyArray, A.GRANTS, A."My Field" as MYFIELD1, A."MY Field" as MYFIELD2 From IBXTEST A
"
Row No = 1
TABLEKEY = 1
F1 = 2
F2 = 0.314000010490
F3 = 0.314123456780
F4 = 101.314
F5 = 101.99
F6 = 25/12/2007
F7 = 25/12/2007 12:30:29.130
F8 = XX (Charset = UTF8 Codepage = 65001)
F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
F10 = (blob), Length = 543916
F11 = 9223372036854775807
F12 = 65566
F13 = 12:30:45.000
F14 (Charset = UTF8 Codepage = 65001)
If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o'er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
'Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe'er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l'amour, continuez à jouer;
Donnez-m'en un excès, que, surexcité,
L'appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m'est venu à l'oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l'odeur! Assez; Pas plus:
«Ce n'est pas si doux maintenant qu'avant.
O esprit d'amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n'y entre,
De quelle validité et de quelle hauteur soe'er,
Mais tombe dans l'abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
GRANTS = NULL
MYFIELD1 = NULL
MYFIELD2 = NULL
Row No = 2
TABLEKEY = 2
F1 = 2
F2 = 0.314000010490
F3 = 0.314123456780
F4 = 101.314
F5 = 101.99
F6 = 25/12/2007
F7 = 25/12/2007 12:30:29.130
F8 = XX (Charset = UTF8 Codepage = 65001)
F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
F10 = (blob), Length = 543916
F11 = 9223372036854775807
F12 = 65566
F13 = 12:30:45.000
F14 (Charset = UTF8 Codepage = 65001)
If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o'er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
'Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe'er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l'amour, continuez à jouer;
Donnez-m'en un excès, que, surexcité,
L'appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m'est venu à l'oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l'odeur! Assez; Pas plus:
«Ce n'est pas si doux maintenant qu'avant.
O esprit d'amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n'y entre,
De quelle validité et de quelle hauteur soe'er,
Mais tombe dans l'abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
GRANTS = NULL
MYFIELD1 = My Field (Charset = UTF8 Codepage = 65001)
MYFIELD2 = MY Field (Charset = UTF8 Codepage = 65001)
Row No = 3
TABLEKEY = 4
F1 = 2
F2 = 0.314000010490
F3 = 0.314123456780
F4 = 101.314
F5 = 101.99
F6 = 25/12/2007
F7 = 25/12/2007 12:30:29.130
F8 = XX (Charset = UTF8 Codepage = 65001)
F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
F10 = (blob), Length = 543916
F11 = 9223372036854775807
F12 = 65566
F13 = 12:30:45.000
F14 (Charset = UTF8 Codepage = 65001)
If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o'er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
'Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe'er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l'amour, continuez à jouer;
Donnez-m'en un excès, que, surexcité,
L'appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m'est venu à l'oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l'odeur! Assez; Pas plus:
«Ce n'est pas si doux maintenant qu'avant.
O esprit d'amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n'y entre,
De quelle validité et de quelle hauteur soe'er,
Mais tombe dans l'abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
GRANTS = NULL
MYFIELD1 = NULL
MYFIELD2 = NULL
Rows printed = 3
Commit
Transaction Exec Query "Select A.TABLEKEY, A.F1, A.F2, A.F3, A.F4, A.F5, A.F6, A.F7, A.F8, A.F9, A.F10, A.F11, A."f12", A.F13, A.F14, A.MyArray, A.GRANTS, A."My Field" as MYFIELD1, A."MY Field" as MYFIELD2 From IBXTEST A
"
Row No = 1
TABLEKEY = 1
F1 = 2
F2 = 0.314000010490
F3 = 0.314123456780
F4 = 101.314
F5 = 101.99
F6 = 25/12/2007
F7 = 25/12/2007 12:30:29.130
F8 = XX (Charset = UTF8 Codepage = 65001)
F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
F10 = (blob), Length = 543916
F11 = 9223372036854775807
F12 = 65566
F13 = 12:30:45.000
F14 (Charset = UTF8 Codepage = 65001)
If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o'er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
'Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe'er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l'amour, continuez à jouer;
Donnez-m'en un excès, que, surexcité,
L'appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m'est venu à l'oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l'odeur! Assez; Pas plus:
«Ce n'est pas si doux maintenant qu'avant.
O esprit d'amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n'y entre,
De quelle validité et de quelle hauteur soe'er,
Mais tombe dans l'abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
GRANTS = NULL
MYFIELD1 = NULL
MYFIELD2 = NULL
Row No = 2
TABLEKEY = 2
F1 = 2
F2 = 0.314000010490
F3 = 0.314123456780
F4 = 101.314
F5 = 101.99
F6 = 25/12/2007
F7 = 25/12/2007 12:30:29.130
F8 = XX (Charset = UTF8 Codepage = 65001)
F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
F10 = (blob), Length = 543916
F11 = 9223372036854775807
F12 = 65566
F13 = 12:30:45.000
F14 (Charset = UTF8 Codepage = 65001)
If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o'er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
'Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe'er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l'amour, continuez à jouer;
Donnez-m'en un excès, que, surexcité,
L'appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m'est venu à l'oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l'odeur! Assez; Pas plus:
«Ce n'est pas si doux maintenant qu'avant.
O esprit d'amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n'y entre,
De quelle validité et de quelle hauteur soe'er,
Mais tombe dans l'abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
GRANTS = NULL
MYFIELD1 = My Field (Charset = UTF8 Codepage = 65001)
MYFIELD2 = MY Field (Charset = UTF8 Codepage = 65001)
Row No = 3
TABLEKEY = 4
F1 = 2
F2 = 0.314000010490
F3 = 0.314123456780
F4 = 101.314
F5 = 101.99
F6 = 25/12/2007
F7 = 25/12/2007 12:30:29.130
F8 = XX (Charset = UTF8 Codepage = 65001)
F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
F10 = (blob), Length = 543916
F11 = 9223372036854775807
F12 = 65566
F13 = 12:30:45.000
F14 (Charset = UTF8 Codepage = 65001)
If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o'er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
'Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe'er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l'amour, continuez à jouer;
Donnez-m'en un excès, que, surexcité,
L'appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m'est venu à l'oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l'odeur! Assez; Pas plus:
«Ce n'est pas si doux maintenant qu'avant.
O esprit d'amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n'y entre,
De quelle validité et de quelle hauteur soe'er,
Mais tombe dans l'abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
GRANTS = NULL
MYFIELD1 = NULL
MYFIELD2 = NULL
Rows printed = 3
Creating Database from SQL
Creating Database from resources/Test04.sql
Create Table IBXTest (
TableKey Integer not null,
F1 Smallint,
F2 Float,
F3 Double Precision,
F4 Decimal(9,3),
F5 Decimal(18,4),
F6 Date,
F7 Timestamp,
F8 Char (2),
F9 VarChar(256),
F10 Blob,
F11 BigInt,
"f12" Integer,
F13 Time,
F14 Blob sub_type text,
F15 Double Precision Computed by (F2 + F3),
MyArray Integer [0:16],
"GRANTS" VarChar(20),
"My Field" VarChar(32),
"MY Field" VarChar(32),
Primary Key(TableKey)
);
Transaction Exec Query "Create Table IBXTest (
TableKey Integer not null,
F1 Smallint,
F2 Float,
F3 Double Precision,
F4 Decimal(9,3),
F5 Decimal(18,4),
F6 Date,
F7 Timestamp,
F8 Char (2),
F9 VarChar(256),
F10 Blob,
F11 BigInt,
"f12" Integer,
F13 Time,
F14 Blob sub_type text,
F15 Double Precision Computed by (F2 + F3),
MyArray Integer [0:16],
"GRANTS" VarChar(20),
"My Field" VarChar(32),
"MY Field" VarChar(32),
Primary Key(TableKey)
)
"
Create Generator IBXGen;
Transaction Exec Query "Create Generator IBXGen
"
Database Name = localhost:/tmp/ibx-testsuite/testsuite1.fdb
Transaction Exec Query "Select A.TABLEKEY, A.F1, A.F2, A.F3, A.F4, A.F5, A.F6, A.F7, A.F8, A.F9, A.F10, A.F11, A."f12", A.F13, A.F14, A.MyArray, A.GRANTS, A."My Field" as MYFIELD1, A."MY Field" as MYFIELD2 From IBXTEST A
"
Add a record
Transaction Exec Query "Select Gen_ID(IBXGEN,1) From RDB$Database
"
Transaction Insert
Transaction Exec Query "Insert Into IBXTEST(TABLEKEY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, "f12", F13, F14, MyArray, GRANTS) Values(:TABLEKEY, :F1, :F2, :F3, :F4, :F5, :F6, :F7,:F8, :F9, :F10, :F11, :F12, :F13, :F14, :MyArray, :GRANTS) Returning MyArray, F10, F14, F15
"
Transaction Post
Row No = 1
TABLEKEY = 1
F1 = 2
F2 = 0.314000000000
F3 = 0.314123456780
F4 = 101.314
F5 = 101.99
F6 = 25/12/2007
F7 = 25/12/2007 12:30:29.130
F8 = XX (Charset = UTF8 Codepage = 65001)
F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
F10 = (blob), Length = 543916
F11 = 9223372036854775807
F12 = 65566
F13 = 12:30:45.000
F14 (Charset = UTF8 Codepage = 65001)
If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o'er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
'Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe'er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l'amour, continuez à jouer;
Donnez-m'en un excès, que, surexcité,
L'appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m'est venu à l'oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l'odeur! Assez; Pas plus:
«Ce n'est pas si doux maintenant qu'avant.
O esprit d'amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n'y entre,
De quelle validité et de quelle hauteur soe'er,
Mais tombe dans l'abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
GRANTS = NULL
MYFIELD1 = NULL
MYFIELD2 = NULL
Rows printed = 1
------------------------------------------------------
Skipping Test 05: Firebird 4 Data Types
Skipping 05
------------------------------------------------------
Running Test 06: Multi-Database Transaction
Creating Database from resources/Test06.sql
Create Table IBXTest (
TableKey Integer not null,
F1 Smallint,
F2 Float,
F3 Double Precision,
F4 Decimal(9,3),
F5 Decimal(18,4),
F6 Date,
F7 Timestamp,
F8 Char (2),
F9 VarChar(256),
F10 Blob,
F11 BigInt,
"f12" Integer,
F13 Time,
"GRANTS" VarChar(20),
"My Field" VarChar(32),
"MY Field" VarChar(32),
Primary Key(TableKey)
);
Create Generator IBXGen;
Creating Database from resources/Test06.sql
Create Table IBXTest (
TableKey Integer not null,
F1 Smallint,
F2 Float,
F3 Double Precision,
F4 Decimal(9,3),
F5 Decimal(18,4),
F6 Date,
F7 Timestamp,
F8 Char (2),
F9 VarChar(256),
F10 Blob,
F11 BigInt,
"f12" Integer,
F13 Time,
"GRANTS" VarChar(20),
"My Field" VarChar(32),
"MY Field" VarChar(32),
Primary Key(TableKey)
);
Create Generator IBXGen;
Add Row to First Database
TABLEKEY = 1
Add Row to Second Database
TABLEKEY = 1
Query First Database
TABLEKEY = 1
F1 = 1
Query Second Database
TABLEKEY = 1
F1 = 2
------------------------------------------------------
Running Test 07: Open and read from Employee Database using IBSQL
Metadata
SQLType =SQL_SHORT
sub type = 0
Table = EMPLOYEE
Owner = SYSDBA
Column Name = EMP_NO
Alias Name = EMP_NO
Field Name = EMP_NO
Scale = 0
Charset id = 0
Not Null
Size = 2
SQLType =SQL_VARYING
sub type = 0
Table = EMPLOYEE
Owner = SYSDBA
Column Name = FIRST_NAME
Alias Name = FIRST_NAME
Field Name = FIRST_NAME
Scale = 0
Charset id = 0
Not Null
Size = 15
SQLType =SQL_VARYING
sub type = 0
Table = EMPLOYEE
Owner = SYSDBA
Column Name = LAST_NAME
Alias Name = LAST_NAME
Field Name = LAST_NAME
Scale = 0
Charset id = 0
Not Null
Size = 20
SQLType =SQL_VARYING
sub type = 0
Table = EMPLOYEE
Owner = SYSDBA
Column Name = PHONE_EXT
Alias Name = PHONE_EXT
Field Name = PHONE_EXT
Scale = 0
Charset id = 0
Nullable
Size = 4
SQLType =SQL_TIMESTAMP
sub type = 0
Table = EMPLOYEE
Owner = SYSDBA
Column Name = HIRE_DATE
Alias Name = HIRE_DATE
Field Name = HIRE_DATE
Scale = 0
Charset id = 0
Not Null
Size = 8
SQLType =SQL_TEXT
sub type = 0
Table = EMPLOYEE
Owner = SYSDBA
Column Name = DEPT_NO
Alias Name = DEPT_NO
Field Name = DEPT_NO
Scale = 0
Charset id = 0
Not Null
Size = 3
SQLType =SQL_VARYING
sub type = 0
Table = EMPLOYEE
Owner = SYSDBA
Column Name = JOB_CODE
Alias Name = JOB_CODE
Field Name = JOB_CODE
Scale = 0
Charset id = 0
Not Null
Size = 5
SQLType =SQL_SHORT
sub type = 0
Table = EMPLOYEE
Owner = SYSDBA
Column Name = JOB_GRADE
Alias Name = JOB_GRADE
Field Name = JOB_GRADE
Scale = 0
Charset id = 0
Not Null
Size = 2
SQLType =SQL_VARYING
sub type = 0
Table = EMPLOYEE
Owner = SYSDBA
Column Name = JOB_COUNTRY
Alias Name = JOB_COUNTRY
Field Name = JOB_COUNTRY
Scale = 0
Charset id = 0
Not Null
Size = 15
SQLType =SQL_INT64
sub type = 0
Table = EMPLOYEE
Owner = SYSDBA
Column Name = SALARY
Alias Name = SALARY
Field Name = SALARY
Scale = -2
Charset id = 0
Not Null
Size = 8
SQLType =SQL_VARYING
sub type = 0
Table = EMPLOYEE
Owner = SYSDBA
Column Name = FULL_NAME
Alias Name = FULL_NAME
Field Name = FULL_NAME
Scale = 0
Charset id = 0
Nullable
Size = 37
SQLType =SQL_VARYING
sub type = 0
Table =
Owner =
Column Name =
Alias Name = DEPT_PATH
Field Name = DEPT_PATH
Scale = 0
Charset id = 0
Not Null
Size = 256
SQLType =SQL_VARYING
sub type = 0
Table =
Owner =
Column Name =
Alias Name = DEPT_KEY_PATH
Field Name = DEPT_KEY_PATH
Scale = 0
Charset id = 0
Not Null
Size = 64
PLAN SORT (JOIN ((DEPTS DEPARTMENT INDEX (RDB$FOREIGN6))
PLAN (DEPTS D INDEX (RDB$FOREIGN6)), A INDEX (RDB$FOREIGN8)))
EMP_NO = 2
FIRST_NAME = Robert
LAST_NAME = Nelson
PHONE_EXT = 250
HIRE_DATE = 1988/12/28 00:00:00.0000
DEPT_NO = 600
JOB_CODE = VP
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 105,900.00
FULL_NAME = Nelson, Robert
DEPT_PATH = Corporate Headquarters / Engineering
DEPT_KEY_PATH = 000;600
EMP_NO = 4
FIRST_NAME = Bruce
LAST_NAME = Young
PHONE_EXT = 233
HIRE_DATE = 1988/12/28 00:00:00.0000
DEPT_NO = 621
JOB_CODE = Eng
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 97,500.00
FULL_NAME = Young, Bruce
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Software Development
DEPT_KEY_PATH = 000;600;620;621
EMP_NO = 5
FIRST_NAME = Kim
LAST_NAME = Lambert
PHONE_EXT = 22
HIRE_DATE = 1989/02/06 00:00:00.0000
DEPT_NO = 130
JOB_CODE = Eng
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 102,750.00
FULL_NAME = Lambert, Kim
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Field Office: East Coast
DEPT_KEY_PATH = 000;100;130
EMP_NO = 8
FIRST_NAME = Leslie
LAST_NAME = Johnson
PHONE_EXT = 410
HIRE_DATE = 1989/04/05 00:00:00.0000
DEPT_NO = 180
JOB_CODE = Mktg
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 64,635.00
FULL_NAME = Johnson, Leslie
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Marketing
DEPT_KEY_PATH = 000;100;180
EMP_NO = 9
FIRST_NAME = Phil
LAST_NAME = Forest
PHONE_EXT = 229
HIRE_DATE = 1989/04/17 00:00:00.0000
DEPT_NO = 622
JOB_CODE = Mngr
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 75,060.00
FULL_NAME = Forest, Phil
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Quality Assurance
DEPT_KEY_PATH = 000;600;620;622
EMP_NO = 11
FIRST_NAME = K. J.
LAST_NAME = Weston
PHONE_EXT = 34
HIRE_DATE = 1990/01/17 00:00:00.0000
DEPT_NO = 130
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 86,292.94
FULL_NAME = Weston, K. J.
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Field Office: East Coast
DEPT_KEY_PATH = 000;100;130
EMP_NO = 12
FIRST_NAME = Terri
LAST_NAME = Lee
PHONE_EXT = 256
HIRE_DATE = 1990/05/01 00:00:00.0000
DEPT_NO = 000
JOB_CODE = Admin
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 53,793.00
FULL_NAME = Lee, Terri
DEPT_PATH = Corporate Headquarters
DEPT_KEY_PATH = 000
EMP_NO = 14
FIRST_NAME = Stewart
LAST_NAME = Hall
PHONE_EXT = 227
HIRE_DATE = 1990/06/04 00:00:00.0000
DEPT_NO = 900
JOB_CODE = Finan
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 69,482.63
FULL_NAME = Hall, Stewart
DEPT_PATH = Corporate Headquarters / Finance
DEPT_KEY_PATH = 000;900
EMP_NO = 15
FIRST_NAME = Katherine
LAST_NAME = Young
PHONE_EXT = 231
HIRE_DATE = 1990/06/14 00:00:00.0000
DEPT_NO = 623
JOB_CODE = Mngr
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 67,241.25
FULL_NAME = Young, Katherine
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Customer Support
DEPT_KEY_PATH = 000;600;620;623
EMP_NO = 20
FIRST_NAME = Chris
LAST_NAME = Papadopoulos
PHONE_EXT = 887
HIRE_DATE = 1990/01/01 00:00:00.0000
DEPT_NO = 671
JOB_CODE = Mngr
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 89,655.00
FULL_NAME = Papadopoulos, Chris
DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Research and Development
DEPT_KEY_PATH = 000;600;670;671
EMP_NO = 24
FIRST_NAME = Pete
LAST_NAME = Fisher
PHONE_EXT = 888
HIRE_DATE = 1990/09/12 00:00:00.0000
DEPT_NO = 671
JOB_CODE = Eng
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 81,810.19
FULL_NAME = Fisher, Pete
DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Research and Development
DEPT_KEY_PATH = 000;600;670;671
EMP_NO = 28
FIRST_NAME = Ann
LAST_NAME = Bennet
PHONE_EXT = 5
HIRE_DATE = 1991/02/01 00:00:00.0000
DEPT_NO = 120
JOB_CODE = Admin
JOB_GRADE = 5
JOB_COUNTRY = England
SALARY = 22,935.00
FULL_NAME = Bennet, Ann
DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters
DEPT_KEY_PATH = 000;100;120
EMP_NO = 29
FIRST_NAME = Roger
LAST_NAME = De Souza
PHONE_EXT = 288
HIRE_DATE = 1991/02/18 00:00:00.0000
DEPT_NO = 623
JOB_CODE = Eng
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 69,482.63
FULL_NAME = De Souza, Roger
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Customer Support
DEPT_KEY_PATH = 000;600;620;623
EMP_NO = 34
FIRST_NAME = Janet
LAST_NAME = Baldwin
PHONE_EXT = 2
HIRE_DATE = 1991/03/21 00:00:00.0000
DEPT_NO = 110
JOB_CODE = Sales
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 61,637.81
FULL_NAME = Baldwin, Janet
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Pacific Rim Headquarters
DEPT_KEY_PATH = 000;100;110
EMP_NO = 36
FIRST_NAME = Roger
LAST_NAME = Reeves
PHONE_EXT = 6
HIRE_DATE = 1991/04/25 00:00:00.0000
DEPT_NO = 120
JOB_CODE = Sales
JOB_GRADE = 3
JOB_COUNTRY = England
SALARY = 33,620.63
FULL_NAME = Reeves, Roger
DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters
DEPT_KEY_PATH = 000;100;120
EMP_NO = 37
FIRST_NAME = Willie
LAST_NAME = Stansbury
PHONE_EXT = 7
HIRE_DATE = 1991/04/25 00:00:00.0000
DEPT_NO = 120
JOB_CODE = Eng
JOB_GRADE = 4
JOB_COUNTRY = England
SALARY = 39,224.06
FULL_NAME = Stansbury, Willie
DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters
DEPT_KEY_PATH = 000;100;120
EMP_NO = 44
FIRST_NAME = Leslie
LAST_NAME = Phong
PHONE_EXT = 216
HIRE_DATE = 1991/06/03 00:00:00.0000
DEPT_NO = 623
JOB_CODE = Eng
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 56,034.38
FULL_NAME = Phong, Leslie
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Customer Support
DEPT_KEY_PATH = 000;600;620;623
EMP_NO = 45
FIRST_NAME = Ashok
LAST_NAME = Ramanathan
PHONE_EXT = 209
HIRE_DATE = 1991/08/01 00:00:00.0000
DEPT_NO = 621
JOB_CODE = Eng
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 80,689.50
FULL_NAME = Ramanathan, Ashok
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Software Development
DEPT_KEY_PATH = 000;600;620;621
EMP_NO = 46
FIRST_NAME = Walter
LAST_NAME = Steadman
PHONE_EXT = 210
HIRE_DATE = 1991/08/09 00:00:00.0000
DEPT_NO = 900
JOB_CODE = CFO
JOB_GRADE = 1
JOB_COUNTRY = USA
SALARY = 116,100.00
FULL_NAME = Steadman, Walter
DEPT_PATH = Corporate Headquarters / Finance
DEPT_KEY_PATH = 000;900
EMP_NO = 52
FIRST_NAME = Carol
LAST_NAME = Nordstrom
PHONE_EXT = 420
HIRE_DATE = 1991/10/02 00:00:00.0000
DEPT_NO = 180
JOB_CODE = PRel
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 42,742.50
FULL_NAME = Nordstrom, Carol
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Marketing
DEPT_KEY_PATH = 000;100;180
EMP_NO = 61
FIRST_NAME = Luke
LAST_NAME = Leung
PHONE_EXT = 3
HIRE_DATE = 1992/02/18 00:00:00.0000
DEPT_NO = 110
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 68,805.00
FULL_NAME = Leung, Luke
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Pacific Rim Headquarters
DEPT_KEY_PATH = 000;100;110
EMP_NO = 65
FIRST_NAME = Sue Anne
LAST_NAME = O'Brien
PHONE_EXT = 877
HIRE_DATE = 1992/03/23 00:00:00.0000
DEPT_NO = 670
JOB_CODE = Admin
JOB_GRADE = 5
JOB_COUNTRY = USA
SALARY = 31,275.00
FULL_NAME = O'Brien, Sue Anne
DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div.
DEPT_KEY_PATH = 000;600;670
EMP_NO = 71
FIRST_NAME = Jennifer M.
LAST_NAME = Burbank
PHONE_EXT = 289
HIRE_DATE = 1992/04/15 00:00:00.0000
DEPT_NO = 622
JOB_CODE = Eng
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 53,167.50
FULL_NAME = Burbank, Jennifer M.
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Quality Assurance
DEPT_KEY_PATH = 000;600;620;622
EMP_NO = 72
FIRST_NAME = Claudia
LAST_NAME = Sutherland
PHONE_EXT = NULL
HIRE_DATE = 1992/04/20 00:00:00.0000
DEPT_NO = 140
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = Canada
SALARY = 100,914.00
FULL_NAME = Sutherland, Claudia
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Field Office: Canada
DEPT_KEY_PATH = 000;100;140
EMP_NO = 83
FIRST_NAME = Dana
LAST_NAME = Bishop
PHONE_EXT = 290
HIRE_DATE = 1992/06/01 00:00:00.0000
DEPT_NO = 621
JOB_CODE = Eng
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 62,550.00
FULL_NAME = Bishop, Dana
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Software Development
DEPT_KEY_PATH = 000;600;620;621
EMP_NO = 85
FIRST_NAME = Mary S.
LAST_NAME = MacDonald
PHONE_EXT = 477
HIRE_DATE = 1992/06/01 00:00:00.0000
DEPT_NO = 100
JOB_CODE = VP
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 111,262.50
FULL_NAME = MacDonald, Mary S.
DEPT_PATH = Corporate Headquarters / Sales and Marketing
DEPT_KEY_PATH = 000;100
EMP_NO = 94
FIRST_NAME = Randy
LAST_NAME = Williams
PHONE_EXT = 892
HIRE_DATE = 1992/08/08 00:00:00.0000
DEPT_NO = 672
JOB_CODE = Mngr
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 56,295.00
FULL_NAME = Williams, Randy
DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Customer Services
DEPT_KEY_PATH = 000;600;670;672
EMP_NO = 105
FIRST_NAME = Oliver H.
LAST_NAME = Bender
PHONE_EXT = 255
HIRE_DATE = 1992/10/08 00:00:00.0000
DEPT_NO = 000
JOB_CODE = CEO
JOB_GRADE = 1
JOB_COUNTRY = USA
SALARY = 212,850.00
FULL_NAME = Bender, Oliver H.
DEPT_PATH = Corporate Headquarters
DEPT_KEY_PATH = 000
EMP_NO = 107
FIRST_NAME = Kevin
LAST_NAME = Cook
PHONE_EXT = 894
HIRE_DATE = 1993/02/01 00:00:00.0000
DEPT_NO = 670
JOB_CODE = Dir
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 111,262.50
FULL_NAME = Cook, Kevin
DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div.
DEPT_KEY_PATH = 000;600;670
EMP_NO = 109
FIRST_NAME = Kelly
LAST_NAME = Brown
PHONE_EXT = 202
HIRE_DATE = 1993/02/04 00:00:00.0000
DEPT_NO = 600
JOB_CODE = Admin
JOB_GRADE = 5
JOB_COUNTRY = USA
SALARY = 27,000.00
FULL_NAME = Brown, Kelly
DEPT_PATH = Corporate Headquarters / Engineering
DEPT_KEY_PATH = 000;600
EMP_NO = 110
FIRST_NAME = Yuki
LAST_NAME = Ichida
PHONE_EXT = 22
HIRE_DATE = 1993/02/04 00:00:00.0000
DEPT_NO = 115
JOB_CODE = Eng
JOB_GRADE = 3
JOB_COUNTRY = Japan
SALARY = 6,000,000.00
FULL_NAME = Ichida, Yuki
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Pacific Rim Headquarters / Field Office: Japan
DEPT_KEY_PATH = 000;100;110;115
EMP_NO = 113
FIRST_NAME = Mary
LAST_NAME = Page
PHONE_EXT = 845
HIRE_DATE = 1993/04/12 00:00:00.0000
DEPT_NO = 671
JOB_CODE = Eng
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 48,000.00
FULL_NAME = Page, Mary
DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Research and Development
DEPT_KEY_PATH = 000;600;670;671
EMP_NO = 114
FIRST_NAME = Bill
LAST_NAME = Parker
PHONE_EXT = 247
HIRE_DATE = 1993/06/01 00:00:00.0000
DEPT_NO = 623
JOB_CODE = Eng
JOB_GRADE = 5
JOB_COUNTRY = USA
SALARY = 35,000.00
FULL_NAME = Parker, Bill
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Customer Support
DEPT_KEY_PATH = 000;600;620;623
EMP_NO = 118
FIRST_NAME = Takashi
LAST_NAME = Yamamoto
PHONE_EXT = 23
HIRE_DATE = 1993/07/01 00:00:00.0000
DEPT_NO = 115
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = Japan
SALARY = 7,480,000.00
FULL_NAME = Yamamoto, Takashi
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Pacific Rim Headquarters / Field Office: Japan
DEPT_KEY_PATH = 000;100;110;115
EMP_NO = 121
FIRST_NAME = Roberto
LAST_NAME = Ferrari
PHONE_EXT = 1
HIRE_DATE = 1993/07/12 00:00:00.0000
DEPT_NO = 125
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = Italy
SALARY = 99,000,000.00
FULL_NAME = Ferrari, Roberto
DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters / Field Office: Italy
DEPT_KEY_PATH = 000;100;120;125
EMP_NO = 127
FIRST_NAME = Michael
LAST_NAME = Yanowski
PHONE_EXT = 492
HIRE_DATE = 1993/08/09 00:00:00.0000
DEPT_NO = 100
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 44,000.00
FULL_NAME = Yanowski, Michael
DEPT_PATH = Corporate Headquarters / Sales and Marketing
DEPT_KEY_PATH = 000;100
EMP_NO = 134
FIRST_NAME = Jacques
LAST_NAME = Glon
PHONE_EXT = NULL
HIRE_DATE = 1993/08/23 00:00:00.0000
DEPT_NO = 123
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = France
SALARY = 390,500.00
FULL_NAME = Glon, Jacques
DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters / Field Office: France
DEPT_KEY_PATH = 000;100;120;123
EMP_NO = 136
FIRST_NAME = Scott
LAST_NAME = Johnson
PHONE_EXT = 265
HIRE_DATE = 1993/09/13 00:00:00.0000
DEPT_NO = 623
JOB_CODE = Doc
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 60,000.00
FULL_NAME = Johnson, Scott
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Customer Support
DEPT_KEY_PATH = 000;600;620;623
EMP_NO = 138
FIRST_NAME = T.J.
LAST_NAME = Green
PHONE_EXT = 218
HIRE_DATE = 1993/11/01 00:00:00.0000
DEPT_NO = 621
JOB_CODE = Eng
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 36,000.00
FULL_NAME = Green, T.J.
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Software Development
DEPT_KEY_PATH = 000;600;620;621
EMP_NO = 141
FIRST_NAME = Pierre
LAST_NAME = Osborne
PHONE_EXT = NULL
HIRE_DATE = 1994/01/03 00:00:00.0000
DEPT_NO = 121
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = Switzerland
SALARY = 110,000.00
FULL_NAME = Osborne, Pierre
DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters / Field Office: Switzerland
DEPT_KEY_PATH = 000;100;120;121
EMP_NO = 144
FIRST_NAME = John
LAST_NAME = Montgomery
PHONE_EXT = 820
HIRE_DATE = 1994/03/30 00:00:00.0000
DEPT_NO = 672
JOB_CODE = Eng
JOB_GRADE = 5
JOB_COUNTRY = USA
SALARY = 35,000.00
FULL_NAME = Montgomery, John
DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Customer Services
DEPT_KEY_PATH = 000;600;670;672
EMP_NO = 145
FIRST_NAME = Mark
LAST_NAME = Guckenheimer
PHONE_EXT = 221
HIRE_DATE = 1994/05/02 00:00:00.0000
DEPT_NO = 622
JOB_CODE = Eng
JOB_GRADE = 5
JOB_COUNTRY = USA
SALARY = 32,000.00
FULL_NAME = Guckenheimer, Mark
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Quality Assurance
DEPT_KEY_PATH = 000;600;620;622
Current memory = 942,504
Delta memory = 9,520
Max memory = 1,003,368
Elapsed time= 0.018 sec
Cpu = 0.001 sec
Buffers = 75
Reads = 3
Writes = 0
Fetches = 212
------------------------------------------------------
With Named Parameter
EMP_NO = 12
FIRST_NAME = Terri
LAST_NAME = Lee
PHONE_EXT = 256
HIRE_DATE = 1990/05/01 00:00:00.0000
DEPT_NO = 000
JOB_CODE = Admin
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 53,793.00
FULL_NAME = Lee, Terri
DEPT_PATH = Corporate Headquarters
DEPT_KEY_PATH = 000
EMP_NO = 8
FIRST_NAME = Leslie
LAST_NAME = Johnson
PHONE_EXT = 410
HIRE_DATE = 1989/04/05 00:00:00.0000
DEPT_NO = 180
JOB_CODE = Mktg
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 64,635.00
FULL_NAME = Johnson, Leslie
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Marketing
DEPT_KEY_PATH = 000;100;180
EMP_NO = 5
FIRST_NAME = Kim
LAST_NAME = Lambert
PHONE_EXT = 22
HIRE_DATE = 1989/02/06 00:00:00.0000
DEPT_NO = 130
JOB_CODE = Eng
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 102,750.00
FULL_NAME = Lambert, Kim
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Field Office: East Coast
DEPT_KEY_PATH = 000;100;130
EMP_NO = 11
FIRST_NAME = K. J.
LAST_NAME = Weston
PHONE_EXT = 34
HIRE_DATE = 1990/01/17 00:00:00.0000
DEPT_NO = 130
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 86,292.94
FULL_NAME = Weston, K. J.
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Field Office: East Coast
DEPT_KEY_PATH = 000;100;130
EMP_NO = 2
FIRST_NAME = Robert
LAST_NAME = Nelson
PHONE_EXT = 250
HIRE_DATE = 1988/12/28 00:00:00.0000
DEPT_NO = 600
JOB_CODE = VP
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 105,900.00
FULL_NAME = Nelson, Robert
DEPT_PATH = Corporate Headquarters / Engineering
DEPT_KEY_PATH = 000;600
EMP_NO = 4
FIRST_NAME = Bruce
LAST_NAME = Young
PHONE_EXT = 233
HIRE_DATE = 1988/12/28 00:00:00.0000
DEPT_NO = 621
JOB_CODE = Eng
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 97,500.00
FULL_NAME = Young, Bruce
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Software Development
DEPT_KEY_PATH = 000;600;620;621
EMP_NO = 9
FIRST_NAME = Phil
LAST_NAME = Forest
PHONE_EXT = 229
HIRE_DATE = 1989/04/17 00:00:00.0000
DEPT_NO = 622
JOB_CODE = Mngr
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 75,060.00
FULL_NAME = Forest, Phil
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Quality Assurance
DEPT_KEY_PATH = 000;600;620;622
EMP_NO = 15
FIRST_NAME = Katherine
LAST_NAME = Young
PHONE_EXT = 231
HIRE_DATE = 1990/06/14 00:00:00.0000
DEPT_NO = 623
JOB_CODE = Mngr
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 67,241.25
FULL_NAME = Young, Katherine
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Customer Support
DEPT_KEY_PATH = 000;600;620;623
EMP_NO = 20
FIRST_NAME = Chris
LAST_NAME = Papadopoulos
PHONE_EXT = 887
HIRE_DATE = 1990/01/01 00:00:00.0000
DEPT_NO = 671
JOB_CODE = Mngr
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 89,655.00
FULL_NAME = Papadopoulos, Chris
DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Research and Development
DEPT_KEY_PATH = 000;600;670;671
EMP_NO = 24
FIRST_NAME = Pete
LAST_NAME = Fisher
PHONE_EXT = 888
HIRE_DATE = 1990/09/12 00:00:00.0000
DEPT_NO = 671
JOB_CODE = Eng
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 81,810.19
FULL_NAME = Fisher, Pete
DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Research and Development
DEPT_KEY_PATH = 000;600;670;671
EMP_NO = 14
FIRST_NAME = Stewart
LAST_NAME = Hall
PHONE_EXT = 227
HIRE_DATE = 1990/06/04 00:00:00.0000
DEPT_NO = 900
JOB_CODE = Finan
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 69,482.63
FULL_NAME = Hall, Stewart
DEPT_PATH = Corporate Headquarters / Finance
DEPT_KEY_PATH = 000;900
With Positional Parameter
EMP_NO = 8
FIRST_NAME = Leslie
LAST_NAME = Johnson
PHONE_EXT = 410
HIRE_DATE = 1989/04/05 00:00:00.0000
DEPT_NO = 180
JOB_CODE = Mktg
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 64,635.00
FULL_NAME = Johnson, Leslie
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Marketing
DEPT_KEY_PATH = 000;100;180
EMP_NO = 5
FIRST_NAME = Kim
LAST_NAME = Lambert
PHONE_EXT = 22
HIRE_DATE = 1989/02/06 00:00:00.0000
DEPT_NO = 130
JOB_CODE = Eng
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 102,750.00
FULL_NAME = Lambert, Kim
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Field Office: East Coast
DEPT_KEY_PATH = 000;100;130
EMP_NO = 2
FIRST_NAME = Robert
LAST_NAME = Nelson
PHONE_EXT = 250
HIRE_DATE = 1988/12/28 00:00:00.0000
DEPT_NO = 600
JOB_CODE = VP
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 105,900.00
FULL_NAME = Nelson, Robert
DEPT_PATH = Corporate Headquarters / Engineering
DEPT_KEY_PATH = 000;600
EMP_NO = 4
FIRST_NAME = Bruce
LAST_NAME = Young
PHONE_EXT = 233
HIRE_DATE = 1988/12/28 00:00:00.0000
DEPT_NO = 621
JOB_CODE = Eng
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 97,500.00
FULL_NAME = Young, Bruce
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Software Development
DEPT_KEY_PATH = 000;600;620;621
EMP_NO = 9
FIRST_NAME = Phil
LAST_NAME = Forest
PHONE_EXT = 229
HIRE_DATE = 1989/04/17 00:00:00.0000
DEPT_NO = 622
JOB_CODE = Mngr
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 75,060.00
FULL_NAME = Forest, Phil
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Quality Assurance
DEPT_KEY_PATH = 000;600;620;622
Get Employee Project
Metadata
SQLType =SQL_TEXT
sub type = 0
Table = GET_EMP_PROJ
Owner = SYSDBA
Column Name = PROJ_ID
Alias Name = PROJ_ID
Field Name = PROJ_ID
Scale = 0
Charset id = 0
Nullable
Size = 5
PROJ_ID = VBASE
PROJ_ID = MAPDB
Call Delete Employee - exception expected
Terminated with Exception:Engine Code: 335544517
exception 2
------------------------------------------------------
Running Test 08: TIBDataset: Locate, Bookmark and Lookup
Field No 1 Name = EMP_NO DataType = ftSmallint
Field No 2 Name = FIRST_NAME DataType = ftString
Field No 3 Name = LAST_NAME DataType = ftString
Field No 4 Name = PHONE_EXT DataType = ftString
Field No 5 Name = HIRE_DATE DataType = ftDateTime
Field No 6 Name = DEPT_NO DataType = ftString
Field No 7 Name = JOB_CODE DataType = ftString
Field No 8 Name = JOB_GRADE DataType = ftSmallint
Field No 9 Name = JOB_COUNTRY DataType = ftString
Field No 10 Name = SALARY DataType = ftBCD
Field No 11 Name = FULL_NAME DataType = ftString
Field No 12 Name = DEPT_PATH DataType = ftString
Field No 13 Name = DEPT_KEY_PATH DataType = ftString
Field No -1 Name = HireYear DataType = ftInteger
Field No -1 Name = HireDatePlus1 DataType = ftDate
EMP_NO = 12
FIRST_NAME = Terri
LAST_NAME = Lee
PHONE_EXT = 256
HIRE_DATE = 01/5/1990
DEPT_NO = 000
JOB_CODE = Admin
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 53793
FULL_NAME = Lee, Terri
DEPT_PATH = Corporate Headquarters
DEPT_KEY_PATH = 000
HireYear = 1990
HireDatePlus1 = 02/5/1990
EMP_NO = 36
FIRST_NAME = Roger
LAST_NAME = Reeves
PHONE_EXT = 6
HIRE_DATE = 25/4/1991
DEPT_NO = 120
JOB_CODE = Sales
JOB_GRADE = 3
JOB_COUNTRY = England
SALARY = 33620.63
FULL_NAME = Reeves, Roger
DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters
DEPT_KEY_PATH = 000;100;120
HireYear = 1991
HireDatePlus1 = 26/4/1991
Back to EMP_NO = 12
EMP_NO = 12
FIRST_NAME = Terri
LAST_NAME = Lee
PHONE_EXT = 256
HIRE_DATE = 01/5/1990
DEPT_NO = 000
JOB_CODE = Admin
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 53793
FULL_NAME = Lee, Terri
DEPT_PATH = Corporate Headquarters
DEPT_KEY_PATH = 000
HireYear = 1990
HireDatePlus1 = 02/5/1990
Locate Employee 20, First Name and Last Name
Field No. 0 = Chris
Field No. 1 = Papadopoulos
Print All
Row No = 1
EMP_NO = 2
FIRST_NAME = Robert
LAST_NAME = Nelson
PHONE_EXT = 250
HIRE_DATE = 28/12/1988
DEPT_NO = 600
JOB_CODE = VP
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 105900
FULL_NAME = Nelson, Robert
DEPT_PATH = Corporate Headquarters / Engineering
DEPT_KEY_PATH = 000;600
HireYear = 1988
HireDatePlus1 = 29/12/1988
Row No = 2
EMP_NO = 4
FIRST_NAME = Bruce
LAST_NAME = Young
PHONE_EXT = 233
HIRE_DATE = 28/12/1988
DEPT_NO = 621
JOB_CODE = Eng
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 97500
FULL_NAME = Young, Bruce
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Software Development
DEPT_KEY_PATH = 000;600;620;621
HireYear = 1988
HireDatePlus1 = 29/12/1988
Row No = 3
EMP_NO = 5
FIRST_NAME = Kim
LAST_NAME = Lambert
PHONE_EXT = 22
HIRE_DATE = 06/2/1989
DEPT_NO = 130
JOB_CODE = Eng
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 102750
FULL_NAME = Lambert, Kim
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Field Office: East Coast
DEPT_KEY_PATH = 000;100;130
HireYear = 1989
HireDatePlus1 = 07/2/1989
Row No = 4
EMP_NO = 8
FIRST_NAME = Leslie
LAST_NAME = Johnson
PHONE_EXT = 410
HIRE_DATE = 05/4/1989
DEPT_NO = 180
JOB_CODE = Mktg
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 64635
FULL_NAME = Johnson, Leslie
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Marketing
DEPT_KEY_PATH = 000;100;180
HireYear = 1989
HireDatePlus1 = 06/4/1989
Row No = 5
EMP_NO = 9
FIRST_NAME = Phil
LAST_NAME = Forest
PHONE_EXT = 229
HIRE_DATE = 17/4/1989
DEPT_NO = 622
JOB_CODE = Mngr
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 75060
FULL_NAME = Forest, Phil
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Quality Assurance
DEPT_KEY_PATH = 000;600;620;622
HireYear = 1989
HireDatePlus1 = 18/4/1989
Row No = 6
EMP_NO = 11
FIRST_NAME = K. J.
LAST_NAME = Weston
PHONE_EXT = 34
HIRE_DATE = 17/1/1990
DEPT_NO = 130
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 86292.94
FULL_NAME = Weston, K. J.
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Field Office: East Coast
DEPT_KEY_PATH = 000;100;130
HireYear = 1990
HireDatePlus1 = 18/1/1990
Row No = 7
EMP_NO = 12
FIRST_NAME = Terri
LAST_NAME = Lee
PHONE_EXT = 256
HIRE_DATE = 01/5/1990
DEPT_NO = 000
JOB_CODE = Admin
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 53793
FULL_NAME = Lee, Terri
DEPT_PATH = Corporate Headquarters
DEPT_KEY_PATH = 000
HireYear = 1990
HireDatePlus1 = 02/5/1990
Row No = 8
EMP_NO = 14
FIRST_NAME = Stewart
LAST_NAME = Hall
PHONE_EXT = 227
HIRE_DATE = 04/6/1990
DEPT_NO = 900
JOB_CODE = Finan
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 69482.63
FULL_NAME = Hall, Stewart
DEPT_PATH = Corporate Headquarters / Finance
DEPT_KEY_PATH = 000;900
HireYear = 1990
HireDatePlus1 = 05/6/1990
Row No = 9
EMP_NO = 15
FIRST_NAME = Katherine
LAST_NAME = Young
PHONE_EXT = 231
HIRE_DATE = 14/6/1990
DEPT_NO = 623
JOB_CODE = Mngr
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 67241.25
FULL_NAME = Young, Katherine
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Customer Support
DEPT_KEY_PATH = 000;600;620;623
HireYear = 1990
HireDatePlus1 = 15/6/1990
Row No = 10
EMP_NO = 20
FIRST_NAME = Chris
LAST_NAME = Papadopoulos
PHONE_EXT = 887
HIRE_DATE = 01/1/1990
DEPT_NO = 671
JOB_CODE = Mngr
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 89655
FULL_NAME = Papadopoulos, Chris
DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Research and Development
DEPT_KEY_PATH = 000;600;670;671
HireYear = 1990
HireDatePlus1 = 02/1/1990
Row No = 11
EMP_NO = 24
FIRST_NAME = Pete
LAST_NAME = Fisher
PHONE_EXT = 888
HIRE_DATE = 12/9/1990
DEPT_NO = 671
JOB_CODE = Eng
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 81810.19
FULL_NAME = Fisher, Pete
DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Research and Development
DEPT_KEY_PATH = 000;600;670;671
HireYear = 1990
HireDatePlus1 = 13/9/1990
Row No = 12
EMP_NO = 28
FIRST_NAME = Ann
LAST_NAME = Bennet
PHONE_EXT = 5
HIRE_DATE = 01/2/1991
DEPT_NO = 120
JOB_CODE = Admin
JOB_GRADE = 5
JOB_COUNTRY = England
SALARY = 22935
FULL_NAME = Bennet, Ann
DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters
DEPT_KEY_PATH = 000;100;120
HireYear = 1991
HireDatePlus1 = 02/2/1991
Row No = 13
EMP_NO = 29
FIRST_NAME = Roger
LAST_NAME = De Souza
PHONE_EXT = 288
HIRE_DATE = 18/2/1991
DEPT_NO = 623
JOB_CODE = Eng
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 69482.63
FULL_NAME = De Souza, Roger
DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Customer Support
DEPT_KEY_PATH = 000;600;620;623
HireYear = 1991
HireDatePlus1 = 19/2/1991
Row No = 14
EMP_NO = 34
FIRST_NAME = Janet
LAST_NAME = Baldwin
PHONE_EXT = 2
HIRE_DATE = 21/3/1991
DEPT_NO = 110
JOB_CODE = Sales
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 61637.81
FULL_NAME = Baldwin, Janet
DEPT_PATH = Corporate Headquarters / Sales and Marketing / Pacific Rim Headquarters
DEPT_KEY_PATH = 000;100;110
HireYear = 1991
HireDatePlus1 = 22/3/1991
Row No = 15
EMP_NO = 36
FIRST_NAME = Roger
LAST_NAME = Reeves
PHONE_EXT = 6
HIRE_DATE = 25/4/1991
DEPT_NO = 120
JOB_CODE = Sales
JOB_GRADE = 3
JOB_COUNTRY = England
SALARY = 33620.63
FULL_NAME = Reeves, Roger
DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters
DEPT_KEY_PATH = 000;100;120
HireYear = 1991
HireDatePlus1 = 26/4/1991
Row No = 16
EMP_NO = 37
FIRST_NAME = Willie
LAST_NAME = Stansbury
PHONE_EXT = 7
HIRE_DATE = 25/4/1991
DEPT_NO = 120
JOB_CODE = Eng
JOB_GRADE = 4
JOB_COUNTRY = England
SALARY = 39224.06
FULL_NAME = Stansbury, Willie
DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters
DEPT_KEY_PATH = 000;100;120
HireYear = 1991
HireDatePlus1 = 26/4/1991
Rows printed = 16
------------------------------------------------------
Running Test 09: Extract DDL from example Employee Database
Extracting Database Schema and Data
SET SQL DIALECT 3;
SET AUTODDL ON;
/* CREATE DATABASE 'localhost:employee' PAGE_SIZE 4096
DEFAULT CHARACTER SET NONE; */
/* Domain definitions */
CREATE DOMAIN ADDRESSLINE AS VARCHAR(30);
CREATE DOMAIN BUDGET AS DECIMAL(12,2)
DEFAULT 50000;
CREATE DOMAIN COUNTRYNAME AS VARCHAR(15);
CREATE DOMAIN CUSTNO AS INTEGER;
CREATE DOMAIN DEPTNO AS CHAR(3);
CREATE DOMAIN EMPNO AS SMALLINT;
CREATE DOMAIN FIRSTNAME AS VARCHAR(15);
CREATE DOMAIN JOBCODE AS VARCHAR(5);
CREATE DOMAIN JOBGRADE AS SMALLINT;
CREATE DOMAIN LASTNAME AS VARCHAR(20);
CREATE DOMAIN PHONENUMBER AS VARCHAR(20);
CREATE DOMAIN PONUMBER AS CHAR(8);
CREATE DOMAIN PRODTYPE AS VARCHAR(12)
DEFAULT 'software' NOT NULL;
CREATE DOMAIN PROJNO AS CHAR(5);
CREATE DOMAIN SALARY AS NUMERIC(10,2)
DEFAULT 0;
/* Table: COUNTRY, Owner: SYSDBA */
CREATE TABLE COUNTRY
(
COUNTRY COUNTRYNAME NOT NULL,
CURRENCY VARCHAR(10) NOT NULL,
PRIMARY KEY (COUNTRY)
);
/* Table: CUSTOMER, Owner: SYSDBA */
CREATE TABLE CUSTOMER
(
CUST_NO CUSTNO NOT NULL,
CUSTOMER VARCHAR(25) NOT NULL,
CONTACT_FIRST FIRSTNAME,
CONTACT_LAST LASTNAME,
PHONE_NO PHONENUMBER,
ADDRESS_LINE1 ADDRESSLINE,
ADDRESS_LINE2 ADDRESSLINE,
CITY VARCHAR(25),
STATE_PROVINCE VARCHAR(15),
COUNTRY COUNTRYNAME,
POSTAL_CODE VARCHAR(12),
ON_HOLD CHAR(1) DEFAULT NULL,
PRIMARY KEY (CUST_NO)
);
/* Table: DEPARTMENT, Owner: SYSDBA */
CREATE TABLE DEPARTMENT
(
DEPT_NO DEPTNO NOT NULL,
DEPARTMENT VARCHAR(25) NOT NULL,
HEAD_DEPT DEPTNO,
MNGR_NO EMPNO,
BUDGET BUDGET,
LOCATION VARCHAR(15),
PHONE_NO PHONENUMBER DEFAULT '555-1234',
UNIQUE (DEPARTMENT),
PRIMARY KEY (DEPT_NO)
);
/* Table: EMPLOYEE, Owner: SYSDBA */
CREATE TABLE EMPLOYEE
(
EMP_NO EMPNO NOT NULL,
FIRST_NAME FIRSTNAME NOT NULL,
LAST_NAME LASTNAME NOT NULL,
PHONE_EXT VARCHAR(4),
HIRE_DATE TIMESTAMP DEFAULT 'NOW' NOT NULL,
DEPT_NO DEPTNO NOT NULL,
JOB_CODE JOBCODE NOT NULL,
JOB_GRADE JOBGRADE NOT NULL,
JOB_COUNTRY COUNTRYNAME NOT NULL,
SALARY SALARY NOT NULL,
FULL_NAME COMPUTED BY (last_name || ', ' || first_name),
PRIMARY KEY (EMP_NO)
);
/* Table: EMPLOYEE_PROJECT, Owner: SYSDBA */
CREATE TABLE EMPLOYEE_PROJECT
(
EMP_NO EMPNO NOT NULL,
PROJ_ID PROJNO NOT NULL,
PRIMARY KEY (EMP_NO, PROJ_ID)
);
/* Table: JOB, Owner: SYSDBA */
CREATE TABLE JOB
(
JOB_CODE JOBCODE NOT NULL,
JOB_GRADE JOBGRADE NOT NULL,
JOB_COUNTRY COUNTRYNAME NOT NULL,
JOB_TITLE VARCHAR(25) NOT NULL,
MIN_SALARY SALARY NOT NULL,
MAX_SALARY SALARY NOT NULL,
JOB_REQUIREMENT BLOB SUB_TYPE TEXT SEGMENT SIZE 400,
LANGUAGE_REQ VARCHAR(15)[1:5],
PRIMARY KEY (JOB_CODE, JOB_GRADE, JOB_COUNTRY)
);
/* Table: PROJECT, Owner: SYSDBA */
CREATE TABLE PROJECT
(
PROJ_ID PROJNO NOT NULL,
PROJ_NAME VARCHAR(20) NOT NULL,
PROJ_DESC BLOB SUB_TYPE TEXT SEGMENT SIZE 800,
TEAM_LEADER EMPNO,
PRODUCT PRODTYPE,
UNIQUE (PROJ_NAME),
PRIMARY KEY (PROJ_ID)
);
/* Table: PROJ_DEPT_BUDGET, Owner: SYSDBA */
CREATE TABLE PROJ_DEPT_BUDGET
(
FISCAL_YEAR INTEGER NOT NULL,
PROJ_ID PROJNO NOT NULL,
DEPT_NO DEPTNO NOT NULL,
QUART_HEAD_CNT INTEGER[1:4],
PROJECTED_BUDGET BUDGET,
PRIMARY KEY (FISCAL_YEAR, PROJ_ID, DEPT_NO)
);
/* Table: SALARY_HISTORY, Owner: SYSDBA */
CREATE TABLE SALARY_HISTORY
(
EMP_NO EMPNO NOT NULL,
CHANGE_DATE TIMESTAMP DEFAULT 'NOW' NOT NULL,
UPDATER_ID VARCHAR(20) NOT NULL,
OLD_SALARY SALARY NOT NULL,
PERCENT_CHANGE DOUBLE PRECISION DEFAULT 0 NOT NULL,
NEW_SALARY COMPUTED BY (old_salary + old_salary * percent_change / 100),
PRIMARY KEY (EMP_NO, CHANGE_DATE, UPDATER_ID)
);
/* Table: SALES, Owner: SYSDBA */
CREATE TABLE SALES
(
PO_NUMBER PONUMBER NOT NULL,
CUST_NO CUSTNO NOT NULL,
SALES_REP EMPNO,
ORDER_STATUS VARCHAR(7) DEFAULT 'new' NOT NULL,
ORDER_DATE TIMESTAMP DEFAULT 'NOW' NOT NULL,
SHIP_DATE TIMESTAMP,
DATE_NEEDED TIMESTAMP,
PAID CHAR(1) DEFAULT 'n',
QTY_ORDERED INTEGER DEFAULT 1 NOT NULL,
TOTAL_VALUE DECIMAL(9,2) NOT NULL,
DISCOUNT FLOAT DEFAULT 0 NOT NULL,
ITEM_TYPE PRODTYPE,
AGED COMPUTED BY (ship_date - order_date),
PRIMARY KEY (PO_NUMBER)
);
/* Index definitions for all user tables */
CREATE INDEX CUSTNAMEX ON CUSTOMER(CUSTOMER);
CREATE INDEX CUSTREGION ON CUSTOMER(COUNTRY, CITY);
CREATE DESCENDING INDEX BUDGETX ON DEPARTMENT(BUDGET);
CREATE INDEX NAMEX ON EMPLOYEE(LAST_NAME, FIRST_NAME);
CREATE DESCENDING INDEX MAXSALX ON JOB(JOB_COUNTRY, MAX_SALARY);
CREATE INDEX MINSALX ON JOB(JOB_COUNTRY, MIN_SALARY);
CREATE UNIQUE INDEX PRODTYPEX ON PROJECT(PRODUCT, PROJ_NAME);
CREATE DESCENDING INDEX CHANGEX ON SALARY_HISTORY(CHANGE_DATE);
CREATE INDEX UPDATERX ON SALARY_HISTORY(UPDATER_ID);
CREATE INDEX NEEDX ON SALES(DATE_NEEDED);
CREATE DESCENDING INDEX QTYX ON SALES(ITEM_TYPE, QTY_ORDERED);
CREATE INDEX SALESTATX ON SALES(ORDER_STATUS, PAID);
ALTER TABLE CUSTOMER ADD FOREIGN KEY (COUNTRY) REFERENCES COUNTRY (COUNTRY);
ALTER TABLE DEPARTMENT ADD FOREIGN KEY (HEAD_DEPT) REFERENCES DEPARTMENT (DEPT_NO);
ALTER TABLE DEPARTMENT ADD FOREIGN KEY (MNGR_NO) REFERENCES EMPLOYEE (EMP_NO);
ALTER TABLE EMPLOYEE ADD FOREIGN KEY (DEPT_NO) REFERENCES DEPARTMENT (DEPT_NO);
ALTER TABLE EMPLOYEE ADD FOREIGN KEY (JOB_CODE, JOB_GRADE, JOB_COUNTRY) REFERENCES JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY);
ALTER TABLE EMPLOYEE_PROJECT ADD FOREIGN KEY (EMP_NO) REFERENCES EMPLOYEE (EMP_NO);
ALTER TABLE EMPLOYEE_PROJECT ADD FOREIGN KEY (PROJ_ID) REFERENCES PROJECT (PROJ_ID);
ALTER TABLE JOB ADD FOREIGN KEY (JOB_COUNTRY) REFERENCES COUNTRY (COUNTRY);
ALTER TABLE PROJECT ADD FOREIGN KEY (TEAM_LEADER) REFERENCES EMPLOYEE (EMP_NO);
ALTER TABLE PROJ_DEPT_BUDGET ADD FOREIGN KEY (DEPT_NO) REFERENCES DEPARTMENT (DEPT_NO);
ALTER TABLE PROJ_DEPT_BUDGET ADD FOREIGN KEY (PROJ_ID) REFERENCES PROJECT (PROJ_ID);
ALTER TABLE SALARY_HISTORY ADD FOREIGN KEY (EMP_NO) REFERENCES EMPLOYEE (EMP_NO);
ALTER TABLE SALES ADD FOREIGN KEY (CUST_NO) REFERENCES CUSTOMER (CUST_NO);
ALTER TABLE SALES ADD FOREIGN KEY (SALES_REP) REFERENCES EMPLOYEE (EMP_NO);
CREATE SEQUENCE CUST_NO_GEN;
CREATE SEQUENCE EMP_NO_GEN;
/* View: PHONE_LIST, Owner: SYSDBA */
CREATE VIEW PHONE_LIST (
EMP_NO,
FIRST_NAME,
LAST_NAME,
PHONE_EXT,
LOCATION,
PHONE_NO
) AS
SELECT
emp_no, first_name, last_name, phone_ext, location, phone_no
FROM employee, department
WHERE employee.dept_no = department.dept_no
;
/* Add Domain Check Constraints */
ALTER DOMAIN BUDGET ADD CONSTRAINT
CHECK (VALUE > 10000 AND VALUE <= 2000000);
ALTER DOMAIN CUSTNO ADD CONSTRAINT
CHECK (VALUE > 1000);
ALTER DOMAIN DEPTNO ADD CONSTRAINT
CHECK (VALUE = '000' OR (VALUE > '0' AND VALUE <= '999') OR VALUE IS NULL);
ALTER DOMAIN JOBCODE ADD CONSTRAINT
CHECK (VALUE > '99999');
ALTER DOMAIN JOBGRADE ADD CONSTRAINT
CHECK (VALUE BETWEEN 0 AND 6);
ALTER DOMAIN PONUMBER ADD CONSTRAINT
CHECK (VALUE STARTING WITH 'V');
ALTER DOMAIN PRODTYPE ADD CONSTRAINT
CHECK (VALUE IN ('software', 'hardware', 'other', 'N/A'));
ALTER DOMAIN PROJNO ADD CONSTRAINT
CHECK (VALUE = UPPER (VALUE));
ALTER DOMAIN SALARY ADD CONSTRAINT
CHECK (VALUE > 0);
ALTER TABLE JOB ADD
CHECK (min_salary < max_salary);
ALTER TABLE EMPLOYEE ADD
CHECK ( salary >= (SELECT min_salary FROM job WHERE
job.job_code = employee.job_code AND
job.job_grade = employee.job_grade AND
job.job_country = employee.job_country) AND
salary <= (SELECT max_salary FROM job WHERE
job.job_code = employee.job_code AND
job.job_grade = employee.job_grade AND
job.job_country = employee.job_country));
ALTER TABLE PROJ_DEPT_BUDGET ADD
CHECK (FISCAL_YEAR >= 1993);
ALTER TABLE SALARY_HISTORY ADD
CHECK (percent_change between -50 and 50);
ALTER TABLE CUSTOMER ADD
CHECK (on_hold IS NULL OR on_hold = '*');
ALTER TABLE SALES ADD
CHECK (order_status in
('new', 'open', 'shipped', 'waiting'));
ALTER TABLE SALES ADD
CHECK (ship_date >= order_date OR ship_date IS NULL);
ALTER TABLE SALES ADD
CHECK (date_needed > order_date OR date_needed IS NULL);
ALTER TABLE SALES ADD
CHECK (paid in ('y', 'n'));
ALTER TABLE SALES ADD
CHECK (qty_ordered >= 1);
ALTER TABLE SALES ADD
CHECK (total_value >= 0);
ALTER TABLE SALES ADD
CHECK (discount >= 0 AND discount <= 1);
ALTER TABLE SALES ADD
CHECK (NOT (order_status = 'shipped' AND ship_date IS NULL));
ALTER TABLE SALES ADD
CHECK (NOT (order_status = 'shipped' AND
EXISTS (SELECT on_hold FROM customer
WHERE customer.cust_no = sales.cust_no
AND customer.on_hold = '*')));
/* Exceptions */
CREATE EXCEPTION CUSTOMER_CHECK 'Overdue balance -- can not ship.';
CREATE EXCEPTION CUSTOMER_ON_HOLD 'This customer is on hold.';
CREATE EXCEPTION ORDER_ALREADY_SHIPPED 'Order status is "shipped."';
CREATE EXCEPTION REASSIGN_SALES 'Reassign the sales records before deleting this employee.';
CREATE EXCEPTION UNKNOWN_EMP_ID 'Invalid employee number or project id.';
COMMIT WORK;
SET AUTODDL OFF;
SET TERM ^;
/* Stored procedures Definitions*/
CREATE PROCEDURE SHOW_LANGS
(
CODE VARCHAR(5) CHARACTER SET NONE,
GRADE SMALLINT,
CTY VARCHAR(15) CHARACTER SET NONE
)
RETURNS
(
LANGUAGES VARCHAR(15) CHARACTER SET NONE
)
AS BEGIN SUSPEND; EXIT; END
^
CREATE PROCEDURE ADD_EMP_PROJ
(
EMP_NO SMALLINT,
PROJ_ID CHAR(5) CHARACTER SET NONE
)
AS BEGIN SUSPEND; EXIT; END
^
CREATE PROCEDURE ALL_LANGS
RETURNS
(
CODE VARCHAR(5) CHARACTER SET NONE,
GRADE VARCHAR(5) CHARACTER SET NONE,
COUNTRY VARCHAR(15) CHARACTER SET NONE,
LANG VARCHAR(15) CHARACTER SET NONE
)
AS BEGIN SUSPEND; EXIT; END
^
CREATE PROCEDURE DELETE_EMPLOYEE
(
EMP_NUM INTEGER
)
AS BEGIN SUSPEND; EXIT; END
^
CREATE PROCEDURE DEPT_BUDGET
(
DNO CHAR(3) CHARACTER SET NONE
)
RETURNS
(
TOT DECIMAL(12,2)
)
AS BEGIN SUSPEND; EXIT; END
^
CREATE PROCEDURE GET_EMP_PROJ
(
EMP_NO SMALLINT
)
RETURNS
(
PROJ_ID CHAR(5) CHARACTER SET NONE
)
AS BEGIN SUSPEND; EXIT; END
^
CREATE PROCEDURE MAIL_LABEL
(
CUST_NO INTEGER
)
RETURNS
(
LINE1 CHAR(40) CHARACTER SET NONE,
LINE2 CHAR(40) CHARACTER SET NONE,
LINE3 CHAR(40) CHARACTER SET NONE,
LINE4 CHAR(40) CHARACTER SET NONE,
LINE5 CHAR(40) CHARACTER SET NONE,
LINE6 CHAR(40) CHARACTER SET NONE
)
AS BEGIN SUSPEND; EXIT; END
^
CREATE PROCEDURE ORG_CHART
RETURNS
(
HEAD_DEPT CHAR(25) CHARACTER SET NONE,
DEPARTMENT CHAR(25) CHARACTER SET NONE,
MNGR_NAME CHAR(20) CHARACTER SET NONE,
TITLE CHAR(5) CHARACTER SET NONE,
EMP_CNT INTEGER
)
AS BEGIN SUSPEND; EXIT; END
^
CREATE PROCEDURE SHIP_ORDER
(
PO_NUM CHAR(8) CHARACTER SET NONE
)
AS BEGIN SUSPEND; EXIT; END
^
CREATE PROCEDURE SUB_TOT_BUDGET
(
HEAD_DEPT CHAR(3) CHARACTER SET NONE
)
RETURNS
(
TOT_BUDGET DECIMAL(12,2),
AVG_BUDGET DECIMAL(12,2),
MIN_BUDGET DECIMAL(12,2),
MAX_BUDGET DECIMAL(12,2)
)
AS BEGIN SUSPEND; EXIT; END
^
SET TERM ;^
COMMIT WORK;
SET AUTODDL ON;
SET TERM ^;
/* Triggers only will work for SQL triggers */
CREATE TRIGGER SET_CUST_NO FOR CUSTOMER
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
if (new.cust_no is null) then
new.cust_no = gen_id(cust_no_gen, 1);
END
^
CREATE TRIGGER SET_EMP_NO FOR EMPLOYEE
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
if (new.emp_no is null) then
new.emp_no = gen_id(emp_no_gen, 1);
END
^
CREATE TRIGGER SAVE_SALARY_CHANGE FOR EMPLOYEE
ACTIVE AFTER UPDATE POSITION 0
AS
BEGIN
IF (old.salary <> new.salary) THEN
INSERT INTO salary_history
(emp_no, change_date, updater_id, old_salary, percent_change)
VALUES (
old.emp_no,
'NOW',
user,
old.salary,
(new.salary - old.salary) * 100 / old.salary);
END
^
CREATE TRIGGER POST_NEW_ORDER FOR SALES
ACTIVE AFTER INSERT POSITION 0
AS
BEGIN
POST_EVENT 'new_order';
END
^
COMMIT WORK^
SET TERM ;^
COMMIT WORK;
SET AUTODDL OFF;
SET TERM ^;
/* Stored procedure Bodies */
ALTER PROCEDURE SHOW_LANGS
(
CODE VARCHAR(5) CHARACTER SET NONE,
GRADE SMALLINT,
CTY VARCHAR(15) CHARACTER SET NONE
)
RETURNS
(
LANGUAGES VARCHAR(15) CHARACTER SET NONE
)
AS
DECLARE VARIABLE i INTEGER;
BEGIN
i = 1;
WHILE (i <= 5) DO
BEGIN
SELECT language_req[:i] FROM joB
WHERE ((job_code = :code) AND (job_grade = :grade) AND (job_country = :cty)
AND (language_req IS NOT NULL))
INTO :languages;
IF (languages = ' ') THEN /* Prints 'NULL' instead of blanks */
languages = 'NULL';
i = i +1;
SUSPEND;
END
END
^
ALTER PROCEDURE ADD_EMP_PROJ
(
EMP_NO SMALLINT,
PROJ_ID CHAR(5) CHARACTER SET NONE
)
AS
BEGIN
BEGIN
INSERT INTO employee_project (emp_no, proj_id) VALUES (:emp_no, :proj_id);
WHEN SQLCODE -530 DO
EXCEPTION unknown_emp_id;
END
SUSPEND;
END
^
ALTER PROCEDURE ALL_LANGS
RETURNS
(
CODE VARCHAR(5) CHARACTER SET NONE,
GRADE VARCHAR(5) CHARACTER SET NONE,
COUNTRY VARCHAR(15) CHARACTER SET NONE,
LANG VARCHAR(15) CHARACTER SET NONE
)
AS
BEGIN
FOR SELECT job_code, job_grade, job_country FROM job
INTO :code, :grade, :country
DO
BEGIN
FOR SELECT languages FROM show_langs
(:code, :grade, :country) INTO :lang DO
SUSPEND;
/* Put nice separators between rows */
code = '=====';
grade = '=====';
country = '===============';
lang = '==============';
SUSPEND;
END
END
^
ALTER PROCEDURE DELETE_EMPLOYEE
(
EMP_NUM INTEGER
)
AS
DECLARE VARIABLE any_sales INTEGER;
BEGIN
any_sales = 0;
/*
* If there are any sales records referencing this employee,
* can't delete the employee until the sales are re-assigned
* to another employee or changed to NULL.
*/
SELECT count(po_number)
FROM sales
WHERE sales_rep = :emp_num
INTO :any_sales;
IF (any_sales > 0) THEN
BEGIN
EXCEPTION reassign_sales;
SUSPEND;
END
/*
* If the employee is a manager, update the department.
*/
UPDATE department
SET mngr_no = NULL
WHERE mngr_no = :emp_num;
/*
* If the employee is a project leader, update project.
*/
UPDATE project
SET team_leader = NULL
WHERE team_leader = :emp_num;
/*
* Delete the employee from any projects.
*/
DELETE FROM employee_project
WHERE emp_no = :emp_num;
/*
* Delete old salary records.
*/
DELETE FROM salary_history
WHERE emp_no = :emp_num;
/*
* Delete the employee.
*/
DELETE FROM employee
WHERE emp_no = :emp_num;
SUSPEND;
END
^
ALTER PROCEDURE DEPT_BUDGET
(
DNO CHAR(3) CHARACTER SET NONE
)
RETURNS
(
TOT DECIMAL(12,2)
)
AS
DECLARE VARIABLE sumb DECIMAL(12, 2);
DECLARE VARIABLE rdno CHAR(3);
DECLARE VARIABLE cnt INTEGER;
BEGIN
tot = 0;
SELECT budget FROM department WHERE dept_no = :dno INTO :tot;
SELECT count(budget) FROM department WHERE head_dept = :dno INTO :cnt;
IF (cnt = 0) THEN
SUSPEND;
FOR SELECT dept_no
FROM department
WHERE head_dept = :dno
INTO :rdno
DO
BEGIN
EXECUTE PROCEDURE dept_budget :rdno RETURNING_VALUES :sumb;
tot = tot + sumb;
END
SUSPEND;
END
^
ALTER PROCEDURE GET_EMP_PROJ
(
EMP_NO SMALLINT
)
RETURNS
(
PROJ_ID CHAR(5) CHARACTER SET NONE
)
AS
BEGIN
FOR SELECT proj_id
FROM employee_project
WHERE emp_no = :emp_no
INTO :proj_id
DO
SUSPEND;
END
^
ALTER PROCEDURE MAIL_LABEL
(
CUST_NO INTEGER
)
RETURNS
(
LINE1 CHAR(40) CHARACTER SET NONE,
LINE2 CHAR(40) CHARACTER SET NONE,
LINE3 CHAR(40) CHARACTER SET NONE,
LINE4 CHAR(40) CHARACTER SET NONE,
LINE5 CHAR(40) CHARACTER SET NONE,
LINE6 CHAR(40) CHARACTER SET NONE
)
AS
DECLARE VARIABLE customer VARCHAR(25);
DECLARE VARIABLE first_name VARCHAR(15);
DECLARE VARIABLE last_name VARCHAR(20);
DECLARE VARIABLE addr1 VARCHAR(30);
DECLARE VARIABLE addr2 VARCHAR(30);
DECLARE VARIABLE city VARCHAR(25);
DECLARE VARIABLE state VARCHAR(15);
DECLARE VARIABLE country VARCHAR(15);
DECLARE VARIABLE postcode VARCHAR(12);
DECLARE VARIABLE cnt INTEGER;
BEGIN
line1 = '';
line2 = '';
line3 = '';
line4 = '';
line5 = '';
line6 = '';
SELECT customer, contact_first, contact_last, address_line1,
address_line2, city, state_province, country, postal_code
FROM CUSTOMER
WHERE cust_no = :cust_no
INTO :customer, :first_name, :last_name, :addr1, :addr2,
:city, :state, :country, :postcode;
IF (customer IS NOT NULL) THEN
line1 = customer;
IF (first_name IS NOT NULL) THEN
line2 = first_name || ' ' || last_name;
ELSE
line2 = last_name;
IF (addr1 IS NOT NULL) THEN
line3 = addr1;
IF (addr2 IS NOT NULL) THEN
line4 = addr2;
IF (country = 'USA') THEN
BEGIN
IF (city IS NOT NULL) THEN
line5 = city || ', ' || state || ' ' || postcode;
ELSE
line5 = state || ' ' || postcode;
END
ELSE
BEGIN
IF (city IS NOT NULL) THEN
line5 = city || ', ' || state;
ELSE
line5 = state;
line6 = country || ' ' || postcode;
END
SUSPEND;
END
^
ALTER PROCEDURE ORG_CHART
RETURNS
(
HEAD_DEPT CHAR(25) CHARACTER SET NONE,
DEPARTMENT CHAR(25) CHARACTER SET NONE,
MNGR_NAME CHAR(20) CHARACTER SET NONE,
TITLE CHAR(5) CHARACTER SET NONE,
EMP_CNT INTEGER
)
AS
DECLARE VARIABLE mngr_no INTEGER;
DECLARE VARIABLE dno CHAR(3);
BEGIN
FOR SELECT h.department, d.department, d.mngr_no, d.dept_no
FROM department d
LEFT OUTER JOIN department h ON d.head_dept = h.dept_no
ORDER BY d.dept_no
INTO :head_dept, :department, :mngr_no, :dno
DO
BEGIN
IF (:mngr_no IS NULL) THEN
BEGIN
mngr_name = '--TBH--';
title = '';
END
ELSE
SELECT full_name, job_code
FROM employee
WHERE emp_no = :mngr_no
INTO :mngr_name, :title;
SELECT COUNT(emp_no)
FROM employee
WHERE dept_no = :dno
INTO :emp_cnt;
SUSPEND;
END
END
^
ALTER PROCEDURE SHIP_ORDER
(
PO_NUM CHAR(8) CHARACTER SET NONE
)
AS
DECLARE VARIABLE ord_stat CHAR(7);
DECLARE VARIABLE hold_stat CHAR(1);
DECLARE VARIABLE cust_no INTEGER;
DECLARE VARIABLE any_po CHAR(8);
BEGIN
SELECT s.order_status, c.on_hold, c.cust_no
FROM sales s, customer c
WHERE po_number = :po_num
AND s.cust_no = c.cust_no
INTO :ord_stat, :hold_stat, :cust_no;
/* This purchase order has been already shipped. */
IF (ord_stat = 'shipped') THEN
BEGIN
EXCEPTION order_already_shipped;
SUSPEND;
END
/* Customer is on hold. */
ELSE IF (hold_stat = '*') THEN
BEGIN
EXCEPTION customer_on_hold;
SUSPEND;
END
/*
* If there is an unpaid balance on orders shipped over 2 months ago,
* put the customer on hold.
*/
FOR SELECT po_number
FROM sales
WHERE cust_no = :cust_no
AND order_status = 'shipped'
AND paid = 'n'
AND ship_date < CAST('NOW' AS TIMESTAMP) - 60
INTO :any_po
DO
BEGIN
EXCEPTION customer_check;
UPDATE customer
SET on_hold = '*'
WHERE cust_no = :cust_no;
SUSPEND;
END
/*
* Ship the order.
*/
UPDATE sales
SET order_status = 'shipped', ship_date = 'NOW'
WHERE po_number = :po_num;
SUSPEND;
END
^
ALTER PROCEDURE SUB_TOT_BUDGET
(
HEAD_DEPT CHAR(3) CHARACTER SET NONE
)
RETURNS
(
TOT_BUDGET DECIMAL(12,2),
AVG_BUDGET DECIMAL(12,2),
MIN_BUDGET DECIMAL(12,2),
MAX_BUDGET DECIMAL(12,2)
)
AS
BEGIN
SELECT SUM(budget), AVG(budget), MIN(budget), MAX(budget)
FROM department
WHERE head_dept = :head_dept
INTO :tot_budget, :avg_budget, :min_budget, :max_budget;
SUSPEND;
END
^
SET TERM ;^
COMMIT WORK;
SET AUTODDL ON;
/* Comments on System Objects */
/* Grant Roles for this database */
/* Grant permissions for this database */
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE COUNTRY TO USER PUBLIC WITH GRANT OPTION ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE CUSTOMER TO USER PUBLIC WITH GRANT OPTION ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE DEPARTMENT TO USER PUBLIC WITH GRANT OPTION ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE EMPLOYEE TO USER PUBLIC WITH GRANT OPTION ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE EMPLOYEE_PROJECT TO USER PUBLIC WITH GRANT OPTION ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE JOB TO USER PUBLIC WITH GRANT OPTION ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE PHONE_LIST TO USER PUBLIC WITH GRANT OPTION ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE PROJECT TO USER PUBLIC WITH GRANT OPTION ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE PROJ_DEPT_BUDGET TO USER PUBLIC WITH GRANT OPTION ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE SALARY_HISTORY TO USER PUBLIC WITH GRANT OPTION ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE SALES TO USER PUBLIC WITH GRANT OPTION ;
GRANT EXECUTE ON PROCEDURE ADD_EMP_PROJ TO USER PUBLIC WITH GRANT OPTION ;
GRANT EXECUTE ON PROCEDURE ALL_LANGS TO USER PUBLIC WITH GRANT OPTION ;
GRANT EXECUTE ON PROCEDURE DELETE_EMPLOYEE TO USER PUBLIC WITH GRANT OPTION ;
GRANT EXECUTE ON PROCEDURE DEPT_BUDGET TO USER PUBLIC WITH GRANT OPTION ;
GRANT EXECUTE ON PROCEDURE GET_EMP_PROJ TO USER PUBLIC WITH GRANT OPTION ;
GRANT EXECUTE ON PROCEDURE MAIL_LABEL TO USER PUBLIC WITH GRANT OPTION ;
GRANT EXECUTE ON PROCEDURE ORG_CHART TO USER PUBLIC WITH GRANT OPTION ;
GRANT EXECUTE ON PROCEDURE SHIP_ORDER TO USER PUBLIC WITH GRANT OPTION ;
GRANT EXECUTE ON PROCEDURE SHOW_LANGS TO USER PUBLIC WITH GRANT OPTION ;
GRANT EXECUTE ON PROCEDURE SUB_TOT_BUDGET TO USER PUBLIC WITH GRANT OPTION ;
------------------------------------------------------
Running Test 10: Create Database from SQL Script and Extract SQL
Creating Database from resources/Test10.11.sql
/* Script for ODS 11 */
SET SQL DIALECT 3;
SET AUTODDL ON;
CREATE DATABASE 'inet://localhost//tmp/ibx-testsuite/testsuite1.fdb' PAGE_SIZE 8192
DEFAULT CHARACTER SET NONE;
COMMENT ON DATABASE IS 'Employee Test DB';
/* Domain definitions */
CREATE DOMAIN ADDRESSLINE AS VARCHAR(30);
CREATE DOMAIN BUDGET AS DECIMAL(12,2)
DEFAULT 50000;
CREATE DOMAIN COUNTRYNAME AS VARCHAR(15);
CREATE DOMAIN CUSTNO AS INTEGER;
CREATE DOMAIN DEPTNO AS CHAR(3);
CREATE DOMAIN EMPNO AS SMALLINT;
CREATE DOMAIN FB$OUT_TYPE AS BLOB SUB_TYPE TEXT SEGMENT SIZE 80 NOT NULL;
CREATE DOMAIN FIRSTNAME AS VARCHAR(15);
CREATE DOMAIN JOBCODE AS VARCHAR(5);
CREATE DOMAIN JOBGRADE AS SMALLINT;
CREATE DOMAIN LASTNAME AS VARCHAR(20);
CREATE DOMAIN PHONENUMBER AS VARCHAR(20);
CREATE DOMAIN PONUMBER AS CHAR(8);
CREATE DOMAIN PRODTYPE AS VARCHAR(12)
DEFAULT 'software' NOT NULL;
CREATE DOMAIN PROJNO AS CHAR(5);
CREATE DOMAIN SALARY AS NUMERIC(10,2)
DEFAULT 0;
/* Table: COUNTRIES, Owner: SYSDBA */
CREATE TABLE COUNTRIES
(
COUNTRY VARCHAR(64) NOT NULL,
NONEU SMALLINT,
ISO2 CHAR(2),
ISO3 CHAR(3),
PRIMARY KEY (COUNTRY)
);
COMMENT ON TABLE COUNTRIES IS 'List of Countries';
COMMENT ON COLUMN COUNTRIES.ISO2 IS 'Two Character ISO Country Code';
/* Table: COUNTRY, Owner: SYSDBA */
CREATE TABLE COUNTRY
(
COUNTRY COUNTRYNAME NOT NULL,
CURRENCY VARCHAR(10) NOT NULL,
PRIMARY KEY (COUNTRY)
);
/* Table: CUSTOMER, Owner: SYSDBA */
CREATE TABLE CUSTOMER
(
CUST_NO CUSTNO NOT NULL,
CUSTOMER VARCHAR(25) NOT NULL,
CONTACT_FIRST FIRSTNAME,
CONTACT_LAST LASTNAME,
PHONE_NO PHONENUMBER,
ADDRESS_LINE1 ADDRESSLINE,
ADDRESS_LINE2 ADDRESSLINE,
CITY VARCHAR(25),
STATE_PROVINCE VARCHAR(15),
COUNTRY COUNTRYNAME,
POSTAL_CODE VARCHAR(12),
ON_HOLD CHAR(1) DEFAULT NULL,
LONG_REFERENCE BIGINT,
PRIMARY KEY (CUST_NO)
);
/* Table: DEPARTMENT, Owner: SYSDBA */
CREATE TABLE DEPARTMENT
(
DEPT_NO DEPTNO NOT NULL,
DEPARTMENT VARCHAR(25) NOT NULL,
HEAD_DEPT DEPTNO,
MNGR_NO EMPNO,
BUDGET BUDGET,
LOCATION VARCHAR(15),
PHONE_NO PHONENUMBER DEFAULT '555-1234',
UNIQUE (DEPARTMENT),
PRIMARY KEY (DEPT_NO)
);
/* Table: EMPLOYEE, Owner: SYSDBA */
CREATE TABLE EMPLOYEE
(
EMP_NO EMPNO NOT NULL,
FIRST_NAME FIRSTNAME NOT NULL,
LAST_NAME LASTNAME NOT NULL,
PHONE_EXT VARCHAR(4),
HIRE_DATE TIMESTAMP DEFAULT 'NOW' NOT NULL,
DEPT_NO DEPTNO NOT NULL,
JOB_CODE JOBCODE NOT NULL,
JOB_GRADE JOBGRADE NOT NULL,
JOB_COUNTRY COUNTRYNAME NOT NULL,
SALARY SALARY NOT NULL,
FULL_NAME COMPUTED BY (last_name || ', ' || first_name),
PRIMARY KEY (EMP_NO)
);
/* Table: EMPLOYEE_PROJECT, Owner: SYSDBA */
CREATE TABLE EMPLOYEE_PROJECT
(
EMP_NO EMPNO NOT NULL,
PROJ_ID PROJNO NOT NULL,
PRIMARY KEY (EMP_NO, PROJ_ID)
);
/* Table: FB$OUT_TABLE, Owner: SYSDBA */
CREATE GLOBAL TEMPORARY TABLE FB$OUT_TABLE
(
LINE_NUM INTEGER,
CONTENT FB$OUT_TYPE
) ON COMMIT PRESERVE ROWS ;
/* Table: JOB, Owner: SYSDBA */
CREATE TABLE JOB
(
JOB_CODE JOBCODE NOT NULL,
JOB_GRADE JOBGRADE NOT NULL,
JOB_COUNTRY COUNTRYNAME NOT NULL,
JOB_TITLE VARCHAR(25) NOT NULL,
MIN_SALARY SALARY NOT NULL,
MAX_SALARY SALARY NOT NULL,
JOB_REQUIREMENT BLOB SUB_TYPE TEXT SEGMENT SIZE 400,
LANGUAGE_REQ VARCHAR(15)[1:5],
PRIMARY KEY (JOB_CODE, JOB_GRADE, JOB_COUNTRY)
);
/* Table: PROJECT, Owner: SYSDBA */
CREATE TABLE PROJECT
(
PROJ_ID PROJNO NOT NULL,
PROJ_NAME VARCHAR(20) NOT NULL,
PROJ_DESC BLOB SUB_TYPE TEXT SEGMENT SIZE 800,
TEAM_LEADER EMPNO,
PRODUCT PRODTYPE,
UNIQUE (PROJ_NAME),
PRIMARY KEY (PROJ_ID)
);
/* Table: PROJ_DEPT_BUDGET, Owner: SYSDBA */
CREATE TABLE PROJ_DEPT_BUDGET
(
FISCAL_YEAR INTEGER NOT NULL,
PROJ_ID PROJNO NOT NULL,
DEPT_NO DEPTNO NOT NULL,
QUART_HEAD_CNT INTEGER[1:4],
PROJECTED_BUDGET BUDGET,
PRIMARY KEY (FISCAL_YEAR, PROJ_ID, DEPT_NO)
);
/* Table: SALARY_HISTORY, Owner: SYSDBA */
CREATE TABLE SALARY_HISTORY
(
EMP_NO EMPNO NOT NULL,
CHANGE_DATE TIMESTAMP DEFAULT 'NOW' NOT NULL,
UPDATER_ID VARCHAR(20) NOT NULL,
OLD_SALARY SALARY NOT NULL,
PERCENT_CHANGE DOUBLE PRECISION DEFAULT 0 NOT NULL,
NEW_SALARY COMPUTED BY (old_salary + old_salary * percent_change / 100),
PRIMARY KEY (EMP_NO, CHANGE_DATE, UPDATER_ID)
);
/* Table: SALES, Owner: SYSDBA */
CREATE TABLE SALES
(
PO_NUMBER PONUMBER NOT NULL,
CUST_NO CUSTNO NOT NULL,
SALES_REP EMPNO,
ORDER_STATUS VARCHAR(7) DEFAULT 'new' NOT NULL,
ORDER_DATE TIMESTAMP DEFAULT 'NOW' NOT NULL,
SHIP_DATE TIMESTAMP,
DATE_NEEDED TIMESTAMP,
PAID CHAR(1) DEFAULT 'n',
QTY_ORDERED INTEGER DEFAULT 1 NOT NULL,
TOTAL_VALUE DECIMAL(9,2) NOT NULL,
DISCOUNT FLOAT DEFAULT 0 NOT NULL,
ITEM_TYPE PRODTYPE,
AGED COMPUTED BY (ship_date - order_date),
PRIMARY KEY (PO_NUMBER)
);
/* External Function declarations */
DECLARE EXTERNAL FUNCTION ADDDAY
TIMESTAMP, INTEGER
RETURNS TIMESTAMP
ENTRY_POINT 'addDay' MODULE_NAME 'fbudf'
;
DECLARE EXTERNAL FUNCTION I64TRUNCATE
NUMERIC(18,0) BY DESCRIPTOR, NUMERIC(18,0) BY DESCRIPTOR
RETURNS PARAMETER 2
ENTRY_POINT 'fbtruncate' MODULE_NAME 'fbudf'
;
DECLARE EXTERNAL FUNCTION TESTIT
TIMESTAMP, INTEGER NULL, CSTRING(10) CHARACTER SET NONE, CSTRING(10) CHARACTER SET NONE BY DESCRIPTOR
RETURNS CSTRING(32) CHARACTER SET NONE FREE_IT
ENTRY_POINT 'testit' MODULE_NAME 'fbudf'
;
/* Data Starts */
/* Inserting data into Table: COUNTRY */
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('USA','Dollar');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('England','Pound');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Canada','CdnDlr');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Switzerland','SFranc');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Japan','Yen');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Italy','Euro');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('France','Euro');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Germany','Euro');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Australia','ADollar');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Hong Kong','HKDollar');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Netherlands','Euro');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Belgium','Euro');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Austria','Euro');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Fiji','FDollar');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Russia','Ruble');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Romania','RLeu');
COMMIT;
/* Inserting data into Table: CUSTOMER */
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1001,'Signature Design','Dale J.','Little','(619) 530-2710','15500 Pacific Heights Blvd.',NULL,'San Diego','CA','USA','92121',NULL,NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1002,'Dallas Technologies','Glen','Brown','(214) 960-2233','P. O. Box 47000',NULL,'Dallas','TX','USA','75205','*',NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1003,'Buttle, Griffith and Co.','James','Buttle','(617) 488-1864','2300 Newbury Street','Suite 101','Boston','MA','USA','02115',NULL,NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1004,'Central Bank','Elizabeth','Brocket','61 211 99 88','66 Lloyd Street',NULL,'Manchester',NULL,'England','M2 3LA',NULL,NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1005,'DT Systems, LTD.','Tai','Wu','(852) 850 43 98','400 Connaught Road',NULL,'Central Hong Kong',NULL,'Hong Kong',NULL,NULL,NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1006,'DataServe International','Tomas','Bright','(613) 229 3323','2000 Carling Avenue','Suite 150','Ottawa','ON','Canada','K1V 9G1',NULL,NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1007,'Mrs. Beauvais',NULL,'Mrs. Beauvais',NULL,'P.O. Box 22743',NULL,'Pebble Beach','CA','USA','93953',NULL,NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1008,'Anini Vacation Rentals','Leilani','Briggs','(808) 835-7605','3320 Lawai Road',NULL,'Lihue','HI','USA','96766',NULL,NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1009,'Max','Max',NULL,'22 01 23','1 Emerald Cove',NULL,'Turtle Island',NULL,'Fiji',NULL,'*',NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1010,'MPM Corporation','Miwako','Miyamoto','3 880 77 19','2-64-7 Sasazuka',NULL,'Tokyo',NULL,'Japan','150',NULL,NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1011,'Dynamic Intelligence Corp','Victor','Granges','01 221 16 50','Florhofgasse 10',NULL,'Zurich',NULL,'Switzerland','8005',NULL,NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1012,'3D-Pad Corp.','Michelle','Roche','1 43 60 61','22 Place de la Concorde',NULL,'Paris',NULL,'France','75008',NULL,NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1013,'Lorenzi Export, Ltd.','Andreas','Lorenzi','02 404 6284','Via Eugenia, 15',NULL,'Milan',NULL,'Italy','20124',NULL,NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1014,'Dyno Consulting','Greta','Hessels','02 500 5940','Rue Royale 350',NULL,'Brussels',NULL,'Belgium','1210',NULL,NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1015,'GeoTech Inc.','K.M.','Neppelenbroek','(070) 44 91 18','P.0.Box 702',NULL,'Den Haag',NULL,'Netherlands','2514',NULL,NULL);
COMMIT;
/* Inserting data into Table: DEPARTMENT */
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('000','Corporate Headquarters',NULL,105,1000000,'Monterey','(408) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('100','Sales and Marketing','000',85,2000000,'San Francisco','(415) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('600','Engineering','000',2,1100000,'Monterey','(408) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('900','Finance','000',46,400000,'Monterey','(408) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('180','Marketing','100',NULL,1500000,'San Francisco','(415) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('620','Software Products Div.','600',NULL,1200000,'Monterey','(408) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('621','Software Development','620',NULL,400000,'Monterey','(408) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('622','Quality Assurance','620',9,300000,'Monterey','(408) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('623','Customer Support','620',15,650000,'Monterey','(408) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('670','Consumer Electronics Div.','600',107,1150000,'Burlington, VT','(802) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('671','Research and Development','670',20,460000,'Burlington, VT','(802) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('672','Customer Services','670',94,850000,'Burlington, VT','(802) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('130','Field Office: East Coast','100',11,500000,'Boston','(617) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('140','Field Office: Canada','100',72,500000,'Toronto','(416) 677-1000');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('110','Pacific Rim Headquarters','100',34,600000,'Kuaui','(808) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('115','Field Office: Japan','110',118,500000,'Tokyo','3 5350 0901');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('116','Field Office: Singapore','110',NULL,300000,'Singapore','3 55 1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('120','European Headquarters','100',36,700000,'London','71 235-4400');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('121','Field Office: Switzerland','120',141,500000,'Zurich','1 211 7767');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('123','Field Office: France','120',134,400000,'Cannes','58 68 11 12');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('125','Field Office: Italy','120',121,400000,'Milan','2 430 39 39');
COMMIT;
/* Inserting data into Table: EMPLOYEE */
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(2,'Robert','Nelson','250','1988.12.28 00:00:00.000','600','VP',2,'USA',105900);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(4,'Bruce','Young','233','1988.12.28 00:00:00.000','621','Eng',2,'USA',97500);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(5,'Kim','Lambert','22','1989.02.06 00:00:00.000','130','Eng',2,'USA',102750);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(8,'Leslie','Johnson','410','1989.04.05 00:00:00.000','180','Mktg',3,'USA',64635);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(9,'Phil','Forest','229','1989.04.17 00:00:00.000','622','Mngr',3,'USA',75060);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(11,'K. J.','Weston','34','1990.01.17 00:00:00.000','130','SRep',4,'USA',86292.94);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(12,'Terri','Lee','256','1990.05.01 00:00:00.000','000','Admin',4,'USA',53793);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(14,'Stewart','Hall','227','1990.06.04 00:00:00.000','900','Finan',3,'USA',69482.63);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(15,'Katherine','Young','231','1990.06.14 00:00:00.000','623','Mngr',3,'USA',67241.25);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(20,'Chris','Papadopoulos','887','1990.01.01 00:00:00.000','671','Mngr',3,'USA',89655);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(24,'Pete','Fisher','888','1990.09.12 00:00:00.000','671','Eng',3,'USA',81810.19);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(28,'Ann','Bennet','5','1991.02.01 00:00:00.000','120','Admin',5,'England',22935);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(29,'Roger','De Souza','288','1991.02.18 00:00:00.000','623','Eng',3,'USA',69482.63);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(34,'Janet','Baldwin','2','1991.03.21 00:00:00.000','110','Sales',3,'USA',61637.8);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(36,'Roger','Reeves','6','1991.04.25 00:00:00.000','120','Sales',3,'England',33620.63);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(37,'Willie','Stansbury','7','1991.04.25 00:00:00.000','120','Eng',4,'England',39224.06);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(44,'Leslie','Phong','216','1991.06.03 00:00:00.000','623','Eng',4,'USA',56034.38);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(45,'Ashok','Ramanathan','209','1991.08.01 00:00:00.000','621','Eng',3,'USA',80689.5);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(46,'Walter','Steadman','210','1991.08.09 00:00:00.000','900','CFO',1,'USA',116100);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(52,'Carol','Nordstrom','420','1991.10.02 00:00:00.000','180','PRel',4,'USA',42742.5);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(61,'Luke','Leung','3','1992.02.18 00:00:00.000','110','SRep',4,'USA',68805);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(65,'Sue Anne','O''Brien','877','1992.03.23 00:00:00.000','670','Admin',5,'USA',31275);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(71,'Jennifer M.','Burbank','289','1992.04.15 00:00:00.000','622','Eng',3,'USA',53167.5);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(72,'Claudia','Sutherland',NULL,'1992.04.20 00:00:00.000','140','SRep',4,'Canada',100914);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(83,'Dana','Bishop','290','1992.06.02 00:00:00.000','621','Eng',3,'USA',62550.02);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(85,'Mary S.','MacDonald','477','1992.06.01 00:00:00.000','100','VP',2,'USA',111262.5);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(94,'Randy','Williams','892','1992.08.08 00:00:00.000','672','Mngr',4,'USA',56295);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(105,'Oliver H A','Bender','255','1992.10.08 00:00:00.000','000','CEO',1,'USA',212850);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(107,'Kevin','Cook','894','1993.02.01 00:00:00.000','670','Dir',2,'USA',111262.5);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(109,'Kelly','Brown','202','1993.02.04 00:00:00.000','600','Admin',5,'USA',27000.01);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(110,'Yuki','Ichida','22','1993.02.04 00:00:00.000','115','Eng',3,'Japan',6000000);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(113,'Mary','Page','845','1993.04.12 00:00:00.000','671','Eng',4,'USA',48000);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(114,'Bill','Parker','247','1993.06.01 00:00:00.000','623','Eng',5,'USA',35000);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(118,'Takashi','Yamamoto','23','1993.07.01 00:00:00.000','115','SRep',4,'Japan',7480000);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(121,'Roberto','Ferrari','1','1993.07.12 00:00:00.000','125','SRep',4,'USA',33000.01);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(127,'Michael','Yanowski','492','1993.08.09 00:00:00.000','100','SRep',4,'USA',44000);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(134,'Jacques','Glon',NULL,'1993.08.23 00:00:00.000','123','SRep',4,'France',38500);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(136,'Scott','Johnson','265','1993.09.13 00:00:00.000','623','Doc',3,'USA',60000);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(138,'T.J.','Green','218','1993.11.01 00:00:00.000','621','Eng',4,'USA',36000);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(141,'Pierre','Osborne',NULL,'1994.01.03 00:00:00.000','121','SRep',4,'Switzerland',110000);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(144,'John','Montgomery','820','1994.03.30 00:00:00.000','672','Eng',5,'USA',35000);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(145,'Mark','Guckenheimer','221','1994.05.02 00:00:00.000','622','Eng',5,'USA',32000);
COMMIT;
/* Inserting data into Table: EMPLOYEE_PROJECT */
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(144,'DGPII');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(113,'DGPII');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(24,'DGPII');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(8,'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(136,'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(15,'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(71,'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(145,'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(44,'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(4,'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(83,'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(138,'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(45,'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(20,'GUIDE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(24,'GUIDE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(113,'GUIDE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(8,'GUIDE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(4,'MAPDB');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(71,'MAPDB');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(46,'MKTPR');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(105,'MKTPR');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(12,'MKTPR');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(85,'MKTPR');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(110,'MKTPR');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(34,'MKTPR');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(8,'MKTPR');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(14,'MKTPR');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(52,'MKTPR');
COMMIT;
/* Inserting data into Table: JOB */
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('CEO',1,'USA','Chief Executive Officer',130000,250000,'No specific requirements.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('CFO',1,'USA','Chief Financial Officer',85000,140000,'15+ years in finance or 5+ years as a CFO
with a proven track record.
MBA or J.D. degree.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('VP',2,'USA','Vice President',80000,130000,'No specific requirements.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Dir',2,'USA','Director',75000,120000,'5-10 years as a director in computer or electronics industries.
An advanced degree.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Mngr',3,'USA','Manager',60000,100000,'BA/BS required.
3-5 years in management,
plus 2-4 years engineering experience.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Mngr',4,'USA','Manager',30000,60000,'5+ years office management experience.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Admin',4,'USA','Administrative Assistant',35000,55000,'3-5 years experience in executive environment.
Strong organizational and communication skills required.
BA degree preferred.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Admin',5,'USA','Administrative Assistant',20000,40000,'2-4 years clerical experience.
Facility with word processing and data entry.
AA degree preferred.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Admin',5,'England','Administrative Assistant',13400,26800,NULL,NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('PRel',4,'USA','Public Relations Rep.',25000,65000,NULL,NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Mktg',3,'USA','Marketing Analyst',40000,80000,'MBA required.
10+ years experience in high tech environment.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Mktg',4,'USA','Marketing Analyst',20000,50000,'BA/BS required. MBA preferred.
3-5 years experience.
Knowledgeable with spreadsheets and databases.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Accnt',4,'USA','Accountant',28000,55000,'CPA with 3-5 years experience.
Spreadsheet, data entry, and word processing knowledge required.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Finan',3,'USA','Financial Analyst',35000,85000,'5-10 years of accounting and financial experience.
Strong analytical skills.
CPA/MBA required.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Eng',2,'USA','Engineer',70000,110000,'Distinguished engineer.
Ph.D/MS/BS or equivalent experience.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Eng',3,'USA','Engineer',50000,90000,'5+ years experience.
BA/BS required.
MS degree preferred.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Eng',3,'Japan','Engineer',5400000,9720000,'5+ years experience.
BA/BS and/or MS degrees required.
Customer support experience desired.
Knowledge of Japanese and English.
',
Japanese
Mandarin
English
);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Eng',4,'USA','Engineer',30000,65000,'BA/BS and 3-5 years experience.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Eng',4,'England','Engineer',20100,43550,'BA/BS and
2-4 years experience in technical support.
Knowledge of several European languages helpful.
',
English
German
French
);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Eng',5,'USA','Engineer',25000,35000,'BA/BS preferred.
2-4 years technical experience.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Doc',3,'USA','Technical Writer',38000,60000,'4+ years writing highly technical
software documentation.
A bachelor''s degree or equivalent.
Programming experience required.
Excellent language skills.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Doc',5,'USA','Technical Writer',22000,40000,'BA in English/journalism or excellent language skills.
Some programming experience required.
2-4 years of technical writing.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Sales',3,'USA','Sales Co-ordinator',40000,70000,'Experience in sales and public relations
in a high tech environment.
Excellent communication skills.
BA or equivalent.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Sales',3,'England','Sales Co-ordinator',26800,46900,'Experience in sales and public relations
in a high tech environment.
Excellent communication skills.
BA or equivalent.
Knowledge of several European languages helpful.
',
English
German
French
);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'USA','Sales Representative',20000,100000,'Computer/electronics industry sales experience.
Excellent communications, negotiation, and analytical skills.
Experience in establishing long term customer relationships.
Some knowledge of Spanish required.
Travel required.
',
English
Spanish
);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'England','Sales Representative',13400,67000,'Computer/electronics industry sales experience.
Excellent communications, negotiation, and analytical skills.
Experience in establishing long term customer relationships.
Knowledge of several European languages helpful.
Travel required.
',
English
German
French
);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'Canada','Sales Representative',26400,132000,'Computer/electronics industry sales experience.
Excellent communications, negotiation, and analytical skills.
Experience in establishing long term customer relationships.
Travel required.
English plus speaking knowledge of French required.
',
English
French
);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'Switzerland','Sales Representative',28000,149000,'Computer/electronics industry sales experience.
Excellent communications, negotiation, and analytical skills.
Experience in establishing long term customer relationships.
Knowledge of German required; one or more other European language helpful.
Travel required.
',
German
French
English
Italian
);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'Japan','Sales Representative',2160000,10800000,'Computer/electronics industry sales experience.
Excellent communications, negotiation, and analytical skills.
Experience in establishing long term customer relationships.
Knowledge of Japanese required.
Travel required.
',
Japanese
English
);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'Italy','Sales Representative',20000,100000,'Computer/electronics industry sales experience.
Excellent communications, negotiation, and analytical skills.
Experience in establishing long term customer relationships.
Fluency in Italian; some knowledge of German helpful.
Travel required.
',
Italian
German
French
);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'France','Sales Representative',20000,100000,'Computer/electronics industry sales experience.
Excellent communications, negotiation, and analytical skills.
Experience in establishing long term customer relationships.
Fluency in French; some knowledge of German/Spanish helpful.
Travel required.
',
English
French
Spanish
);
COMMIT;
/* Inserting data into Table: PROJECT */
INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('VBASE','Video Database','Design a video data base management system for
controlling on-demand video distribution.
',45,'software');
INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('DGPII','DigiPizza','Develop second generation digital pizza maker
with flash-bake heating element and
digital ingredient measuring system.
',24,'other');
INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('GUIDE','AutoMap','Develop a prototype for the automobile version of
the hand-held map browsing device.
',20,'hardware');
INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('MAPDB','MapBrowser port','Port the map browsing database software to run
on the automobile model.
',4,'software');
INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('HWRII','Translator upgrade','Integrate the hand-writing recognition module into the
universal language translator.
',NULL,'software');
INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('MKTPR','Marketing project 3','Expand marketing and sales in the Pacific Rim.
Set up a field office in Australia and Singapore.
',85,'N/A');
COMMIT;
/* Inserting data into Table: PROJ_DEPT_BUDGET */
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'GUIDE','100',
1
1
1
0
,200000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'GUIDE','671',
3
2
1
0
,450000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1993,'MAPDB','621',
0
0
0
1
,20000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MAPDB','621',
2
1
0
0
,40000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MAPDB','622',
1
1
0
0
,60000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MAPDB','671',
1
1
0
0
,11000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'HWRII','670',
1
1
1
1
,20000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'HWRII','621',
2
3
2
1
,400000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'HWRII','622',
1
1
2
2
,100000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MKTPR','623',
1
1
1
2
,80000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MKTPR','672',
1
1
1
2
,100000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MKTPR','100',
4
5
6
6
,1000000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MKTPR','110',
2
2
0
3
,200000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MKTPR','000',
1
1
2
2
,100000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1995,'MKTPR','623',
7
7
4
4
,1200000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1995,'MKTPR','672',
2
3
3
3
,800000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1995,'MKTPR','100',
4
5
6
6
,2000000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1995,'MKTPR','110',
1
1
1
1
,1200000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'VBASE','621',
4
5
5
3
,1900000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1995,'VBASE','621',
4
3
2
2
,900000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'VBASE','622',
2
2
2
1
,400000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'VBASE','100',
1
1
2
3
,300000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1995,'VBASE','100',
3
3
1
1
,1500000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1996,'VBASE','100',
1
1
0
0
,150000);
COMMIT;
/* Inserting data into Table: SALARY_HISTORY */
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(28,'1992.12.15 00:00:00.000','admin2',20000,10);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(2,'1992.12.15 00:00:00.000','admin2',98000,8.0612);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(4,'1992.12.15 00:00:00.000','admin2',90000,8.3333);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(5,'1992.12.15 00:00:00.000','admin2',95000,8.1578);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(11,'1992.12.15 00:00:00.000','admin2',70000,7.5);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(12,'1992.12.15 00:00:00.000','admin2',48000,7.5);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(14,'1992.12.15 00:00:00.000','admin2',62000,7.5);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(15,'1992.12.15 00:00:00.000','admin2',60000,7.5);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(20,'1992.12.15 00:00:00.000','admin2',80000,7.5);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(24,'1992.12.15 00:00:00.000','admin2',73000,7.5);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(29,'1992.12.15 00:00:00.000','admin2',62000,7.5);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(34,'1992.12.15 00:00:00.000','admin2',55000,7.5);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(36,'1992.12.15 00:00:00.000','admin2',30000,7.5);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(37,'1992.12.15 00:00:00.000','admin2',35000,7.5);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(44,'1992.12.15 00:00:00.000','admin2',50000,7.5);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(45,'1992.12.15 00:00:00.000','admin2',72000,7.5);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(8,'1993.09.08 00:00:00.000','elaine',62000,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(9,'1993.09.08 00:00:00.000','elaine',72000,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(11,'1993.09.08 00:00:00.000','elaine',75250,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(12,'1993.09.08 00:00:00.000','elaine',51600,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(14,'1993.09.08 00:00:00.000','elaine',66650,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(15,'1993.09.08 00:00:00.000','elaine',64500,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(20,'1993.09.08 00:00:00.000','elaine',86000,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(24,'1993.09.08 00:00:00.000','elaine',78475,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(28,'1993.09.08 00:00:00.000','elaine',22000,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(29,'1993.09.08 00:00:00.000','elaine',66650,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(34,'1993.09.08 00:00:00.000','elaine',59125,4.2499);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(36,'1993.09.08 00:00:00.000','elaine',32250,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(37,'1993.09.08 00:00:00.000','elaine',37625,4.2499);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(44,'1993.09.08 00:00:00.000','elaine',53750,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(45,'1993.09.08 00:00:00.000','elaine',77400,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(52,'1993.09.08 00:00:00.000','elaine',41000,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(61,'1993.09.08 00:00:00.000','elaine',60000,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(65,'1993.09.08 00:00:00.000','elaine',30000,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(71,'1993.09.08 00:00:00.000','elaine',51000,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(72,'1993.09.08 00:00:00.000','elaine',88000,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(83,'1993.09.08 00:00:00.000','elaine',60000,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(94,'1993.09.08 00:00:00.000','elaine',54000,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(46,'1993.12.20 00:00:00.000','tj',120000,-3.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(85,'1993.12.20 00:00:00.000','tj',115000,-3.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(105,'1993.12.20 00:00:00.000','tj',220000,-3.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(107,'1993.12.20 00:00:00.000','tj',115000,-3.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(11,'1993.12.20 00:00:00.000','elaine',78448.13,9.9999);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(61,'1993.12.20 00:00:00.000','elaine',62550,10);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(72,'1993.12.20 00:00:00.000','elaine',91740,10);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(118,'1993.12.20 00:00:00.000','elaine',6800000,10);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(121,'1993.12.20 00:00:00.000','elaine',30000,10);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(127,'1993.12.20 00:00:00.000','elaine',40000,10);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(134,'1993.12.20 00:00:00.000','elaine',35000,10);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(28,'2017.11.06 16:46:27.145','SYSDBA',22935,0);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(28,'2017.11.06 16:47:01.376','SYSDBA',22935.01,0);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(12,'2017.12.29 12:18:48.909','SYSDBA',53793,0);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(12,'2017.12.29 12:18:58.051','SYSDBA',53793.01,0);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(83,'2018.01.04 10:57:34.245','SYSDBA',62550,0);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(121,'2018.03.13 15:29:08.850','SYSDBA',33000,0);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(109,'2018.03.13 17:12:06.340','SYSDBA',27000,0);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(34,'2018.03.13 17:13:20.671','SYSDBA',61637.81,0);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(83,'2018.03.13 17:13:35.845','SYSDBA',62550.01,0);
COMMIT;
/* Inserting data into Table: SALES */
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V91E0210',1004,11,'shipped','1991.03.04 00:00:00.000','1991.03.05 00:00:00.000',NULL,'y',10,5000,0.100000001490116,'hardware');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V92E0340',1004,11,'shipped','1992.10.15 00:00:00.000','1992.10.16 00:00:00.000','1992.10.17 00:00:00.000','y',7,70000,0,'hardware');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V92J1003',1010,61,'shipped','1992.07.26 00:00:00.000','1992.08.04 00:00:00.000','1992.09.15 00:00:00.000','y',15,2985,0,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93J2004',1010,118,'shipped','1993.10.30 00:00:00.000','1993.12.02 00:00:00.000','1993.11.15 00:00:00.000','y',3,210,0,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93J3100',1010,118,'shipped','1993.08.20 00:00:00.000','1993.08.20 00:00:00.000',NULL,'y',16,18000.4,0.100000001490116,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V92F3004',1012,11,'shipped','1992.10.15 00:00:00.000','1993.01.16 00:00:00.000','1993.01.16 00:00:00.000','y',3,2000,0,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93F3088',1012,134,'shipped','1993.08.27 00:00:00.000','1993.09.08 00:00:00.000',NULL,'n',10,10000,0,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93F2030',1012,134,'open','1993.12.12 00:00:00.000',NULL,NULL,'y',15,450000.49,0,'hardware');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93F2051',1012,134,'waiting','1993.12.18 00:00:00.000',NULL,'1994.03.01 00:00:00.000','n',1,999.98,0,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93H0030',1005,118,'open','1993.12.12 00:00:00.000',NULL,'1994.01.01 00:00:00.000','y',20,5980,0.200000002980232,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V94H0079',1005,61,'open','1994.02.13 00:00:00.000',NULL,'1994.04.20 00:00:00.000','n',10,9000,0.0500000007450581,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9324200',1001,72,'shipped','1993.08.09 00:00:00.000','1993.08.09 00:00:00.000','1993.08.17 00:00:00.000','y',1000,560000,0.200000002980232,'hardware');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9324320',1001,127,'shipped','1993.08.16 00:00:00.000','1993.08.16 00:00:00.000','1993.09.01 00:00:00.000','y',1,0,1,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9320630',1001,127,'open','1993.12.12 00:00:00.000',NULL,'1993.12.15 00:00:00.000','n',3,60000,0.200000002980232,'hardware');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9420099',1001,127,'open','1994.01.17 00:00:00.000',NULL,'1994.06.01 00:00:00.000','n',100,3399.15,0.150000005960464,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9427029',1001,127,'shipped','1994.02.07 00:00:00.000','1994.02.10 00:00:00.000','1994.02.10 00:00:00.000','n',17,422210.97,0,'hardware');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9333005',1002,11,'shipped','1993.02.03 00:00:00.000','1993.03.03 00:00:00.000',NULL,'y',2,600.5,0,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9333006',1002,11,'shipped','1993.04.27 00:00:00.000','1993.05.02 00:00:00.000','1993.05.02 00:00:00.000','n',5,20000,0,'other');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9336100',1002,11,'waiting','1993.12.27 00:00:00.000','1994.01.01 00:00:00.000','1994.01.01 00:00:00.000','n',150,14850,0.0500000007450581,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9346200',1003,11,'waiting','1993.12.31 00:00:00.000',NULL,'1994.01.24 00:00:00.000','n',3,0,1,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9345200',1003,11,'shipped','1993.11.11 00:00:00.000','1993.12.02 00:00:00.000','1993.12.01 00:00:00.000','y',900,27000,0.300000011920929,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9345139',1003,127,'shipped','1993.09.09 00:00:00.000','1993.09.20 00:00:00.000','1993.10.01 00:00:00.000','y',20,12582.12,0.100000001490116,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93C0120',1006,72,'shipped','1993.03.22 00:00:00.000','1993.05.31 00:00:00.000','1993.04.17 00:00:00.000','y',1,47.5,0,'other');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93C0990',1006,72,'shipped','1993.08.09 00:00:00.000','1993.09.02 00:00:00.000',NULL,'y',40,399960.5,0.100000001490116,'hardware');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9456220',1007,127,'open','1994.01.04 00:00:00.000',NULL,'1994.01.30 00:00:00.000','y',1,3999.99,0,'hardware');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93S4702',1011,121,'shipped','1993.10.27 00:00:00.000','1993.10.28 00:00:00.000','1993.12.15 00:00:00.000','y',4,120000,0,'hardware');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V94S6400',1011,141,'waiting','1994.01.06 00:00:00.000',NULL,'1994.02.15 00:00:00.000','y',20,1980.72,0.400000005960464,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93H3009',1008,61,'shipped','1993.08.01 00:00:00.000','1993.12.02 00:00:00.000','1993.12.01 00:00:00.000','n',3,9000,0.0500000007450581,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93H0500',1008,61,'open','1993.12.12 00:00:00.000',NULL,'1993.12.15 00:00:00.000','n',3,16000,0.200000002980232,'hardware');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93F0020',1009,61,'shipped','1993.10.10 00:00:00.000','1993.11.11 00:00:00.000','1993.11.11 00:00:00.000','n',1,490.69,0,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93I4700',1013,121,'open','1993.10.27 00:00:00.000',NULL,'1993.12.15 00:00:00.000','n',5,2693,0,'hardware');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93B1002',1014,134,'shipped','1993.09.20 00:00:00.000','1993.09.21 00:00:00.000','1993.09.25 00:00:00.000','y',1,100.02,0,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93N5822',1015,134,'shipped','1993.12.18 00:00:00.000','1994.01.14 00:00:00.000',NULL,'n',2,1500,0,'software');
COMMIT;
/* Data Ends */
/* Index definitions for all user tables */
CREATE INDEX CUSTNAMEX ON CUSTOMER(CUSTOMER);
CREATE INDEX CUSTREGION ON CUSTOMER(COUNTRY, CITY);
CREATE DESCENDING INDEX BUDGETX ON DEPARTMENT(BUDGET);
CREATE INDEX NAMEX ON EMPLOYEE(LAST_NAME, FIRST_NAME);
CREATE DESCENDING INDEX MAXSALX ON JOB(JOB_COUNTRY, MAX_SALARY);
CREATE INDEX MINSALX ON JOB(JOB_COUNTRY, MIN_SALARY);
CREATE UNIQUE INDEX PRODTYPEX ON PROJECT(PRODUCT, PROJ_NAME);
CREATE DESCENDING INDEX CHANGEX ON SALARY_HISTORY(CHANGE_DATE);
CREATE INDEX UPDATERX ON SALARY_HISTORY(UPDATER_ID);
CREATE INDEX NEEDX ON SALES(DATE_NEEDED);
CREATE DESCENDING INDEX QTYX ON SALES(ITEM_TYPE, QTY_ORDERED);
CREATE INDEX SALESTATX ON SALES(ORDER_STATUS, PAID);
ALTER TABLE CUSTOMER ADD FOREIGN KEY (COUNTRY) REFERENCES COUNTRY (COUNTRY);
ALTER TABLE DEPARTMENT ADD FOREIGN KEY (HEAD_DEPT) REFERENCES DEPARTMENT (DEPT_NO);
ALTER TABLE DEPARTMENT ADD FOREIGN KEY (MNGR_NO) REFERENCES EMPLOYEE (EMP_NO);
ALTER TABLE EMPLOYEE ADD FOREIGN KEY (DEPT_NO) REFERENCES DEPARTMENT (DEPT_NO);
ALTER TABLE EMPLOYEE ADD FOREIGN KEY (JOB_CODE, JOB_GRADE, JOB_COUNTRY) REFERENCES JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY);
ALTER TABLE EMPLOYEE_PROJECT ADD FOREIGN KEY (EMP_NO) REFERENCES EMPLOYEE (EMP_NO);
ALTER TABLE EMPLOYEE_PROJECT ADD FOREIGN KEY (PROJ_ID) REFERENCES PROJECT (PROJ_ID);
ALTER TABLE JOB ADD FOREIGN KEY (JOB_COUNTRY) REFERENCES COUNTRY (COUNTRY);
ALTER TABLE PROJECT ADD FOREIGN KEY (TEAM_LEADER) REFERENCES EMPLOYEE (EMP_NO);
ALTER TABLE PROJ_DEPT_BUDGET ADD FOREIGN KEY (DEPT_NO) REFERENCES DEPARTMENT (DEPT_NO);
ALTER TABLE PROJ_DEPT_BUDGET ADD FOREIGN KEY (PROJ_ID) REFERENCES PROJECT (PROJ_ID);
ALTER TABLE SALARY_HISTORY ADD FOREIGN KEY (EMP_NO) REFERENCES EMPLOYEE (EMP_NO);
ALTER TABLE SALES ADD FOREIGN KEY (CUST_NO) REFERENCES CUSTOMER (CUST_NO);
ALTER TABLE SALES ADD FOREIGN KEY (SALES_REP) REFERENCES EMPLOYEE (EMP_NO);
CREATE SEQUENCE CUST_NO_GEN;
ALTER SEQUENCE CUST_NO_GEN RESTART WITH 1016;
CREATE SEQUENCE EMP_NO_GEN;
ALTER SEQUENCE EMP_NO_GEN RESTART WITH 158;
CREATE SEQUENCE FB$OUT_SEQ;
ALTER SEQUENCE FB$OUT_SEQ RESTART WITH 1;
/* View: DEPTLIST, Owner: SYSDBA */
CREATE VIEW DEPTLIST (
EMP_NO,
FIRST_NAME,
LAST_NAME,
PHONE_EXT,
HIRE_DATE,
DEPT_NO,
JOB_CODE,
JOB_GRADE,
JOB_COUNTRY,
SALARY,
FULL_NAME,
DEPT_PATH,
DEPT_KEY_PATH
) AS
with recursive Depts As (
Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,
cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH
From DEPARTMENT Where HEAD_DEPT is NULL
UNION ALL
Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,
Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH
From DEPARTMENT D
JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO
)
Select distinct A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,
A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH
From EMPLOYEE A
JOIN Depts D On D.DEPT_NO = A.DEPT_NO
;
/* View: PHONE_LIST, Owner: SYSDBA */
CREATE VIEW PHONE_LIST (
EMP_NO,
FIRST_NAME,
LAST_NAME,
PHONE_EXT,
LOCATION,
PHONE_NO
) AS
SELECT
emp_no, first_name, last_name, phone_ext, location, phone_no
FROM employee, department
WHERE employee.dept_no = department.dept_no
;
/* Add Domain Check Constraints */
ALTER DOMAIN BUDGET ADD CONSTRAINT
CHECK (VALUE > 10000 AND VALUE <= 2000000);
ALTER DOMAIN CUSTNO ADD CONSTRAINT
CHECK (VALUE > 1000);
ALTER DOMAIN DEPTNO ADD CONSTRAINT
CHECK (VALUE = '000' OR (VALUE > '0' AND VALUE <= '999') OR VALUE IS NULL);
ALTER DOMAIN JOBCODE ADD CONSTRAINT
CHECK (VALUE > '99999');
ALTER DOMAIN JOBGRADE ADD CONSTRAINT
CHECK (VALUE BETWEEN 0 AND 6);
ALTER DOMAIN PONUMBER ADD CONSTRAINT
CHECK (VALUE STARTING WITH 'V');
ALTER DOMAIN PRODTYPE ADD CONSTRAINT
CHECK (VALUE IN ('software', 'hardware', 'other', 'N/A'));
ALTER DOMAIN PROJNO ADD CONSTRAINT
CHECK (VALUE = UPPER (VALUE));
ALTER DOMAIN SALARY ADD CONSTRAINT
CHECK (VALUE > 0);
ALTER TABLE JOB ADD
CHECK (min_salary < max_salary);
ALTER TABLE JOB ADD
CHECK (min_salary < max_salary);
ALTER TABLE EMPLOYEE ADD
CHECK ( salary >= (SELECT min_salary FROM job WHERE
job.job_code = employee.job_code AND
job.job_grade = employee.job_grade AND
job.job_country = employee.job_country) AND
salary <= (SELECT max_salary FROM job WHERE
job.job_code = employee.job_code AND
job.job_grade = employee.job_grade AND
job.job_country = employee.job_country));
ALTER TABLE PROJ_DEPT_BUDGET ADD
CHECK (FISCAL_YEAR >= 1993);
ALTER TABLE SALARY_HISTORY ADD
CHECK (percent_change between -50 and 50);
ALTER TABLE CUSTOMER ADD
CHECK (on_hold IS NULL OR on_hold = '*');
ALTER TABLE SALES ADD
CHECK (order_status in
('new', 'open', 'shipped', 'waiting'));
ALTER TABLE SALES ADD
CHECK (ship_date >= order_date OR ship_date IS NULL);
ALTER TABLE SALES ADD
CHECK (date_needed > order_date OR date_needed IS NULL);
ALTER TABLE SALES ADD
CHECK (paid in ('y', 'n'));
ALTER TABLE SALES ADD
CHECK (qty_ordered >= 1);
ALTER TABLE SALES ADD
CHECK (total_value >= 0);
ALTER TABLE SALES ADD
CHECK (discount >= 0 AND discount <= 1);
ALTER TABLE SALES ADD
CHECK (NOT (order_status = 'shipped' AND ship_date IS NULL));
ALTER TABLE SALES ADD
CHECK (NOT (order_status = 'shipped' AND
EXISTS (SELECT on_hold FROM customer
WHERE customer.cust_no = sales.cust_no
AND customer.on_hold = '*')));
/* Exceptions */
CREATE EXCEPTION CUSTOMER_CHECK 'Overdue balance -- can not ship.';
CREATE EXCEPTION CUSTOMER_ON_HOLD 'This customer is on hold.';
CREATE EXCEPTION ORDER_ALREADY_SHIPPED 'Order status is "shipped."';
CREATE EXCEPTION REASSIGN_SALES 'Reassign the sales records before deleting this employee.';
CREATE EXCEPTION UNKNOWN_EMP_ID 'Invalid employee number or project id.';
COMMIT WORK;
SET AUTODDL OFF;
SET TERM ^;
/* Stored procedures Definitions*/
CREATE PROCEDURE SHOW_LANGS
(
CODE VARCHAR(5) CHARACTER SET NONE,
GRADE SMALLINT,
CTY VARCHAR(15) CHARACTER SET NONE
)
RETURNS
(
LANGUAGES VARCHAR(15) CHARACTER SET NONE
)
AS
BEGIN SUSPEND; EXIT; END
^
CREATE PROCEDURE ADD_EMP_PROJ
(
EMP_NO SMALLINT,
PROJ_ID CHAR(5) CHARACTER SET NONE
)
AS
BEGIN EXIT; END
^
CREATE PROCEDURE ALL_LANGS
RETURNS
(
CODE VARCHAR(5) CHARACTER SET NONE,
GRADE VARCHAR(5) CHARACTER SET NONE,
COUNTRY VARCHAR(15) CHARACTER SET NONE,
LANG VARCHAR(15) CHARACTER SET NONE
)
AS
BEGIN SUSPEND; EXIT; END
^
CREATE PROCEDURE DELETE_EMPLOYEE
(
EMP_NUM INTEGER
)
AS
BEGIN EXIT; END
^
CREATE PROCEDURE DEPT_BUDGET
(
DNO CHAR(3) CHARACTER SET NONE
)
RETURNS
(
TOT DECIMAL(12,2)
)
AS
BEGIN SUSPEND; EXIT; END
^
CREATE PROCEDURE GET_EMP_PROJ
(
EMP_NO SMALLINT
)
RETURNS
(
PROJ_ID CHAR(5) CHARACTER SET NONE
)
AS
BEGIN SUSPEND; EXIT; END
^
CREATE PROCEDURE "Has Space"
(
ARG1 INTEGER
)
AS
BEGIN EXIT; END
^
CREATE PROCEDURE MAIL_LABEL
(
CUST_NO INTEGER
)
RETURNS
(
LINE1 CHAR(40) CHARACTER SET NONE,
LINE2 CHAR(40) CHARACTER SET NONE,
LINE3 CHAR(40) CHARACTER SET NONE,
LINE4 CHAR(40) CHARACTER SET NONE,
LINE5 CHAR(40) CHARACTER SET NONE,
LINE6 CHAR(40) CHARACTER SET NONE
)
AS
BEGIN SUSPEND; EXIT; END
^
CREATE PROCEDURE ORG_CHART
RETURNS
(
HEAD_DEPT CHAR(25) CHARACTER SET NONE,
DEPARTMENT CHAR(25) CHARACTER SET NONE,
MNGR_NAME CHAR(20) CHARACTER SET NONE,
TITLE CHAR(5) CHARACTER SET NONE,
EMP_CNT INTEGER
)
AS
BEGIN SUSPEND; EXIT; END
^
CREATE PROCEDURE SHIP_ORDER
(
PO_NUM CHAR(8) CHARACTER SET NONE
)
AS
BEGIN EXIT; END
^
CREATE PROCEDURE SUB_TOT_BUDGET
(
HEAD_DEPT CHAR(3) CHARACTER SET NONE
)
RETURNS
(
TOT_BUDGET DECIMAL(12,2),
AVG_BUDGET DECIMAL(12,2),
MIN_BUDGET DECIMAL(12,2),
MAX_BUDGET DECIMAL(12,2)
)
AS
BEGIN SUSPEND; EXIT; END
^
CREATE PROCEDURE "UC SPACE"
(
ARG1 INTEGER
)
AS
BEGIN EXIT; END
^
CREATE PROCEDURE "iCASE"
AS
BEGIN EXIT; END
^
SET TERM ;^
COMMIT WORK;
SET AUTODDL ON;
SET TERM ^;
/* Triggers only will work for SQL triggers */
CREATE TRIGGER SET_CUST_NO FOR CUSTOMER
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
if (new.cust_no is null) then
new.cust_no = gen_id(cust_no_gen, 1);
END
^
CREATE TRIGGER SET_EMP_NO FOR EMPLOYEE
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
if (new.emp_no is null) then
new.emp_no = gen_id(emp_no_gen, 1);
END
^
CREATE TRIGGER SAVE_SALARY_CHANGE FOR EMPLOYEE
ACTIVE AFTER UPDATE POSITION 0
AS
BEGIN
IF (old.salary <> new.salary) THEN
INSERT INTO salary_history
(emp_no, change_date, updater_id, old_salary, percent_change)
VALUES (
old.emp_no,
'NOW',
user,
old.salary,
(new.salary - old.salary) * 100 / old.salary);
END
^
CREATE TRIGGER POST_NEW_ORDER FOR SALES
ACTIVE AFTER INSERT POSITION 0
AS
BEGIN
POST_EVENT 'new_order';
END
^
COMMIT WORK^
SET TERM ;^
COMMIT WORK;
SET AUTODDL OFF;
SET TERM ^;
/* Stored procedure Bodies */
ALTER PROCEDURE SHOW_LANGS
(
CODE VARCHAR(5) CHARACTER SET NONE,
GRADE SMALLINT,
CTY VARCHAR(15) CHARACTER SET NONE
)
RETURNS
(
LANGUAGES VARCHAR(15) CHARACTER SET NONE
)
AS
DECLARE VARIABLE i INTEGER;
BEGIN
i = 1;
WHILE (i <= 5) DO
BEGIN
SELECT language_req[:i] FROM joB
WHERE ((job_code = :code) AND (job_grade = :grade) AND (job_country = :cty)
AND (language_req IS NOT NULL))
INTO :languages;
IF (languages = ' ') THEN /* Prints 'NULL' instead of blanks */
languages = 'NULL';
i = i +1;
SUSPEND;
END
END
^
ALTER PROCEDURE ADD_EMP_PROJ
(
EMP_NO SMALLINT,
PROJ_ID CHAR(5) CHARACTER SET NONE
)
AS
BEGIN
BEGIN
INSERT INTO employee_project (emp_no, proj_id) VALUES (:emp_no, :proj_id);
WHEN SQLCODE -530 DO
EXCEPTION unknown_emp_id;
END
END
^
ALTER PROCEDURE ALL_LANGS
RETURNS
(
CODE VARCHAR(5) CHARACTER SET NONE,
GRADE VARCHAR(5) CHARACTER SET NONE,
COUNTRY VARCHAR(15) CHARACTER SET NONE,
LANG VARCHAR(15) CHARACTER SET NONE
)
AS
BEGIN
FOR SELECT job_code, job_grade, job_country FROM job
INTO :code, :grade, :country
DO
BEGIN
FOR SELECT languages FROM show_langs
(:code, :grade, :country) INTO :lang DO
SUSPEND;
/* Put nice separators between rows */
code = '=====';
grade = '=====';
country = '===============';
lang = '==============';
SUSPEND;
END
END
^
ALTER PROCEDURE DELETE_EMPLOYEE
(
EMP_NUM INTEGER
)
AS
DECLARE VARIABLE any_sales INTEGER;
BEGIN
any_sales = 0;
/*
* If there are any sales records referencing this employee,
* cannot delete the employee until the sales are re-assigned
* to another employee or changed to NULL.
*/
SELECT count(po_number)
FROM sales
WHERE sales_rep = :emp_num
INTO :any_sales;
IF (any_sales > 0) THEN
BEGIN
EXCEPTION reassign_sales;
END
/*
* If the employee is a manager, update the department.
*/
UPDATE department
SET mngr_no = NULL
WHERE mngr_no = :emp_num;
/*
* If the employee is a project leader, update project.
*/
UPDATE project
SET team_leader = NULL
WHERE team_leader = :emp_num;
/*
* Delete the employee from any projects.
*/
DELETE FROM employee_project
WHERE emp_no = :emp_num;
/*
* Delete old salary records.
*/
DELETE FROM salary_history
WHERE emp_no = :emp_num;
/*
* Delete the employee.
*/
DELETE FROM employee
WHERE emp_no = :emp_num;
END
^
ALTER PROCEDURE DEPT_BUDGET
(
DNO CHAR(3) CHARACTER SET NONE
)
RETURNS
(
TOT DECIMAL(12,2)
)
AS
DECLARE VARIABLE sumb DECIMAL(12,2);
DECLARE VARIABLE rdno CHAR(3);
DECLARE VARIABLE cnt INTEGER;
BEGIN
tot = 0;
SELECT budget FROM department WHERE dept_no = :dno INTO :tot;
SELECT count(budget) FROM department WHERE head_dept = :dno INTO :cnt;
IF (cnt = 0) THEN
SUSPEND;
FOR SELECT dept_no
FROM department
WHERE head_dept = :dno
INTO :rdno
DO
BEGIN
EXECUTE PROCEDURE dept_budget :rdno RETURNING_VALUES :sumb;
tot = tot + sumb;
END
SUSPEND;
END
^
ALTER PROCEDURE GET_EMP_PROJ
(
EMP_NO SMALLINT
)
RETURNS
(
PROJ_ID CHAR(5) CHARACTER SET NONE
)
AS
BEGIN
FOR SELECT proj_id
FROM employee_project
WHERE emp_no = :emp_no
INTO :proj_id
DO
SUSPEND;
END
^
ALTER PROCEDURE "Has Space"
(
ARG1 INTEGER
)
AS
Begin End
^
ALTER PROCEDURE MAIL_LABEL
(
CUST_NO INTEGER
)
RETURNS
(
LINE1 CHAR(40) CHARACTER SET NONE,
LINE2 CHAR(40) CHARACTER SET NONE,
LINE3 CHAR(40) CHARACTER SET NONE,
LINE4 CHAR(40) CHARACTER SET NONE,
LINE5 CHAR(40) CHARACTER SET NONE,
LINE6 CHAR(40) CHARACTER SET NONE
)
AS
DECLARE VARIABLE customer VARCHAR(25);
DECLARE VARIABLE first_name VARCHAR(15);
DECLARE VARIABLE last_name VARCHAR(20);
DECLARE VARIABLE addr1 VARCHAR(30);
DECLARE VARIABLE addr2 VARCHAR(30);
DECLARE VARIABLE city VARCHAR(25);
DECLARE VARIABLE state VARCHAR(15);
DECLARE VARIABLE country VARCHAR(15);
DECLARE VARIABLE postcode VARCHAR(12);
DECLARE VARIABLE cnt INTEGER;
BEGIN
line1 = '';
line2 = '';
line3 = '';
line4 = '';
line5 = '';
line6 = '';
SELECT customer, contact_first, contact_last, address_line1,
address_line2, city, state_province, country, postal_code
FROM CUSTOMER
WHERE cust_no = :cust_no
INTO :customer, :first_name, :last_name, :addr1, :addr2,
:city, :state, :country, :postcode;
IF (customer IS NOT NULL) THEN
line1 = customer;
IF (first_name IS NOT NULL) THEN
line2 = first_name || ' ' || last_name;
ELSE
line2 = last_name;
IF (addr1 IS NOT NULL) THEN
line3 = addr1;
IF (addr2 IS NOT NULL) THEN
line4 = addr2;
IF (country = 'USA') THEN
BEGIN
IF (city IS NOT NULL) THEN
line5 = city || ', ' || state || ' ' || postcode;
ELSE
line5 = state || ' ' || postcode;
END
ELSE
BEGIN
IF (city IS NOT NULL) THEN
line5 = city || ', ' || state;
ELSE
line5 = state;
line6 = country || ' ' || postcode;
END
SUSPEND;
END
^
ALTER PROCEDURE ORG_CHART
RETURNS
(
HEAD_DEPT CHAR(25) CHARACTER SET NONE,
DEPARTMENT CHAR(25) CHARACTER SET NONE,
MNGR_NAME CHAR(20) CHARACTER SET NONE,
TITLE CHAR(5) CHARACTER SET NONE,
EMP_CNT INTEGER
)
AS
DECLARE VARIABLE mngr_no INTEGER;
DECLARE VARIABLE dno CHAR(3);
BEGIN
FOR SELECT h.department, d.department, d.mngr_no, d.dept_no
FROM department d
LEFT OUTER JOIN department h ON d.head_dept = h.dept_no
ORDER BY d.dept_no
INTO :head_dept, :department, :mngr_no, :dno
DO
BEGIN
IF (:mngr_no IS NULL) THEN
BEGIN
mngr_name = '--TBH--';
title = '';
END
ELSE
SELECT full_name, job_code
FROM employee
WHERE emp_no = :mngr_no
INTO :mngr_name, :title;
SELECT COUNT(emp_no)
FROM employee
WHERE dept_no = :dno
INTO :emp_cnt;
SUSPEND;
END
END
^
ALTER PROCEDURE SHIP_ORDER
(
PO_NUM CHAR(8) CHARACTER SET NONE
)
AS
DECLARE VARIABLE ord_stat CHAR(7);
DECLARE VARIABLE hold_stat CHAR(1);
DECLARE VARIABLE cust_no INTEGER;
DECLARE VARIABLE any_po CHAR(8);
BEGIN
SELECT s.order_status, c.on_hold, c.cust_no
FROM sales s, customer c
WHERE po_number = :po_num
AND s.cust_no = c.cust_no
INTO :ord_stat, :hold_stat, :cust_no;
/* This purchase order has been already shipped. */
IF (ord_stat = 'shipped') THEN
BEGIN
EXCEPTION order_already_shipped;
END
/* Customer is on hold. */
ELSE IF (hold_stat = '*') THEN
BEGIN
EXCEPTION customer_on_hold;
END
/*
* If there is an unpaid balance on orders shipped over 2 months ago,
* put the customer on hold.
*/
FOR SELECT po_number
FROM sales
WHERE cust_no = :cust_no
AND order_status = 'shipped'
AND paid = 'n'
AND ship_date < CAST('NOW' AS TIMESTAMP) - 60
INTO :any_po
DO
BEGIN
EXCEPTION customer_check;
UPDATE customer
SET on_hold = '*'
WHERE cust_no = :cust_no;
END
/*
* Ship the order.
*/
UPDATE sales
SET order_status = 'shipped', ship_date = 'NOW'
WHERE po_number = :po_num;
END
^
ALTER PROCEDURE SUB_TOT_BUDGET
(
HEAD_DEPT CHAR(3) CHARACTER SET NONE
)
RETURNS
(
TOT_BUDGET DECIMAL(12,2),
AVG_BUDGET DECIMAL(12,2),
MIN_BUDGET DECIMAL(12,2),
MAX_BUDGET DECIMAL(12,2)
)
AS
BEGIN
SELECT SUM(budget), AVG(budget), MIN(budget), MAX(budget)
FROM department
WHERE head_dept = :head_dept
INTO :tot_budget, :avg_budget, :min_budget, :max_budget;
SUSPEND;
END
^
ALTER PROCEDURE "UC SPACE"
(
ARG1 INTEGER
)
AS
Begin End
^
ALTER PROCEDURE "iCASE"
AS
Begin End
^
SET TERM ;^
COMMIT WORK;
SET AUTODDL ON;
/* Comments on System Objects */
COMMENT ON CHARACTER SET UTF8 IS 'Default Character set';
/* Grant Roles for this database */
/* Grant permissions for this database */
GRANT REFERENCES ON TABLE COUNTRIES TO USER BOB ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE COUNTRY TO USER PUBLIC WITH GRANT OPTION ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE CUSTOMER TO USER PUBLIC WITH GRANT OPTION ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE DEPARTMENT TO USER PUBLIC WITH GRANT OPTION ;
GRANT SELECT ON TABLE EMPLOYEE TO USER ALICE WITH GRANT OPTION GRANTED BY BOB ;
GRANT SELECT,Update(FIRST_NAME,LAST_NAME) ON TABLE EMPLOYEE TO USER BOB ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE EMPLOYEE TO USER PUBLIC WITH GRANT OPTION ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE EMPLOYEE_PROJECT TO USER PUBLIC WITH GRANT OPTION ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE JOB TO USER PUBLIC WITH GRANT OPTION ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE PHONE_LIST TO USER PUBLIC WITH GRANT OPTION ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE PROJECT TO USER PUBLIC WITH GRANT OPTION ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE PROJ_DEPT_BUDGET TO USER PUBLIC WITH GRANT OPTION ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE SALARY_HISTORY TO USER PUBLIC WITH GRANT OPTION ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE SALES TO USER PUBLIC WITH GRANT OPTION ;
GRANT RDB$ADMIN TO ALICE;
GRANT RDB$ADMIN TO BOB;
GRANT EXECUTE ON PROCEDURE ADD_EMP_PROJ TO USER PUBLIC WITH GRANT OPTION ;
GRANT EXECUTE ON PROCEDURE ALL_LANGS TO USER PUBLIC WITH GRANT OPTION ;
GRANT EXECUTE ON PROCEDURE DELETE_EMPLOYEE TO USER PUBLIC WITH GRANT OPTION ;
GRANT EXECUTE ON PROCEDURE DEPT_BUDGET TO USER PUBLIC WITH GRANT OPTION ;
GRANT EXECUTE ON PROCEDURE GET_EMP_PROJ TO USER PUBLIC WITH GRANT OPTION ;
GRANT EXECUTE ON PROCEDURE MAIL_LABEL TO USER PUBLIC WITH GRANT OPTION ;
GRANT EXECUTE ON PROCEDURE ORG_CHART TO USER PUBLIC WITH GRANT OPTION ;
GRANT EXECUTE ON PROCEDURE SHIP_ORDER TO USER PUBLIC WITH GRANT OPTION ;
GRANT EXECUTE ON PROCEDURE SHOW_LANGS TO USER PUBLIC WITH GRANT OPTION ;
GRANT EXECUTE ON PROCEDURE SUB_TOT_BUDGET TO USER PUBLIC WITH GRANT OPTION ;
Extracting Database Schema and Data
SET SQL DIALECT 3;
SET AUTODDL ON;
/* CREATE DATABASE 'localhost:/tmp/ibx-testsuite/testsuite1.fdb' PAGE_SIZE 8192
DEFAULT CHARACTER SET NONE; */
COMMENT ON DATABASE IS 'Employee Test DB';
/* Domain definitions */
CREATE DOMAIN ADDRESSLINE AS VARCHAR(30);
CREATE DOMAIN BUDGET AS DECIMAL(12,2)
DEFAULT 50000;
CREATE DOMAIN COUNTRYNAME AS VARCHAR(15);
CREATE DOMAIN CUSTNO AS INTEGER;
CREATE DOMAIN DEPTNO AS CHAR(3);
CREATE DOMAIN EMPNO AS SMALLINT;
CREATE DOMAIN FB$OUT_TYPE AS BLOB SUB_TYPE TEXT SEGMENT SIZE 80 NOT NULL;
CREATE DOMAIN FIRSTNAME AS VARCHAR(15);
CREATE DOMAIN JOBCODE AS VARCHAR(5);
CREATE DOMAIN JOBGRADE AS SMALLINT;
CREATE DOMAIN LASTNAME AS VARCHAR(20);
CREATE DOMAIN PHONENUMBER AS VARCHAR(20);
CREATE DOMAIN PONUMBER AS CHAR(8);
CREATE DOMAIN PRODTYPE AS VARCHAR(12)
DEFAULT 'software' NOT NULL;
CREATE DOMAIN PROJNO AS CHAR(5);
CREATE DOMAIN SALARY AS NUMERIC(10,2)
DEFAULT 0;
/* Table: COUNTRIES, Owner: SYSDBA */
CREATE TABLE COUNTRIES
(
COUNTRY VARCHAR(64) NOT NULL,
NONEU SMALLINT,
ISO2 CHAR(2),
ISO3 CHAR(3),
PRIMARY KEY (COUNTRY)
);
COMMENT ON TABLE COUNTRIES IS 'List of Countries';
COMMENT ON COLUMN COUNTRIES.ISO2 IS 'Two Character ISO Country Code';
/* Table: COUNTRY, Owner: SYSDBA */
CREATE TABLE COUNTRY
(
COUNTRY COUNTRYNAME NOT NULL,
CURRENCY VARCHAR(10) NOT NULL,
PRIMARY KEY (COUNTRY)
);
/* Table: CUSTOMER, Owner: SYSDBA */
CREATE TABLE CUSTOMER
(
CUST_NO CUSTNO NOT NULL,
CUSTOMER VARCHAR(25) NOT NULL,
CONTACT_FIRST FIRSTNAME,
CONTACT_LAST LASTNAME,
PHONE_NO PHONENUMBER,
ADDRESS_LINE1 ADDRESSLINE,
ADDRESS_LINE2 ADDRESSLINE,
CITY VARCHAR(25),
STATE_PROVINCE VARCHAR(15),
COUNTRY COUNTRYNAME,
POSTAL_CODE VARCHAR(12),
ON_HOLD CHAR(1) DEFAULT NULL,
LONG_REFERENCE BIGINT,
PRIMARY KEY (CUST_NO)
);
/* Table: DEPARTMENT, Owner: SYSDBA */
CREATE TABLE DEPARTMENT
(
DEPT_NO DEPTNO NOT NULL,
DEPARTMENT VARCHAR(25) NOT NULL,
HEAD_DEPT DEPTNO,
MNGR_NO EMPNO,
BUDGET BUDGET,
LOCATION VARCHAR(15),
PHONE_NO PHONENUMBER DEFAULT '555-1234',
UNIQUE (DEPARTMENT),
PRIMARY KEY (DEPT_NO)
);
/* Table: EMPLOYEE, Owner: SYSDBA */
CREATE TABLE EMPLOYEE
(
EMP_NO EMPNO NOT NULL,
FIRST_NAME FIRSTNAME NOT NULL,
LAST_NAME LASTNAME NOT NULL,
PHONE_EXT VARCHAR(4),
HIRE_DATE TIMESTAMP DEFAULT 'NOW' NOT NULL,
DEPT_NO DEPTNO NOT NULL,
JOB_CODE JOBCODE NOT NULL,
JOB_GRADE JOBGRADE NOT NULL,
JOB_COUNTRY COUNTRYNAME NOT NULL,
SALARY SALARY NOT NULL,
FULL_NAME COMPUTED BY (last_name || ', ' || first_name),
PRIMARY KEY (EMP_NO)
);
/* Table: EMPLOYEE_PROJECT, Owner: SYSDBA */
CREATE TABLE EMPLOYEE_PROJECT
(
EMP_NO EMPNO NOT NULL,
PROJ_ID PROJNO NOT NULL,
PRIMARY KEY (EMP_NO, PROJ_ID)
);
/* Table: FB$OUT_TABLE, Owner: SYSDBA */
CREATE GLOBAL TEMPORARY TABLE FB$OUT_TABLE
(
LINE_NUM INTEGER,
CONTENT FB$OUT_TYPE
) ON COMMIT PRESERVE ROWS ;
/* Table: JOB, Owner: SYSDBA */
CREATE TABLE JOB
(
JOB_CODE JOBCODE NOT NULL,
JOB_GRADE JOBGRADE NOT NULL,
JOB_COUNTRY COUNTRYNAME NOT NULL,
JOB_TITLE VARCHAR(25) NOT NULL,
MIN_SALARY SALARY NOT NULL,
MAX_SALARY SALARY NOT NULL,
JOB_REQUIREMENT BLOB SUB_TYPE TEXT SEGMENT SIZE 400,
LANGUAGE_REQ VARCHAR(15)[1:5],
PRIMARY KEY (JOB_CODE, JOB_GRADE, JOB_COUNTRY)
);
/* Table: PROJECT, Owner: SYSDBA */
CREATE TABLE PROJECT
(
PROJ_ID PROJNO NOT NULL,
PROJ_NAME VARCHAR(20) NOT NULL,
PROJ_DESC BLOB SUB_TYPE TEXT SEGMENT SIZE 800,
TEAM_LEADER EMPNO,
PRODUCT PRODTYPE,
UNIQUE (PROJ_NAME),
PRIMARY KEY (PROJ_ID)
);
/* Table: PROJ_DEPT_BUDGET, Owner: SYSDBA */
CREATE TABLE PROJ_DEPT_BUDGET
(
FISCAL_YEAR INTEGER NOT NULL,
PROJ_ID PROJNO NOT NULL,
DEPT_NO DEPTNO NOT NULL,
QUART_HEAD_CNT INTEGER[1:4],
PROJECTED_BUDGET BUDGET,
PRIMARY KEY (FISCAL_YEAR, PROJ_ID, DEPT_NO)
);
/* Table: SALARY_HISTORY, Owner: SYSDBA */
CREATE TABLE SALARY_HISTORY
(
EMP_NO EMPNO NOT NULL,
CHANGE_DATE TIMESTAMP DEFAULT 'NOW' NOT NULL,
UPDATER_ID VARCHAR(20) NOT NULL,
OLD_SALARY SALARY NOT NULL,
PERCENT_CHANGE DOUBLE PRECISION DEFAULT 0 NOT NULL,
NEW_SALARY COMPUTED BY (old_salary + old_salary * percent_change / 100),
PRIMARY KEY (EMP_NO, CHANGE_DATE, UPDATER_ID)
);
/* Table: SALES, Owner: SYSDBA */
CREATE TABLE SALES
(
PO_NUMBER PONUMBER NOT NULL,
CUST_NO CUSTNO NOT NULL,
SALES_REP EMPNO,
ORDER_STATUS VARCHAR(7) DEFAULT 'new' NOT NULL,
ORDER_DATE TIMESTAMP DEFAULT 'NOW' NOT NULL,
SHIP_DATE TIMESTAMP,
DATE_NEEDED TIMESTAMP,
PAID CHAR(1) DEFAULT 'n',
QTY_ORDERED INTEGER DEFAULT 1 NOT NULL,
TOTAL_VALUE DECIMAL(9,2) NOT NULL,
DISCOUNT FLOAT DEFAULT 0 NOT NULL,
ITEM_TYPE PRODTYPE,
AGED COMPUTED BY (ship_date - order_date),
PRIMARY KEY (PO_NUMBER)
);
/* External Function declarations */
DECLARE EXTERNAL FUNCTION ADDDAY
TIMESTAMP, INTEGER
RETURNS TIMESTAMP
ENTRY_POINT 'addDay' MODULE_NAME 'fbudf'
;
DECLARE EXTERNAL FUNCTION I64TRUNCATE
NUMERIC(18,0) BY DESCRIPTOR, NUMERIC(18,0) BY DESCRIPTOR
RETURNS PARAMETER 2
ENTRY_POINT 'fbtruncate' MODULE_NAME 'fbudf'
;
DECLARE EXTERNAL FUNCTION TESTIT
TIMESTAMP, INTEGER NULL, CSTRING(10) CHARACTER SET NONE, CSTRING(10) CHARACTER SET NONE BY DESCRIPTOR
RETURNS CSTRING(32) CHARACTER SET NONE FREE_IT
ENTRY_POINT 'testit' MODULE_NAME 'fbudf'
;
/* Data Starts */
/* Inserting data into Table: COUNTRY */
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('USA','Dollar');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('England','Pound');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Canada','CdnDlr');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Switzerland','SFranc');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Japan','Yen');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Italy','Euro');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('France','Euro');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Germany','Euro');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Australia','ADollar');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Hong Kong','HKDollar');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Netherlands','Euro');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Belgium','Euro');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Austria','Euro');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Fiji','FDollar');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Russia','Ruble');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Romania','RLeu');
COMMIT;
/* Inserting data into Table: CUSTOMER */
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1001,'Signature Design','Dale J.','Little','(619) 530-2710','15500 Pacific Heights Blvd.',NULL,'San Diego','CA','USA','92121',NULL,NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1002,'Dallas Technologies','Glen','Brown','(214) 960-2233','P. O. Box 47000',NULL,'Dallas','TX','USA','75205','*',NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1003,'Buttle, Griffith and Co.','James','Buttle','(617) 488-1864','2300 Newbury Street','Suite 101','Boston','MA','USA','02115',NULL,NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1004,'Central Bank','Elizabeth','Brocket','61 211 99 88','66 Lloyd Street',NULL,'Manchester',NULL,'England','M2 3LA',NULL,NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1005,'DT Systems, LTD.','Tai','Wu','(852) 850 43 98','400 Connaught Road',NULL,'Central Hong Kong',NULL,'Hong Kong',NULL,NULL,NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1006,'DataServe International','Tomas','Bright','(613) 229 3323','2000 Carling Avenue','Suite 150','Ottawa','ON','Canada','K1V 9G1',NULL,NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1007,'Mrs. Beauvais',NULL,'Mrs. Beauvais',NULL,'P.O. Box 22743',NULL,'Pebble Beach','CA','USA','93953',NULL,NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1008,'Anini Vacation Rentals','Leilani','Briggs','(808) 835-7605','3320 Lawai Road',NULL,'Lihue','HI','USA','96766',NULL,NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1009,'Max','Max',NULL,'22 01 23','1 Emerald Cove',NULL,'Turtle Island',NULL,'Fiji',NULL,'*',NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1010,'MPM Corporation','Miwako','Miyamoto','3 880 77 19','2-64-7 Sasazuka',NULL,'Tokyo',NULL,'Japan','150',NULL,NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1011,'Dynamic Intelligence Corp','Victor','Granges','01 221 16 50','Florhofgasse 10',NULL,'Zurich',NULL,'Switzerland','8005',NULL,NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1012,'3D-Pad Corp.','Michelle','Roche','1 43 60 61','22 Place de la Concorde',NULL,'Paris',NULL,'France','75008',NULL,NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1013,'Lorenzi Export, Ltd.','Andreas','Lorenzi','02 404 6284','Via Eugenia, 15',NULL,'Milan',NULL,'Italy','20124',NULL,NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1014,'Dyno Consulting','Greta','Hessels','02 500 5940','Rue Royale 350',NULL,'Brussels',NULL,'Belgium','1210',NULL,NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1015,'GeoTech Inc.','K.M.','Neppelenbroek','(070) 44 91 18','P.0.Box 702',NULL,'Den Haag',NULL,'Netherlands','2514',NULL,NULL);
COMMIT;
/* Inserting data into Table: DEPARTMENT */
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('000','Corporate Headquarters',NULL,105,1000000,'Monterey','(408) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('100','Sales and Marketing','000',85,2000000,'San Francisco','(415) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('600','Engineering','000',2,1100000,'Monterey','(408) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('900','Finance','000',46,400000,'Monterey','(408) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('180','Marketing','100',NULL,1500000,'San Francisco','(415) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('620','Software Products Div.','600',NULL,1200000,'Monterey','(408) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('621','Software Development','620',NULL,400000,'Monterey','(408) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('622','Quality Assurance','620',9,300000,'Monterey','(408) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('623','Customer Support','620',15,650000,'Monterey','(408) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('670','Consumer Electronics Div.','600',107,1150000,'Burlington, VT','(802) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('671','Research and Development','670',20,460000,'Burlington, VT','(802) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('672','Customer Services','670',94,850000,'Burlington, VT','(802) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('130','Field Office: East Coast','100',11,500000,'Boston','(617) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('140','Field Office: Canada','100',72,500000,'Toronto','(416) 677-1000');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('110','Pacific Rim Headquarters','100',34,600000,'Kuaui','(808) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('115','Field Office: Japan','110',118,500000,'Tokyo','3 5350 0901');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('116','Field Office: Singapore','110',NULL,300000,'Singapore','3 55 1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('120','European Headquarters','100',36,700000,'London','71 235-4400');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('121','Field Office: Switzerland','120',141,500000,'Zurich','1 211 7767');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('123','Field Office: France','120',134,400000,'Cannes','58 68 11 12');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('125','Field Office: Italy','120',121,400000,'Milan','2 430 39 39');
COMMIT;
/* Inserting data into Table: EMPLOYEE */
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(2,'Robert','Nelson','250','1988.12.28 00:00:00.000','600','VP',2,'USA',105900);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(4,'Bruce','Young','233','1988.12.28 00:00:00.000','621','Eng',2,'USA',97500);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(5,'Kim','Lambert','22','1989.02.06 00:00:00.000','130','Eng',2,'USA',102750);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(8,'Leslie','Johnson','410','1989.04.05 00:00:00.000','180','Mktg',3,'USA',64635);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(9,'Phil','Forest','229','1989.04.17 00:00:00.000','622','Mngr',3,'USA',75060);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(11,'K. J.','Weston','34','1990.01.17 00:00:00.000','130','SRep',4,'USA',86292.94);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(12,'Terri','Lee','256','1990.05.01 00:00:00.000','000','Admin',4,'USA',53793);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(14,'Stewart','Hall','227','1990.06.04 00:00:00.000','900','Finan',3,'USA',69482.63);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(15,'Katherine','Young','231','1990.06.14 00:00:00.000','623','Mngr',3,'USA',67241.25);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(20,'Chris','Papadopoulos','887','1990.01.01 00:00:00.000','671','Mngr',3,'USA',89655);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(24,'Pete','Fisher','888','1990.09.12 00:00:00.000','671','Eng',3,'USA',81810.19);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(28,'Ann','Bennet','5','1991.02.01 00:00:00.000','120','Admin',5,'England',22935);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(29,'Roger','De Souza','288','1991.02.18 00:00:00.000','623','Eng',3,'USA',69482.63);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(34,'Janet','Baldwin','2','1991.03.21 00:00:00.000','110','Sales',3,'USA',61637.8);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(36,'Roger','Reeves','6','1991.04.25 00:00:00.000','120','Sales',3,'England',33620.63);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(37,'Willie','Stansbury','7','1991.04.25 00:00:00.000','120','Eng',4,'England',39224.06);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(44,'Leslie','Phong','216','1991.06.03 00:00:00.000','623','Eng',4,'USA',56034.38);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(45,'Ashok','Ramanathan','209','1991.08.01 00:00:00.000','621','Eng',3,'USA',80689.5);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(46,'Walter','Steadman','210','1991.08.09 00:00:00.000','900','CFO',1,'USA',116100);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(52,'Carol','Nordstrom','420','1991.10.02 00:00:00.000','180','PRel',4,'USA',42742.5);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(61,'Luke','Leung','3','1992.02.18 00:00:00.000','110','SRep',4,'USA',68805);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(65,'Sue Anne','O''Brien','877','1992.03.23 00:00:00.000','670','Admin',5,'USA',31275);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(71,'Jennifer M.','Burbank','289','1992.04.15 00:00:00.000','622','Eng',3,'USA',53167.5);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(72,'Claudia','Sutherland',NULL,'1992.04.20 00:00:00.000','140','SRep',4,'Canada',100914);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(83,'Dana','Bishop','290','1992.06.02 00:00:00.000','621','Eng',3,'USA',62550.02);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(85,'Mary S.','MacDonald','477','1992.06.01 00:00:00.000','100','VP',2,'USA',111262.5);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(94,'Randy','Williams','892','1992.08.08 00:00:00.000','672','Mngr',4,'USA',56295);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(105,'Oliver H A','Bender','255','1992.10.08 00:00:00.000','000','CEO',1,'USA',212850);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(107,'Kevin','Cook','894','1993.02.01 00:00:00.000','670','Dir',2,'USA',111262.5);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(109,'Kelly','Brown','202','1993.02.04 00:00:00.000','600','Admin',5,'USA',27000.01);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(110,'Yuki','Ichida','22','1993.02.04 00:00:00.000','115','Eng',3,'Japan',6000000);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(113,'Mary','Page','845','1993.04.12 00:00:00.000','671','Eng',4,'USA',48000);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(114,'Bill','Parker','247','1993.06.01 00:00:00.000','623','Eng',5,'USA',35000);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(118,'Takashi','Yamamoto','23','1993.07.01 00:00:00.000','115','SRep',4,'Japan',7480000);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(121,'Roberto','Ferrari','1','1993.07.12 00:00:00.000','125','SRep',4,'USA',33000.01);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(127,'Michael','Yanowski','492','1993.08.09 00:00:00.000','100','SRep',4,'USA',44000);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(134,'Jacques','Glon',NULL,'1993.08.23 00:00:00.000','123','SRep',4,'France',38500);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(136,'Scott','Johnson','265','1993.09.13 00:00:00.000','623','Doc',3,'USA',60000);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(138,'T.J.','Green','218','1993.11.01 00:00:00.000','621','Eng',4,'USA',36000);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(141,'Pierre','Osborne',NULL,'1994.01.03 00:00:00.000','121','SRep',4,'Switzerland',110000);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(144,'John','Montgomery','820','1994.03.30 00:00:00.000','672','Eng',5,'USA',35000);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(145,'Mark','Guckenheimer','221','1994.05.02 00:00:00.000','622','Eng',5,'USA',32000);
COMMIT;
/* Inserting data into Table: EMPLOYEE_PROJECT */
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(144,'DGPII');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(113,'DGPII');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(24,'DGPII');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(8,'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(136,'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(15,'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(71,'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(145,'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(44,'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(4,'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(83,'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(138,'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(45,'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(20,'GUIDE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(24,'GUIDE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(113,'GUIDE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(8,'GUIDE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(4,'MAPDB');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(71,'MAPDB');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(46,'MKTPR');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(105,'MKTPR');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(12,'MKTPR');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(85,'MKTPR');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(110,'MKTPR');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(34,'MKTPR');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(8,'MKTPR');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(14,'MKTPR');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(52,'MKTPR');
COMMIT;
/* Inserting data into Table: JOB */
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('CEO',1,'USA','Chief Executive Officer',130000,250000,'No specific requirements.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('CFO',1,'USA','Chief Financial Officer',85000,140000,'15+ years in finance or 5+ years as a CFO
with a proven track record.
MBA or J.D. degree.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('VP',2,'USA','Vice President',80000,130000,'No specific requirements.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Dir',2,'USA','Director',75000,120000,'5-10 years as a director in computer or electronics industries.
An advanced degree.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Mngr',3,'USA','Manager',60000,100000,'BA/BS required.
3-5 years in management,
plus 2-4 years engineering experience.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Mngr',4,'USA','Manager',30000,60000,'5+ years office management experience.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Admin',4,'USA','Administrative Assistant',35000,55000,'3-5 years experience in executive environment.
Strong organizational and communication skills required.
BA degree preferred.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Admin',5,'USA','Administrative Assistant',20000,40000,'2-4 years clerical experience.
Facility with word processing and data entry.
AA degree preferred.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Admin',5,'England','Administrative Assistant',13400,26800,NULL,NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('PRel',4,'USA','Public Relations Rep.',25000,65000,NULL,NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Mktg',3,'USA','Marketing Analyst',40000,80000,'MBA required.
10+ years experience in high tech environment.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Mktg',4,'USA','Marketing Analyst',20000,50000,'BA/BS required. MBA preferred.
3-5 years experience.
Knowledgeable with spreadsheets and databases.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Accnt',4,'USA','Accountant',28000,55000,'CPA with 3-5 years experience.
Spreadsheet, data entry, and word processing knowledge required.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Finan',3,'USA','Financial Analyst',35000,85000,'5-10 years of accounting and financial experience.
Strong analytical skills.
CPA/MBA required.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Eng',2,'USA','Engineer',70000,110000,'Distinguished engineer.
Ph.D/MS/BS or equivalent experience.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Eng',3,'USA','Engineer',50000,90000,'5+ years experience.
BA/BS required.
MS degree preferred.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Eng',3,'Japan','Engineer',5400000,9720000,'5+ years experience.
BA/BS and/or MS degrees required.
Customer support experience desired.
Knowledge of Japanese and English.
',
Japanese
Mandarin
English
);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Eng',4,'USA','Engineer',30000,65000,'BA/BS and 3-5 years experience.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Eng',4,'England','Engineer',20100,43550,'BA/BS and
2-4 years experience in technical support.
Knowledge of several European languages helpful.
',
English
German
French
);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Eng',5,'USA','Engineer',25000,35000,'BA/BS preferred.
2-4 years technical experience.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Doc',3,'USA','Technical Writer',38000,60000,'4+ years writing highly technical
software documentation.
A bachelor''s degree or equivalent.
Programming experience required.
Excellent language skills.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Doc',5,'USA','Technical Writer',22000,40000,'BA in English/journalism or excellent language skills.
Some programming experience required.
2-4 years of technical writing.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Sales',3,'USA','Sales Co-ordinator',40000,70000,'Experience in sales and public relations
in a high tech environment.
Excellent communication skills.
BA or equivalent.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Sales',3,'England','Sales Co-ordinator',26800,46900,'Experience in sales and public relations
in a high tech environment.
Excellent communication skills.
BA or equivalent.
Knowledge of several European languages helpful.
',
English
German
French
);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'USA','Sales Representative',20000,100000,'Computer/electronics industry sales experience.
Excellent communications, negotiation, and analytical skills.
Experience in establishing long term customer relationships.
Some knowledge of Spanish required.
Travel required.
',
English
Spanish
);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'England','Sales Representative',13400,67000,'Computer/electronics industry sales experience.
Excellent communications, negotiation, and analytical skills.
Experience in establishing long term customer relationships.
Knowledge of several European languages helpful.
Travel required.
',
English
German
French
);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'Canada','Sales Representative',26400,132000,'Computer/electronics industry sales experience.
Excellent communications, negotiation, and analytical skills.
Experience in establishing long term customer relationships.
Travel required.
English plus speaking knowledge of French required.
',
English
French
);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'Switzerland','Sales Representative',28000,149000,'Computer/electronics industry sales experience.
Excellent communications, negotiation, and analytical skills.
Experience in establishing long term customer relationships.
Knowledge of German required; one or more other European language helpful.
Travel required.
',
German
French
English
Italian
);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'Japan','Sales Representative',2160000,10800000,'Computer/electronics industry sales experience.
Excellent communications, negotiation, and analytical skills.
Experience in establishing long term customer relationships.
Knowledge of Japanese required.
Travel required.
',
Japanese
English
);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'Italy','Sales Representative',20000,100000,'Computer/electronics industry sales experience.
Excellent communications, negotiation, and analytical skills.
Experience in establishing long term customer relationships.
Fluency in Italian; some knowledge of German helpful.
Travel required.
',
Italian
German
French
);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'France','Sales Representative',20000,100000,'Computer/electronics industry sales experience.
Excellent communications, negotiation, and analytical skills.
Experience in establishing long term customer relationships.
Fluency in French; some knowledge of German/Spanish helpful.
Travel required.
',
English
French
Spanish
);
COMMIT;
/* Inserting data into Table: PROJECT */
INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('VBASE','Video Database','Design a video data base management system for
controlling on-demand video distribution.
',45,'software');
INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('DGPII','DigiPizza','Develop second generation digital pizza maker
with flash-bake heating element and
digital ingredient measuring system.
',24,'other');
INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('GUIDE','AutoMap','Develop a prototype for the automobile version of
the hand-held map browsing device.
',20,'hardware');
INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('MAPDB','MapBrowser port','Port the map browsing database software to run
on the automobile model.
',4,'software');
INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('HWRII','Translator upgrade','Integrate the hand-writing recognition module into the
universal language translator.
',NULL,'software');
INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('MKTPR','Marketing project 3','Expand marketing and sales in the Pacific Rim.
Set up a field office in Australia and Singapore.
',85,'N/A');
COMMIT;
/* Inserting data into Table: PROJ_DEPT_BUDGET */
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'GUIDE','100',
1
1
1
0
,200000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'GUIDE','671',
3
2
1
0
,450000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1993,'MAPDB','621',
0
0
0
1
,20000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MAPDB','621',
2
1
0
0
,40000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MAPDB','622',
1
1
0
0
,60000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MAPDB','671',
1
1
0
0
,11000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'HWRII','670',
1
1
1
1
,20000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'HWRII','621',
2
3
2
1
,400000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'HWRII','622',
1
1
2
2
,100000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MKTPR','623',
1
1
1
2
,80000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MKTPR','672',
1
1
1
2
,100000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MKTPR','100',
4
5
6
6
,1000000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MKTPR','110',
2
2
0
3
,200000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MKTPR','000',
1
1
2
2
,100000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1995,'MKTPR','623',
7
7
4
4
,1200000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1995,'MKTPR','672',
2
3
3
3
,800000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1995,'MKTPR','100',
4
5
6
6
,2000000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1995,'MKTPR','110',
1
1
1
1
,1200000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'VBASE','621',
4
5
5
3
,1900000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1995,'VBASE','621',
4
3
2
2
,900000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'VBASE','622',
2
2
2
1
,400000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'VBASE','100',
1
1
2
3
,300000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1995,'VBASE','100',
3
3
1
1
,1500000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1996,'VBASE','100',
1
1
0
0
,150000);
COMMIT;
/* Inserting data into Table: SALARY_HISTORY */
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(28,'1992.12.15 00:00:00.000','admin2',20000,10);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(2,'1992.12.15 00:00:00.000','admin2',98000,8.0612);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(4,'1992.12.15 00:00:00.000','admin2',90000,8.3333);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(5,'1992.12.15 00:00:00.000','admin2',95000,8.1578);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(11,'1992.12.15 00:00:00.000','admin2',70000,7.5);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(12,'1992.12.15 00:00:00.000','admin2',48000,7.5);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(14,'1992.12.15 00:00:00.000','admin2',62000,7.5);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(15,'1992.12.15 00:00:00.000','admin2',60000,7.5);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(20,'1992.12.15 00:00:00.000','admin2',80000,7.5);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(24,'1992.12.15 00:00:00.000','admin2',73000,7.5);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(29,'1992.12.15 00:00:00.000','admin2',62000,7.5);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(34,'1992.12.15 00:00:00.000','admin2',55000,7.5);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(36,'1992.12.15 00:00:00.000','admin2',30000,7.5);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(37,'1992.12.15 00:00:00.000','admin2',35000,7.5);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(44,'1992.12.15 00:00:00.000','admin2',50000,7.5);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(45,'1992.12.15 00:00:00.000','admin2',72000,7.5);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(8,'1993.09.08 00:00:00.000','elaine',62000,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(9,'1993.09.08 00:00:00.000','elaine',72000,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(11,'1993.09.08 00:00:00.000','elaine',75250,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(12,'1993.09.08 00:00:00.000','elaine',51600,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(14,'1993.09.08 00:00:00.000','elaine',66650,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(15,'1993.09.08 00:00:00.000','elaine',64500,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(20,'1993.09.08 00:00:00.000','elaine',86000,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(24,'1993.09.08 00:00:00.000','elaine',78475,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(28,'1993.09.08 00:00:00.000','elaine',22000,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(29,'1993.09.08 00:00:00.000','elaine',66650,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(34,'1993.09.08 00:00:00.000','elaine',59125,4.2499);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(36,'1993.09.08 00:00:00.000','elaine',32250,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(37,'1993.09.08 00:00:00.000','elaine',37625,4.2499);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(44,'1993.09.08 00:00:00.000','elaine',53750,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(45,'1993.09.08 00:00:00.000','elaine',77400,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(52,'1993.09.08 00:00:00.000','elaine',41000,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(61,'1993.09.08 00:00:00.000','elaine',60000,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(65,'1993.09.08 00:00:00.000','elaine',30000,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(71,'1993.09.08 00:00:00.000','elaine',51000,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(72,'1993.09.08 00:00:00.000','elaine',88000,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(83,'1993.09.08 00:00:00.000','elaine',60000,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(94,'1993.09.08 00:00:00.000','elaine',54000,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(46,'1993.12.20 00:00:00.000','tj',120000,-3.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(85,'1993.12.20 00:00:00.000','tj',115000,-3.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(105,'1993.12.20 00:00:00.000','tj',220000,-3.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(107,'1993.12.20 00:00:00.000','tj',115000,-3.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(11,'1993.12.20 00:00:00.000','elaine',78448.13,9.9999);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(61,'1993.12.20 00:00:00.000','elaine',62550,10);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(72,'1993.12.20 00:00:00.000','elaine',91740,10);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(118,'1993.12.20 00:00:00.000','elaine',6800000,10);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(121,'1993.12.20 00:00:00.000','elaine',30000,10);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(127,'1993.12.20 00:00:00.000','elaine',40000,10);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(134,'1993.12.20 00:00:00.000','elaine',35000,10);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(28,'2017.11.06 16:46:27.145','SYSDBA',22935,0);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(28,'2017.11.06 16:47:01.376','SYSDBA',22935.01,0);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(12,'2017.12.29 12:18:48.909','SYSDBA',53793,0);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(12,'2017.12.29 12:18:58.051','SYSDBA',53793.01,0);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(83,'2018.01.04 10:57:34.245','SYSDBA',62550,0);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(121,'2018.03.13 15:29:08.850','SYSDBA',33000,0);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(109,'2018.03.13 17:12:06.340','SYSDBA',27000,0);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(34,'2018.03.13 17:13:20.671','SYSDBA',61637.81,0);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(83,'2018.03.13 17:13:35.845','SYSDBA',62550.01,0);
COMMIT;
/* Inserting data into Table: SALES */
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V91E0210',1004,11,'shipped','1991.03.04 00:00:00.000','1991.03.05 00:00:00.000',NULL,'y',10,5000,0.100000001490116,'hardware');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V92E0340',1004,11,'shipped','1992.10.15 00:00:00.000','1992.10.16 00:00:00.000','1992.10.17 00:00:00.000','y',7,70000,0,'hardware');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V92J1003',1010,61,'shipped','1992.07.26 00:00:00.000','1992.08.04 00:00:00.000','1992.09.15 00:00:00.000','y',15,2985,0,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93J2004',1010,118,'shipped','1993.10.30 00:00:00.000','1993.12.02 00:00:00.000','1993.11.15 00:00:00.000','y',3,210,0,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93J3100',1010,118,'shipped','1993.08.20 00:00:00.000','1993.08.20 00:00:00.000',NULL,'y',16,18000.4,0.100000001490116,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V92F3004',1012,11,'shipped','1992.10.15 00:00:00.000','1993.01.16 00:00:00.000','1993.01.16 00:00:00.000','y',3,2000,0,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93F3088',1012,134,'shipped','1993.08.27 00:00:00.000','1993.09.08 00:00:00.000',NULL,'n',10,10000,0,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93F2030',1012,134,'open','1993.12.12 00:00:00.000',NULL,NULL,'y',15,450000.49,0,'hardware');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93F2051',1012,134,'waiting','1993.12.18 00:00:00.000',NULL,'1994.03.01 00:00:00.000','n',1,999.98,0,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93H0030',1005,118,'open','1993.12.12 00:00:00.000',NULL,'1994.01.01 00:00:00.000','y',20,5980,0.200000002980232,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V94H0079',1005,61,'open','1994.02.13 00:00:00.000',NULL,'1994.04.20 00:00:00.000','n',10,9000,0.0500000007450581,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9324200',1001,72,'shipped','1993.08.09 00:00:00.000','1993.08.09 00:00:00.000','1993.08.17 00:00:00.000','y',1000,560000,0.200000002980232,'hardware');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9324320',1001,127,'shipped','1993.08.16 00:00:00.000','1993.08.16 00:00:00.000','1993.09.01 00:00:00.000','y',1,0,1,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9320630',1001,127,'open','1993.12.12 00:00:00.000',NULL,'1993.12.15 00:00:00.000','n',3,60000,0.200000002980232,'hardware');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9420099',1001,127,'open','1994.01.17 00:00:00.000',NULL,'1994.06.01 00:00:00.000','n',100,3399.15,0.150000005960464,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9427029',1001,127,'shipped','1994.02.07 00:00:00.000','1994.02.10 00:00:00.000','1994.02.10 00:00:00.000','n',17,422210.97,0,'hardware');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9333005',1002,11,'shipped','1993.02.03 00:00:00.000','1993.03.03 00:00:00.000',NULL,'y',2,600.5,0,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9333006',1002,11,'shipped','1993.04.27 00:00:00.000','1993.05.02 00:00:00.000','1993.05.02 00:00:00.000','n',5,20000,0,'other');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9336100',1002,11,'waiting','1993.12.27 00:00:00.000','1994.01.01 00:00:00.000','1994.01.01 00:00:00.000','n',150,14850,0.0500000007450581,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9346200',1003,11,'waiting','1993.12.31 00:00:00.000',NULL,'1994.01.24 00:00:00.000','n',3,0,1,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9345200',1003,11,'shipped','1993.11.11 00:00:00.000','1993.12.02 00:00:00.000','1993.12.01 00:00:00.000','y',900,27000,0.300000011920929,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9345139',1003,127,'shipped','1993.09.09 00:00:00.000','1993.09.20 00:00:00.000','1993.10.01 00:00:00.000','y',20,12582.12,0.100000001490116,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93C0120',1006,72,'shipped','1993.03.22 00:00:00.000','1993.05.31 00:00:00.000','1993.04.17 00:00:00.000','y',1,47.5,0,'other');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93C0990',1006,72,'shipped','1993.08.09 00:00:00.000','1993.09.02 00:00:00.000',NULL,'y',40,399960.5,0.100000001490116,'hardware');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9456220',1007,127,'open','1994.01.04 00:00:00.000',NULL,'1994.01.30 00:00:00.000','y',1,3999.99,0,'hardware');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93S4702',1011,121,'shipped','1993.10.27 00:00:00.000','1993.10.28 00:00:00.000','1993.12.15 00:00:00.000','y',4,120000,0,'hardware');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V94S6400',1011,141,'waiting','1994.01.06 00:00:00.000',NULL,'1994.02.15 00:00:00.000','y',20,1980.72,0.400000005960464,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93H3009',1008,61,'shipped','1993.08.01 00:00:00.000','1993.12.02 00:00:00.000','1993.12.01 00:00:00.000','n',3,9000,0.0500000007450581,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93H0500',1008,61,'open','1993.12.12 00:00:00.000',NULL,'1993.12.15 00:00:00.000','n',3,16000,0.200000002980232,'hardware');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93F0020',1009,61,'shipped','1993.10.10 00:00:00.000','1993.11.11 00:00:00.000','1993.11.11 00:00:00.000','n',1,490.69,0,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93I4700',1013,121,'open','1993.10.27 00:00:00.000',NULL,'1993.12.15 00:00:00.000','n',5,2693,0,'hardware');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93B1002',1014,134,'shipped','1993.09.20 00:00:00.000','1993.09.21 00:00:00.000','1993.09.25 00:00:00.000','y',1,100.02,0,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93N5822',1015,134,'shipped','1993.12.18 00:00:00.000','1994.01.14 00:00:00.000',NULL,'n',2,1500,0,'software');
COMMIT;
/* Data Ends */
/* Index definitions for all user tables */
CREATE INDEX CUSTNAMEX ON CUSTOMER(CUSTOMER);
CREATE INDEX CUSTREGION ON CUSTOMER(COUNTRY, CITY);
CREATE DESCENDING INDEX BUDGETX ON DEPARTMENT(BUDGET);
CREATE INDEX NAMEX ON EMPLOYEE(LAST_NAME, FIRST_NAME);
CREATE DESCENDING INDEX MAXSALX ON JOB(JOB_COUNTRY, MAX_SALARY);
CREATE INDEX MINSALX ON JOB(JOB_COUNTRY, MIN_SALARY);
CREATE UNIQUE INDEX PRODTYPEX ON PROJECT(PRODUCT, PROJ_NAME);
CREATE DESCENDING INDEX CHANGEX ON SALARY_HISTORY(CHANGE_DATE);
CREATE INDEX UPDATERX ON SALARY_HISTORY(UPDATER_ID);
CREATE INDEX NEEDX ON SALES(DATE_NEEDED);
CREATE DESCENDING INDEX QTYX ON SALES(ITEM_TYPE, QTY_ORDERED);
CREATE INDEX SALESTATX ON SALES(ORDER_STATUS, PAID);
ALTER TABLE CUSTOMER ADD FOREIGN KEY (COUNTRY) REFERENCES COUNTRY (COUNTRY);
ALTER TABLE DEPARTMENT ADD FOREIGN KEY (HEAD_DEPT) REFERENCES DEPARTMENT (DEPT_NO);
ALTER TABLE DEPARTMENT ADD FOREIGN KEY (MNGR_NO) REFERENCES EMPLOYEE (EMP_NO);
ALTER TABLE EMPLOYEE ADD FOREIGN KEY (DEPT_NO) REFERENCES DEPARTMENT (DEPT_NO);
ALTER TABLE EMPLOYEE ADD FOREIGN KEY (JOB_CODE, JOB_GRADE, JOB_COUNTRY) REFERENCES JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY);
ALTER TABLE EMPLOYEE_PROJECT ADD FOREIGN KEY (EMP_NO) REFERENCES EMPLOYEE (EMP_NO);
ALTER TABLE EMPLOYEE_PROJECT ADD FOREIGN KEY (PROJ_ID) REFERENCES PROJECT (PROJ_ID);
ALTER TABLE JOB ADD FOREIGN KEY (JOB_COUNTRY) REFERENCES COUNTRY (COUNTRY);
ALTER TABLE PROJECT ADD FOREIGN KEY (TEAM_LEADER) REFERENCES EMPLOYEE (EMP_NO);
ALTER TABLE PROJ_DEPT_BUDGET ADD FOREIGN KEY (DEPT_NO) REFERENCES DEPARTMENT (DEPT_NO);
ALTER TABLE PROJ_DEPT_BUDGET ADD FOREIGN KEY (PROJ_ID) REFERENCES PROJECT (PROJ_ID);
ALTER TABLE SALARY_HISTORY ADD FOREIGN KEY (EMP_NO) REFERENCES EMPLOYEE (EMP_NO);
ALTER TABLE SALES ADD FOREIGN KEY (CUST_NO) REFERENCES CUSTOMER (CUST_NO);
ALTER TABLE SALES ADD FOREIGN KEY (SALES_REP) REFERENCES EMPLOYEE (EMP_NO);
CREATE SEQUENCE CUST_NO_GEN;
ALTER SEQUENCE CUST_NO_GEN RESTART WITH 1016;
CREATE SEQUENCE EMP_NO_GEN;
ALTER SEQUENCE EMP_NO_GEN RESTART WITH 158;
CREATE SEQUENCE FB$OUT_SEQ;
ALTER SEQUENCE FB$OUT_SEQ RESTART WITH 1;
/* View: DEPTLIST, Owner: SYSDBA */
CREATE VIEW DEPTLIST (
EMP_NO,
FIRST_NAME,
LAST_NAME,
PHONE_EXT,
HIRE_DATE,
DEPT_NO,
JOB_CODE,
JOB_GRADE,
JOB_COUNTRY,
SALARY,
FULL_NAME,
DEPT_PATH,
DEPT_KEY_PATH
) AS
with recursive Depts As (
Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,
cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH
From DEPARTMENT Where HEAD_DEPT is NULL
UNION ALL
Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,
Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH
From DEPARTMENT D
JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO
)
Select distinct A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,
A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH
From EMPLOYEE A
JOIN Depts D On D.DEPT_NO = A.DEPT_NO
;
/* View: PHONE_LIST, Owner: SYSDBA */
CREATE VIEW PHONE_LIST (
EMP_NO,
FIRST_NAME,
LAST_NAME,
PHONE_EXT,
LOCATION,
PHONE_NO
) AS
SELECT
emp_no, first_name, last_name, phone_ext, location, phone_no
FROM employee, department
WHERE employee.dept_no = department.dept_no
;
/* Add Domain Check Constraints */
ALTER DOMAIN BUDGET ADD CONSTRAINT
CHECK (VALUE > 10000 AND VALUE <= 2000000);
ALTER DOMAIN CUSTNO ADD CONSTRAINT
CHECK (VALUE > 1000);
ALTER DOMAIN DEPTNO ADD CONSTRAINT
CHECK (VALUE = '000' OR (VALUE > '0' AND VALUE <= '999') OR VALUE IS NULL);
ALTER DOMAIN JOBCODE ADD CONSTRAINT
CHECK (VALUE > '99999');
ALTER DOMAIN JOBGRADE ADD CONSTRAINT
CHECK (VALUE BETWEEN 0 AND 6);
ALTER DOMAIN PONUMBER ADD CONSTRAINT
CHECK (VALUE STARTING WITH 'V');
ALTER DOMAIN PRODTYPE ADD CONSTRAINT
CHECK (VALUE IN ('software', 'hardware', 'other', 'N/A'));
ALTER DOMAIN PROJNO ADD CONSTRAINT
CHECK (VALUE = UPPER (VALUE));
ALTER DOMAIN SALARY ADD CONSTRAINT
CHECK (VALUE > 0);
ALTER TABLE JOB ADD
CHECK (min_salary < max_salary);
ALTER TABLE JOB ADD
CHECK (min_salary < max_salary);
ALTER TABLE EMPLOYEE ADD
CHECK ( salary >= (SELECT min_salary FROM job WHERE
job.job_code = employee.job_code AND
job.job_grade = employee.job_grade AND
job.job_country = employee.job_country) AND
salary <= (SELECT max_salary FROM job WHERE
job.job_code = employee.job_code AND
job.job_grade = employee.job_grade AND
job.job_country = employee.job_country));
ALTER TABLE PROJ_DEPT_BUDGET ADD
CHECK (FISCAL_YEAR >= 1993);
ALTER TABLE SALARY_HISTORY ADD
CHECK (percent_change between -50 and 50);
ALTER TABLE CUSTOMER ADD
CHECK (on_hold IS NULL OR on_hold = '*');
ALTER TABLE SALES ADD
CHECK (order_status in
('new', 'open', 'shipped', 'waiting'));
ALTER TABLE SALES ADD
CHECK (ship_date >= order_date OR ship_date IS NULL);
ALTER TABLE SALES ADD
CHECK (date_needed > order_date OR date_needed IS NULL);
ALTER TABLE SALES ADD
CHECK (paid in ('y', 'n'));
ALTER TABLE SALES ADD
CHECK (qty_ordered >= 1);
ALTER TABLE SALES ADD
CHECK (total_value >= 0);
ALTER TABLE SALES ADD
CHECK (discount >= 0 AND discount <= 1);
ALTER TABLE SALES ADD
CHECK (NOT (order_status = 'shipped' AND ship_date IS NULL));
ALTER TABLE SALES ADD
CHECK (NOT (order_status = 'shipped' AND
EXISTS (SELECT on_hold FROM customer
WHERE customer.cust_no = sales.cust_no
AND customer.on_hold = '*')));
/* Exceptions */
CREATE EXCEPTION CUSTOMER_CHECK 'Overdue balance -- can not ship.';
CREATE EXCEPTION CUSTOMER_ON_HOLD 'This customer is on hold.';
CREATE EXCEPTION ORDER_ALREADY_SHIPPED 'Order status is "shipped."';
CREATE EXCEPTION REASSIGN_SALES 'Reassign the sales records before deleting this employee.';
CREATE EXCEPTION UNKNOWN_EMP_ID 'Invalid employee number or project id.';
COMMIT WORK;
SET AUTODDL OFF;
SET TERM ^;
/* Stored procedures Definitions*/
CREATE PROCEDURE SHOW_LANGS
(
CODE VARCHAR(5) CHARACTER SET NONE,
GRADE SMALLINT,
CTY VARCHAR(15) CHARACTER SET NONE
)
RETURNS
(
LANGUAGES VARCHAR(15) CHARACTER SET NONE
)
AS BEGIN SUSPEND; EXIT; END
^
CREATE PROCEDURE ADD_EMP_PROJ
(
EMP_NO SMALLINT,
PROJ_ID CHAR(5) CHARACTER SET NONE
)
AS BEGIN EXIT; END
^
CREATE PROCEDURE ALL_LANGS
RETURNS
(
CODE VARCHAR(5) CHARACTER SET NONE,
GRADE VARCHAR(5) CHARACTER SET NONE,
COUNTRY VARCHAR(15) CHARACTER SET NONE,
LANG VARCHAR(15) CHARACTER SET NONE
)
AS BEGIN SUSPEND; EXIT; END
^
CREATE PROCEDURE DELETE_EMPLOYEE
(
EMP_NUM INTEGER
)
AS BEGIN EXIT; END
^
CREATE PROCEDURE DEPT_BUDGET
(
DNO CHAR(3) CHARACTER SET NONE
)
RETURNS
(
TOT DECIMAL(12,2)
)
AS BEGIN SUSPEND; EXIT; END
^
CREATE PROCEDURE GET_EMP_PROJ
(
EMP_NO SMALLINT
)
RETURNS
(
PROJ_ID CHAR(5) CHARACTER SET NONE
)
AS BEGIN SUSPEND; EXIT; END
^
CREATE PROCEDURE "Has Space"
(
ARG1 INTEGER
)
AS BEGIN EXIT; END
^
CREATE PROCEDURE MAIL_LABEL
(
CUST_NO INTEGER
)
RETURNS
(
LINE1 CHAR(40) CHARACTER SET NONE,
LINE2 CHAR(40) CHARACTER SET NONE,
LINE3 CHAR(40) CHARACTER SET NONE,
LINE4 CHAR(40) CHARACTER SET NONE,
LINE5 CHAR(40) CHARACTER SET NONE,
LINE6 CHAR(40) CHARACTER SET NONE
)
AS BEGIN SUSPEND; EXIT; END
^
CREATE PROCEDURE ORG_CHART
RETURNS
(
HEAD_DEPT CHAR(25) CHARACTER SET NONE,
DEPARTMENT CHAR(25) CHARACTER SET NONE,
MNGR_NAME CHAR(20) CHARACTER SET NONE,
TITLE CHAR(5) CHARACTER SET NONE,
EMP_CNT INTEGER
)
AS BEGIN SUSPEND; EXIT; END
^
CREATE PROCEDURE SHIP_ORDER
(
PO_NUM CHAR(8) CHARACTER SET NONE
)
AS BEGIN EXIT; END
^
CREATE PROCEDURE SUB_TOT_BUDGET
(
HEAD_DEPT CHAR(3) CHARACTER SET NONE
)
RETURNS
(
TOT_BUDGET DECIMAL(12,2),
AVG_BUDGET DECIMAL(12,2),
MIN_BUDGET DECIMAL(12,2),
MAX_BUDGET DECIMAL(12,2)
)
AS BEGIN SUSPEND; EXIT; END
^
CREATE PROCEDURE "UC SPACE"
(
ARG1 INTEGER
)
AS BEGIN EXIT; END
^
CREATE PROCEDURE "iCASE"
AS BEGIN EXIT; END
^
SET TERM ;^
COMMIT WORK;
SET AUTODDL ON;
SET TERM ^;
/* Triggers only will work for SQL triggers */
CREATE TRIGGER SET_CUST_NO FOR CUSTOMER
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
if (new.cust_no is null) then
new.cust_no = gen_id(cust_no_gen, 1);
END
^
CREATE TRIGGER SET_EMP_NO FOR EMPLOYEE
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
if (new.emp_no is null) then
new.emp_no = gen_id(emp_no_gen, 1);
END
^
CREATE TRIGGER SAVE_SALARY_CHANGE FOR EMPLOYEE
ACTIVE AFTER UPDATE POSITION 0
AS
BEGIN
IF (old.salary <> new.salary) THEN
INSERT INTO salary_history
(emp_no, change_date, updater_id, old_salary, percent_change)
VALUES (
old.emp_no,
'NOW',
user,
old.salary,
(new.salary - old.salary) * 100 / old.salary);
END
^
CREATE TRIGGER POST_NEW_ORDER FOR SALES
ACTIVE AFTER INSERT POSITION 0
AS
BEGIN
POST_EVENT 'new_order';
END
^
COMMIT WORK^
SET TERM ;^
COMMIT WORK;
SET AUTODDL OFF;
SET TERM ^;
/* Stored procedure Bodies */
ALTER PROCEDURE SHOW_LANGS
(
CODE VARCHAR(5) CHARACTER SET NONE,
GRADE SMALLINT,
CTY VARCHAR(15) CHARACTER SET NONE
)
RETURNS
(
LANGUAGES VARCHAR(15) CHARACTER SET NONE
)
AS
DECLARE VARIABLE i INTEGER;
BEGIN
i = 1;
WHILE (i <= 5) DO
BEGIN
SELECT language_req[:i] FROM joB
WHERE ((job_code = :code) AND (job_grade = :grade) AND (job_country = :cty)
AND (language_req IS NOT NULL))
INTO :languages;
IF (languages = ' ') THEN /* Prints 'NULL' instead of blanks */
languages = 'NULL';
i = i +1;
SUSPEND;
END
END
^
ALTER PROCEDURE ADD_EMP_PROJ
(
EMP_NO SMALLINT,
PROJ_ID CHAR(5) CHARACTER SET NONE
)
AS
BEGIN
BEGIN
INSERT INTO employee_project (emp_no, proj_id) VALUES (:emp_no, :proj_id);
WHEN SQLCODE -530 DO
EXCEPTION unknown_emp_id;
END
END
^
ALTER PROCEDURE ALL_LANGS
RETURNS
(
CODE VARCHAR(5) CHARACTER SET NONE,
GRADE VARCHAR(5) CHARACTER SET NONE,
COUNTRY VARCHAR(15) CHARACTER SET NONE,
LANG VARCHAR(15) CHARACTER SET NONE
)
AS
BEGIN
FOR SELECT job_code, job_grade, job_country FROM job
INTO :code, :grade, :country
DO
BEGIN
FOR SELECT languages FROM show_langs
(:code, :grade, :country) INTO :lang DO
SUSPEND;
/* Put nice separators between rows */
code = '=====';
grade = '=====';
country = '===============';
lang = '==============';
SUSPEND;
END
END
^
ALTER PROCEDURE DELETE_EMPLOYEE
(
EMP_NUM INTEGER
)
AS
DECLARE VARIABLE any_sales INTEGER;
BEGIN
any_sales = 0;
/*
* If there are any sales records referencing this employee,
* cannot delete the employee until the sales are re-assigned
* to another employee or changed to NULL.
*/
SELECT count(po_number)
FROM sales
WHERE sales_rep = :emp_num
INTO :any_sales;
IF (any_sales > 0) THEN
BEGIN
EXCEPTION reassign_sales;
END
/*
* If the employee is a manager, update the department.
*/
UPDATE department
SET mngr_no = NULL
WHERE mngr_no = :emp_num;
/*
* If the employee is a project leader, update project.
*/
UPDATE project
SET team_leader = NULL
WHERE team_leader = :emp_num;
/*
* Delete the employee from any projects.
*/
DELETE FROM employee_project
WHERE emp_no = :emp_num;
/*
* Delete old salary records.
*/
DELETE FROM salary_history
WHERE emp_no = :emp_num;
/*
* Delete the employee.
*/
DELETE FROM employee
WHERE emp_no = :emp_num;
END
^
ALTER PROCEDURE DEPT_BUDGET
(
DNO CHAR(3) CHARACTER SET NONE
)
RETURNS
(
TOT DECIMAL(12,2)
)
AS
DECLARE VARIABLE sumb DECIMAL(12,2);
DECLARE VARIABLE rdno CHAR(3);
DECLARE VARIABLE cnt INTEGER;
BEGIN
tot = 0;
SELECT budget FROM department WHERE dept_no = :dno INTO :tot;
SELECT count(budget) FROM department WHERE head_dept = :dno INTO :cnt;
IF (cnt = 0) THEN
SUSPEND;
FOR SELECT dept_no
FROM department
WHERE head_dept = :dno
INTO :rdno
DO
BEGIN
EXECUTE PROCEDURE dept_budget :rdno RETURNING_VALUES :sumb;
tot = tot + sumb;
END
SUSPEND;
END
^
ALTER PROCEDURE GET_EMP_PROJ
(
EMP_NO SMALLINT
)
RETURNS
(
PROJ_ID CHAR(5) CHARACTER SET NONE
)
AS
BEGIN
FOR SELECT proj_id
FROM employee_project
WHERE emp_no = :emp_no
INTO :proj_id
DO
SUSPEND;
END
^
ALTER PROCEDURE "Has Space"
(
ARG1 INTEGER
)
AS
Begin End
^
ALTER PROCEDURE MAIL_LABEL
(
CUST_NO INTEGER
)
RETURNS
(
LINE1 CHAR(40) CHARACTER SET NONE,
LINE2 CHAR(40) CHARACTER SET NONE,
LINE3 CHAR(40) CHARACTER SET NONE,
LINE4 CHAR(40) CHARACTER SET NONE,
LINE5 CHAR(40) CHARACTER SET NONE,
LINE6 CHAR(40) CHARACTER SET NONE
)
AS
DECLARE VARIABLE customer VARCHAR(25);
DECLARE VARIABLE first_name VARCHAR(15);
DECLARE VARIABLE last_name VARCHAR(20);
DECLARE VARIABLE addr1 VARCHAR(30);
DECLARE VARIABLE addr2 VARCHAR(30);
DECLARE VARIABLE city VARCHAR(25);
DECLARE VARIABLE state VARCHAR(15);
DECLARE VARIABLE country VARCHAR(15);
DECLARE VARIABLE postcode VARCHAR(12);
DECLARE VARIABLE cnt INTEGER;
BEGIN
line1 = '';
line2 = '';
line3 = '';
line4 = '';
line5 = '';
line6 = '';
SELECT customer, contact_first, contact_last, address_line1,
address_line2, city, state_province, country, postal_code
FROM CUSTOMER
WHERE cust_no = :cust_no
INTO :customer, :first_name, :last_name, :addr1, :addr2,
:city, :state, :country, :postcode;
IF (customer IS NOT NULL) THEN
line1 = customer;
IF (first_name IS NOT NULL) THEN
line2 = first_name || ' ' || last_name;
ELSE
line2 = last_name;
IF (addr1 IS NOT NULL) THEN
line3 = addr1;
IF (addr2 IS NOT NULL) THEN
line4 = addr2;
IF (country = 'USA') THEN
BEGIN
IF (city IS NOT NULL) THEN
line5 = city || ', ' || state || ' ' || postcode;
ELSE
line5 = state || ' ' || postcode;
END
ELSE
BEGIN
IF (city IS NOT NULL) THEN
line5 = city || ', ' || state;
ELSE
line5 = state;
line6 = country || ' ' || postcode;
END
SUSPEND;
END
^
ALTER PROCEDURE ORG_CHART
RETURNS
(
HEAD_DEPT CHAR(25) CHARACTER SET NONE,
DEPARTMENT CHAR(25) CHARACTER SET NONE,
MNGR_NAME CHAR(20) CHARACTER SET NONE,
TITLE CHAR(5) CHARACTER SET NONE,
EMP_CNT INTEGER
)
AS
DECLARE VARIABLE mngr_no INTEGER;
DECLARE VARIABLE dno CHAR(3);
BEGIN
FOR SELECT h.department, d.department, d.mngr_no, d.dept_no
FROM department d
LEFT OUTER JOIN department h ON d.head_dept = h.dept_no
ORDER BY d.dept_no
INTO :head_dept, :department, :mngr_no, :dno
DO
BEGIN
IF (:mngr_no IS NULL) THEN
BEGIN
mngr_name = '--TBH--';
title = '';
END
ELSE
SELECT full_name, job_code
FROM employee
WHERE emp_no = :mngr_no
INTO :mngr_name, :title;
SELECT COUNT(emp_no)
FROM employee
WHERE dept_no = :dno
INTO :emp_cnt;
SUSPEND;
END
END
^
ALTER PROCEDURE SHIP_ORDER
(
PO_NUM CHAR(8) CHARACTER SET NONE
)
AS
DECLARE VARIABLE ord_stat CHAR(7);
DECLARE VARIABLE hold_stat CHAR(1);
DECLARE VARIABLE cust_no INTEGER;
DECLARE VARIABLE any_po CHAR(8);
BEGIN
SELECT s.order_status, c.on_hold, c.cust_no
FROM sales s, customer c
WHERE po_number = :po_num
AND s.cust_no = c.cust_no
INTO :ord_stat, :hold_stat, :cust_no;
/* This purchase order has been already shipped. */
IF (ord_stat = 'shipped') THEN
BEGIN
EXCEPTION order_already_shipped;
END
/* Customer is on hold. */
ELSE IF (hold_stat = '*') THEN
BEGIN
EXCEPTION customer_on_hold;
END
/*
* If there is an unpaid balance on orders shipped over 2 months ago,
* put the customer on hold.
*/
FOR SELECT po_number
FROM sales
WHERE cust_no = :cust_no
AND order_status = 'shipped'
AND paid = 'n'
AND ship_date < CAST('NOW' AS TIMESTAMP) - 60
INTO :any_po
DO
BEGIN
EXCEPTION customer_check;
UPDATE customer
SET on_hold = '*'
WHERE cust_no = :cust_no;
END
/*
* Ship the order.
*/
UPDATE sales
SET order_status = 'shipped', ship_date = 'NOW'
WHERE po_number = :po_num;
END
^
ALTER PROCEDURE SUB_TOT_BUDGET
(
HEAD_DEPT CHAR(3) CHARACTER SET NONE
)
RETURNS
(
TOT_BUDGET DECIMAL(12,2),
AVG_BUDGET DECIMAL(12,2),
MIN_BUDGET DECIMAL(12,2),
MAX_BUDGET DECIMAL(12,2)
)
AS
BEGIN
SELECT SUM(budget), AVG(budget), MIN(budget), MAX(budget)
FROM department
WHERE head_dept = :head_dept
INTO :tot_budget, :avg_budget, :min_budget, :max_budget;
SUSPEND;
END
^
ALTER PROCEDURE "UC SPACE"
(
ARG1 INTEGER
)
AS
Begin End
^
ALTER PROCEDURE "iCASE"
AS
Begin End
^
SET TERM ;^
COMMIT WORK;
SET AUTODDL ON;
/* Comments on System Objects */
/* Grant Roles for this database */
/* Grant permissions for this database */
GRANT REFERENCES ON TABLE COUNTRIES TO USER BOB ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE COUNTRY TO USER PUBLIC WITH GRANT OPTION ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE CUSTOMER TO USER PUBLIC WITH GRANT OPTION ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE DEPARTMENT TO USER PUBLIC WITH GRANT OPTION ;
GRANT SELECT ON TABLE EMPLOYEE TO USER ALICE WITH GRANT OPTION GRANTED BY BOB ;
GRANT SELECT,Update(FIRST_NAME,LAST_NAME) ON TABLE EMPLOYEE TO USER BOB ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE EMPLOYEE TO USER PUBLIC WITH GRANT OPTION ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE EMPLOYEE_PROJECT TO USER PUBLIC WITH GRANT OPTION ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE JOB TO USER PUBLIC WITH GRANT OPTION ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE PHONE_LIST TO USER PUBLIC WITH GRANT OPTION ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE PROJECT TO USER PUBLIC WITH GRANT OPTION ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE PROJ_DEPT_BUDGET TO USER PUBLIC WITH GRANT OPTION ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE SALARY_HISTORY TO USER PUBLIC WITH GRANT OPTION ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE SALES TO USER PUBLIC WITH GRANT OPTION ;
GRANT RDB$ADMIN TO ALICE;
GRANT RDB$ADMIN TO BOB;
GRANT EXECUTE ON PROCEDURE ADD_EMP_PROJ TO USER PUBLIC WITH GRANT OPTION ;
GRANT EXECUTE ON PROCEDURE ALL_LANGS TO USER PUBLIC WITH GRANT OPTION ;
GRANT EXECUTE ON PROCEDURE DELETE_EMPLOYEE TO USER PUBLIC WITH GRANT OPTION ;
GRANT EXECUTE ON PROCEDURE DEPT_BUDGET TO USER PUBLIC WITH GRANT OPTION ;
GRANT EXECUTE ON PROCEDURE GET_EMP_PROJ TO USER PUBLIC WITH GRANT OPTION ;
GRANT EXECUTE ON PROCEDURE MAIL_LABEL TO USER PUBLIC WITH GRANT OPTION ;
GRANT EXECUTE ON PROCEDURE ORG_CHART TO USER PUBLIC WITH GRANT OPTION ;
GRANT EXECUTE ON PROCEDURE SHIP_ORDER TO USER PUBLIC WITH GRANT OPTION ;
GRANT EXECUTE ON PROCEDURE SHOW_LANGS TO USER PUBLIC WITH GRANT OPTION ;
GRANT EXECUTE ON PROCEDURE SUB_TOT_BUDGET TO USER PUBLIC WITH GRANT OPTION ;
SET SQL DIALECT 3;
SET AUTODDL ON;
/* CREATE DATABASE 'localhost:/tmp/ibx-testsuite/testsuite1.fdb' PAGE_SIZE 8192
DEFAULT CHARACTER SET NONE; */
COMMENT ON DATABASE IS 'Employee Test DB';
/* Domain definitions */
CREATE DOMAIN ADDRESSLINE AS VARCHAR(30);
CREATE DOMAIN BUDGET AS DECIMAL(12,2)
DEFAULT 50000;
CREATE DOMAIN COUNTRYNAME AS VARCHAR(15);
CREATE DOMAIN CUSTNO AS INTEGER;
CREATE DOMAIN DEPTNO AS CHAR(3);
CREATE DOMAIN EMPNO AS SMALLINT;
CREATE DOMAIN FB$OUT_TYPE AS BLOB SUB_TYPE TEXT SEGMENT SIZE 80 NOT NULL;
CREATE DOMAIN FIRSTNAME AS VARCHAR(15);
CREATE DOMAIN JOBCODE AS VARCHAR(5);
CREATE DOMAIN JOBGRADE AS SMALLINT;
CREATE DOMAIN LASTNAME AS VARCHAR(20);
CREATE DOMAIN PHONENUMBER AS VARCHAR(20);
CREATE DOMAIN PONUMBER AS CHAR(8);
CREATE DOMAIN PRODTYPE AS VARCHAR(12)
DEFAULT 'software' NOT NULL;
CREATE DOMAIN PROJNO AS CHAR(5);
CREATE DOMAIN SALARY AS NUMERIC(10,2)
DEFAULT 0;
/* Table: COUNTRIES, Owner: SYSDBA */
CREATE TABLE COUNTRIES
(
COUNTRY VARCHAR(64) NOT NULL,
NONEU SMALLINT,
ISO2 CHAR(2),
ISO3 CHAR(3),
PRIMARY KEY (COUNTRY)
);
COMMENT ON TABLE COUNTRIES IS 'List of Countries';
COMMENT ON COLUMN COUNTRIES.ISO2 IS 'Two Character ISO Country Code';
/* Table: COUNTRY, Owner: SYSDBA */
CREATE TABLE COUNTRY
(
COUNTRY COUNTRYNAME NOT NULL,
CURRENCY VARCHAR(10) NOT NULL,
PRIMARY KEY (COUNTRY)
);
/* Table: CUSTOMER, Owner: SYSDBA */
CREATE TABLE CUSTOMER
(
CUST_NO CUSTNO NOT NULL,
CUSTOMER VARCHAR(25) NOT NULL,
CONTACT_FIRST FIRSTNAME,
CONTACT_LAST LASTNAME,
PHONE_NO PHONENUMBER,
ADDRESS_LINE1 ADDRESSLINE,
ADDRESS_LINE2 ADDRESSLINE,
CITY VARCHAR(25),
STATE_PROVINCE VARCHAR(15),
COUNTRY COUNTRYNAME,
POSTAL_CODE VARCHAR(12),
ON_HOLD CHAR(1) DEFAULT NULL,
LONG_REFERENCE BIGINT,
PRIMARY KEY (CUST_NO)
);
/* Table: DEPARTMENT, Owner: SYSDBA */
CREATE TABLE DEPARTMENT
(
DEPT_NO DEPTNO NOT NULL,
DEPARTMENT VARCHAR(25) NOT NULL,
HEAD_DEPT DEPTNO,
MNGR_NO EMPNO,
BUDGET BUDGET,
LOCATION VARCHAR(15),
PHONE_NO PHONENUMBER DEFAULT '555-1234',
UNIQUE (DEPARTMENT),
PRIMARY KEY (DEPT_NO)
);
/* Table: EMPLOYEE, Owner: SYSDBA */
CREATE TABLE EMPLOYEE
(
EMP_NO EMPNO NOT NULL,
FIRST_NAME FIRSTNAME NOT NULL,
LAST_NAME LASTNAME NOT NULL,
PHONE_EXT VARCHAR(4),
HIRE_DATE TIMESTAMP DEFAULT 'NOW' NOT NULL,
DEPT_NO DEPTNO NOT NULL,
JOB_CODE JOBCODE NOT NULL,
JOB_GRADE JOBGRADE NOT NULL,
JOB_COUNTRY COUNTRYNAME NOT NULL,
SALARY SALARY NOT NULL,
FULL_NAME COMPUTED BY (last_name || ', ' || first_name),
PRIMARY KEY (EMP_NO)
);
/* Table: EMPLOYEE_PROJECT, Owner: SYSDBA */
CREATE TABLE EMPLOYEE_PROJECT
(
EMP_NO EMPNO NOT NULL,
PROJ_ID PROJNO NOT NULL,
PRIMARY KEY (EMP_NO, PROJ_ID)
);
/* Table: FB$OUT_TABLE, Owner: SYSDBA */
CREATE GLOBAL TEMPORARY TABLE FB$OUT_TABLE
(
LINE_NUM INTEGER,
CONTENT FB$OUT_TYPE
) ON COMMIT PRESERVE ROWS ;
/* Table: JOB, Owner: SYSDBA */
CREATE TABLE JOB
(
JOB_CODE JOBCODE NOT NULL,
JOB_GRADE JOBGRADE NOT NULL,
JOB_COUNTRY COUNTRYNAME NOT NULL,
JOB_TITLE VARCHAR(25) NOT NULL,
MIN_SALARY SALARY NOT NULL,
MAX_SALARY SALARY NOT NULL,
JOB_REQUIREMENT BLOB SUB_TYPE TEXT SEGMENT SIZE 400,
LANGUAGE_REQ VARCHAR(15)[1:5],
PRIMARY KEY (JOB_CODE, JOB_GRADE, JOB_COUNTRY)
);
/* Table: PROJECT, Owner: SYSDBA */
CREATE TABLE PROJECT
(
PROJ_ID PROJNO NOT NULL,
PROJ_NAME VARCHAR(20) NOT NULL,
PROJ_DESC BLOB SUB_TYPE TEXT SEGMENT SIZE 800,
TEAM_LEADER EMPNO,
PRODUCT PRODTYPE,
UNIQUE (PROJ_NAME),
PRIMARY KEY (PROJ_ID)
);
/* Table: PROJ_DEPT_BUDGET, Owner: SYSDBA */
CREATE TABLE PROJ_DEPT_BUDGET
(
FISCAL_YEAR INTEGER NOT NULL,
PROJ_ID PROJNO NOT NULL,
DEPT_NO DEPTNO NOT NULL,
QUART_HEAD_CNT INTEGER[1:4],
PROJECTED_BUDGET BUDGET,
PRIMARY KEY (FISCAL_YEAR, PROJ_ID, DEPT_NO)
);
/* Table: SALARY_HISTORY, Owner: SYSDBA */
CREATE TABLE SALARY_HISTORY
(
EMP_NO EMPNO NOT NULL,
CHANGE_DATE TIMESTAMP DEFAULT 'NOW' NOT NULL,
UPDATER_ID VARCHAR(20) NOT NULL,
OLD_SALARY SALARY NOT NULL,
PERCENT_CHANGE DOUBLE PRECISION DEFAULT 0 NOT NULL,
NEW_SALARY COMPUTED BY (old_salary + old_salary * percent_change / 100),
PRIMARY KEY (EMP_NO, CHANGE_DATE, UPDATER_ID)
);
/* Table: SALES, Owner: SYSDBA */
CREATE TABLE SALES
(
PO_NUMBER PONUMBER NOT NULL,
CUST_NO CUSTNO NOT NULL,
SALES_REP EMPNO,
ORDER_STATUS VARCHAR(7) DEFAULT 'new' NOT NULL,
ORDER_DATE TIMESTAMP DEFAULT 'NOW' NOT NULL,
SHIP_DATE TIMESTAMP,
DATE_NEEDED TIMESTAMP,
PAID CHAR(1) DEFAULT 'n',
QTY_ORDERED INTEGER DEFAULT 1 NOT NULL,
TOTAL_VALUE DECIMAL(9,2) NOT NULL,
DISCOUNT FLOAT DEFAULT 0 NOT NULL,
ITEM_TYPE PRODTYPE,
AGED COMPUTED BY (ship_date - order_date),
PRIMARY KEY (PO_NUMBER)
);
/* External Function declarations */
DECLARE EXTERNAL FUNCTION ADDDAY
TIMESTAMP, INTEGER
RETURNS TIMESTAMP
ENTRY_POINT 'addDay' MODULE_NAME 'fbudf'
;
DECLARE EXTERNAL FUNCTION I64TRUNCATE
NUMERIC(18,0) BY DESCRIPTOR, NUMERIC(18,0) BY DESCRIPTOR
RETURNS PARAMETER 2
ENTRY_POINT 'fbtruncate' MODULE_NAME 'fbudf'
;
DECLARE EXTERNAL FUNCTION TESTIT
TIMESTAMP, INTEGER NULL, CSTRING(10) CHARACTER SET NONE, CSTRING(10) CHARACTER SET NONE BY DESCRIPTOR
RETURNS CSTRING(32) CHARACTER SET NONE FREE_IT
ENTRY_POINT 'testit' MODULE_NAME 'fbudf'
;
/* Data Starts */
/* Inserting data into Table: COUNTRY */
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('USA','Dollar');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('England','Pound');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Canada','CdnDlr');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Switzerland','SFranc');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Japan','Yen');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Italy','Euro');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('France','Euro');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Germany','Euro');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Australia','ADollar');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Hong Kong','HKDollar');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Netherlands','Euro');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Belgium','Euro');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Austria','Euro');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Fiji','FDollar');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Russia','Ruble');
INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Romania','RLeu');
COMMIT;
/* Inserting data into Table: CUSTOMER */
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1001,'Signature Design','Dale J.','Little','(619) 530-2710','15500 Pacific Heights Blvd.',NULL,'San Diego','CA','USA','92121',NULL,NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1002,'Dallas Technologies','Glen','Brown','(214) 960-2233','P. O. Box 47000',NULL,'Dallas','TX','USA','75205','*',NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1003,'Buttle, Griffith and Co.','James','Buttle','(617) 488-1864','2300 Newbury Street','Suite 101','Boston','MA','USA','02115',NULL,NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1004,'Central Bank','Elizabeth','Brocket','61 211 99 88','66 Lloyd Street',NULL,'Manchester',NULL,'England','M2 3LA',NULL,NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1005,'DT Systems, LTD.','Tai','Wu','(852) 850 43 98','400 Connaught Road',NULL,'Central Hong Kong',NULL,'Hong Kong',NULL,NULL,NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1006,'DataServe International','Tomas','Bright','(613) 229 3323','2000 Carling Avenue','Suite 150','Ottawa','ON','Canada','K1V 9G1',NULL,NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1007,'Mrs. Beauvais',NULL,'Mrs. Beauvais',NULL,'P.O. Box 22743',NULL,'Pebble Beach','CA','USA','93953',NULL,NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1008,'Anini Vacation Rentals','Leilani','Briggs','(808) 835-7605','3320 Lawai Road',NULL,'Lihue','HI','USA','96766',NULL,NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1009,'Max','Max',NULL,'22 01 23','1 Emerald Cove',NULL,'Turtle Island',NULL,'Fiji',NULL,'*',NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1010,'MPM Corporation','Miwako','Miyamoto','3 880 77 19','2-64-7 Sasazuka',NULL,'Tokyo',NULL,'Japan','150',NULL,NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1011,'Dynamic Intelligence Corp','Victor','Granges','01 221 16 50','Florhofgasse 10',NULL,'Zurich',NULL,'Switzerland','8005',NULL,NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1012,'3D-Pad Corp.','Michelle','Roche','1 43 60 61','22 Place de la Concorde',NULL,'Paris',NULL,'France','75008',NULL,NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1013,'Lorenzi Export, Ltd.','Andreas','Lorenzi','02 404 6284','Via Eugenia, 15',NULL,'Milan',NULL,'Italy','20124',NULL,NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1014,'Dyno Consulting','Greta','Hessels','02 500 5940','Rue Royale 350',NULL,'Brussels',NULL,'Belgium','1210',NULL,NULL);
INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1015,'GeoTech Inc.','K.M.','Neppelenbroek','(070) 44 91 18','P.0.Box 702',NULL,'Den Haag',NULL,'Netherlands','2514',NULL,NULL);
COMMIT;
/* Inserting data into Table: DEPARTMENT */
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('000','Corporate Headquarters',NULL,105,1000000,'Monterey','(408) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('100','Sales and Marketing','000',85,2000000,'San Francisco','(415) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('600','Engineering','000',2,1100000,'Monterey','(408) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('900','Finance','000',46,400000,'Monterey','(408) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('180','Marketing','100',NULL,1500000,'San Francisco','(415) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('620','Software Products Div.','600',NULL,1200000,'Monterey','(408) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('621','Software Development','620',NULL,400000,'Monterey','(408) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('622','Quality Assurance','620',9,300000,'Monterey','(408) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('623','Customer Support','620',15,650000,'Monterey','(408) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('670','Consumer Electronics Div.','600',107,1150000,'Burlington, VT','(802) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('671','Research and Development','670',20,460000,'Burlington, VT','(802) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('672','Customer Services','670',94,850000,'Burlington, VT','(802) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('130','Field Office: East Coast','100',11,500000,'Boston','(617) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('140','Field Office: Canada','100',72,500000,'Toronto','(416) 677-1000');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('110','Pacific Rim Headquarters','100',34,600000,'Kuaui','(808) 555-1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('115','Field Office: Japan','110',118,500000,'Tokyo','3 5350 0901');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('116','Field Office: Singapore','110',NULL,300000,'Singapore','3 55 1234');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('120','European Headquarters','100',36,700000,'London','71 235-4400');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('121','Field Office: Switzerland','120',141,500000,'Zurich','1 211 7767');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('123','Field Office: France','120',134,400000,'Cannes','58 68 11 12');
INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('125','Field Office: Italy','120',121,400000,'Milan','2 430 39 39');
COMMIT;
/* Inserting data into Table: EMPLOYEE */
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(2,'Robert','Nelson','250','1988.12.28 00:00:00.000','600','VP',2,'USA',105900);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(4,'Bruce','Young','233','1988.12.28 00:00:00.000','621','Eng',2,'USA',97500);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(5,'Kim','Lambert','22','1989.02.06 00:00:00.000','130','Eng',2,'USA',102750);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(8,'Leslie','Johnson','410','1989.04.05 00:00:00.000','180','Mktg',3,'USA',64635);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(9,'Phil','Forest','229','1989.04.17 00:00:00.000','622','Mngr',3,'USA',75060);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(11,'K. J.','Weston','34','1990.01.17 00:00:00.000','130','SRep',4,'USA',86292.94);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(12,'Terri','Lee','256','1990.05.01 00:00:00.000','000','Admin',4,'USA',53793);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(14,'Stewart','Hall','227','1990.06.04 00:00:00.000','900','Finan',3,'USA',69482.63);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(15,'Katherine','Young','231','1990.06.14 00:00:00.000','623','Mngr',3,'USA',67241.25);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(20,'Chris','Papadopoulos','887','1990.01.01 00:00:00.000','671','Mngr',3,'USA',89655);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(24,'Pete','Fisher','888','1990.09.12 00:00:00.000','671','Eng',3,'USA',81810.19);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(28,'Ann','Bennet','5','1991.02.01 00:00:00.000','120','Admin',5,'England',22935);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(29,'Roger','De Souza','288','1991.02.18 00:00:00.000','623','Eng',3,'USA',69482.63);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(34,'Janet','Baldwin','2','1991.03.21 00:00:00.000','110','Sales',3,'USA',61637.8);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(36,'Roger','Reeves','6','1991.04.25 00:00:00.000','120','Sales',3,'England',33620.63);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(37,'Willie','Stansbury','7','1991.04.25 00:00:00.000','120','Eng',4,'England',39224.06);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(44,'Leslie','Phong','216','1991.06.03 00:00:00.000','623','Eng',4,'USA',56034.38);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(45,'Ashok','Ramanathan','209','1991.08.01 00:00:00.000','621','Eng',3,'USA',80689.5);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(46,'Walter','Steadman','210','1991.08.09 00:00:00.000','900','CFO',1,'USA',116100);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(52,'Carol','Nordstrom','420','1991.10.02 00:00:00.000','180','PRel',4,'USA',42742.5);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(61,'Luke','Leung','3','1992.02.18 00:00:00.000','110','SRep',4,'USA',68805);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(65,'Sue Anne','O''Brien','877','1992.03.23 00:00:00.000','670','Admin',5,'USA',31275);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(71,'Jennifer M.','Burbank','289','1992.04.15 00:00:00.000','622','Eng',3,'USA',53167.5);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(72,'Claudia','Sutherland',NULL,'1992.04.20 00:00:00.000','140','SRep',4,'Canada',100914);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(83,'Dana','Bishop','290','1992.06.02 00:00:00.000','621','Eng',3,'USA',62550.02);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(85,'Mary S.','MacDonald','477','1992.06.01 00:00:00.000','100','VP',2,'USA',111262.5);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(94,'Randy','Williams','892','1992.08.08 00:00:00.000','672','Mngr',4,'USA',56295);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(105,'Oliver H A','Bender','255','1992.10.08 00:00:00.000','000','CEO',1,'USA',212850);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(107,'Kevin','Cook','894','1993.02.01 00:00:00.000','670','Dir',2,'USA',111262.5);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(109,'Kelly','Brown','202','1993.02.04 00:00:00.000','600','Admin',5,'USA',27000.01);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(110,'Yuki','Ichida','22','1993.02.04 00:00:00.000','115','Eng',3,'Japan',6000000);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(113,'Mary','Page','845','1993.04.12 00:00:00.000','671','Eng',4,'USA',48000);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(114,'Bill','Parker','247','1993.06.01 00:00:00.000','623','Eng',5,'USA',35000);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(118,'Takashi','Yamamoto','23','1993.07.01 00:00:00.000','115','SRep',4,'Japan',7480000);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(121,'Roberto','Ferrari','1','1993.07.12 00:00:00.000','125','SRep',4,'USA',33000.01);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(127,'Michael','Yanowski','492','1993.08.09 00:00:00.000','100','SRep',4,'USA',44000);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(134,'Jacques','Glon',NULL,'1993.08.23 00:00:00.000','123','SRep',4,'France',38500);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(136,'Scott','Johnson','265','1993.09.13 00:00:00.000','623','Doc',3,'USA',60000);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(138,'T.J.','Green','218','1993.11.01 00:00:00.000','621','Eng',4,'USA',36000);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(141,'Pierre','Osborne',NULL,'1994.01.03 00:00:00.000','121','SRep',4,'Switzerland',110000);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(144,'John','Montgomery','820','1994.03.30 00:00:00.000','672','Eng',5,'USA',35000);
INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(145,'Mark','Guckenheimer','221','1994.05.02 00:00:00.000','622','Eng',5,'USA',32000);
COMMIT;
/* Inserting data into Table: EMPLOYEE_PROJECT */
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(144,'DGPII');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(113,'DGPII');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(24,'DGPII');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(8,'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(136,'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(15,'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(71,'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(145,'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(44,'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(4,'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(83,'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(138,'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(45,'VBASE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(20,'GUIDE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(24,'GUIDE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(113,'GUIDE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(8,'GUIDE');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(4,'MAPDB');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(71,'MAPDB');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(46,'MKTPR');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(105,'MKTPR');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(12,'MKTPR');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(85,'MKTPR');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(110,'MKTPR');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(34,'MKTPR');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(8,'MKTPR');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(14,'MKTPR');
INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(52,'MKTPR');
COMMIT;
/* Inserting data into Table: JOB */
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('CEO',1,'USA','Chief Executive Officer',130000,250000,'No specific requirements.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('CFO',1,'USA','Chief Financial Officer',85000,140000,'15+ years in finance or 5+ years as a CFO
with a proven track record.
MBA or J.D. degree.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('VP',2,'USA','Vice President',80000,130000,'No specific requirements.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Dir',2,'USA','Director',75000,120000,'5-10 years as a director in computer or electronics industries.
An advanced degree.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Mngr',3,'USA','Manager',60000,100000,'BA/BS required.
3-5 years in management,
plus 2-4 years engineering experience.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Mngr',4,'USA','Manager',30000,60000,'5+ years office management experience.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Admin',4,'USA','Administrative Assistant',35000,55000,'3-5 years experience in executive environment.
Strong organizational and communication skills required.
BA degree preferred.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Admin',5,'USA','Administrative Assistant',20000,40000,'2-4 years clerical experience.
Facility with word processing and data entry.
AA degree preferred.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Admin',5,'England','Administrative Assistant',13400,26800,NULL,NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('PRel',4,'USA','Public Relations Rep.',25000,65000,NULL,NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Mktg',3,'USA','Marketing Analyst',40000,80000,'MBA required.
10+ years experience in high tech environment.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Mktg',4,'USA','Marketing Analyst',20000,50000,'BA/BS required. MBA preferred.
3-5 years experience.
Knowledgeable with spreadsheets and databases.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Accnt',4,'USA','Accountant',28000,55000,'CPA with 3-5 years experience.
Spreadsheet, data entry, and word processing knowledge required.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Finan',3,'USA','Financial Analyst',35000,85000,'5-10 years of accounting and financial experience.
Strong analytical skills.
CPA/MBA required.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Eng',2,'USA','Engineer',70000,110000,'Distinguished engineer.
Ph.D/MS/BS or equivalent experience.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Eng',3,'USA','Engineer',50000,90000,'5+ years experience.
BA/BS required.
MS degree preferred.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Eng',3,'Japan','Engineer',5400000,9720000,'5+ years experience.
BA/BS and/or MS degrees required.
Customer support experience desired.
Knowledge of Japanese and English.
',
Japanese
Mandarin
English
);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Eng',4,'USA','Engineer',30000,65000,'BA/BS and 3-5 years experience.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Eng',4,'England','Engineer',20100,43550,'BA/BS and
2-4 years experience in technical support.
Knowledge of several European languages helpful.
',
English
German
French
);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Eng',5,'USA','Engineer',25000,35000,'BA/BS preferred.
2-4 years technical experience.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Doc',3,'USA','Technical Writer',38000,60000,'4+ years writing highly technical
software documentation.
A bachelor''s degree or equivalent.
Programming experience required.
Excellent language skills.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Doc',5,'USA','Technical Writer',22000,40000,'BA in English/journalism or excellent language skills.
Some programming experience required.
2-4 years of technical writing.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Sales',3,'USA','Sales Co-ordinator',40000,70000,'Experience in sales and public relations
in a high tech environment.
Excellent communication skills.
BA or equivalent.
',NULL);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Sales',3,'England','Sales Co-ordinator',26800,46900,'Experience in sales and public relations
in a high tech environment.
Excellent communication skills.
BA or equivalent.
Knowledge of several European languages helpful.
',
English
German
French
);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'USA','Sales Representative',20000,100000,'Computer/electronics industry sales experience.
Excellent communications, negotiation, and analytical skills.
Experience in establishing long term customer relationships.
Some knowledge of Spanish required.
Travel required.
',
English
Spanish
);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'England','Sales Representative',13400,67000,'Computer/electronics industry sales experience.
Excellent communications, negotiation, and analytical skills.
Experience in establishing long term customer relationships.
Knowledge of several European languages helpful.
Travel required.
',
English
German
French
);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'Canada','Sales Representative',26400,132000,'Computer/electronics industry sales experience.
Excellent communications, negotiation, and analytical skills.
Experience in establishing long term customer relationships.
Travel required.
English plus speaking knowledge of French required.
',
English
French
);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'Switzerland','Sales Representative',28000,149000,'Computer/electronics industry sales experience.
Excellent communications, negotiation, and analytical skills.
Experience in establishing long term customer relationships.
Knowledge of German required; one or more other European language helpful.
Travel required.
',
German
French
English
Italian
);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'Japan','Sales Representative',2160000,10800000,'Computer/electronics industry sales experience.
Excellent communications, negotiation, and analytical skills.
Experience in establishing long term customer relationships.
Knowledge of Japanese required.
Travel required.
',
Japanese
English
);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'Italy','Sales Representative',20000,100000,'Computer/electronics industry sales experience.
Excellent communications, negotiation, and analytical skills.
Experience in establishing long term customer relationships.
Fluency in Italian; some knowledge of German helpful.
Travel required.
',
Italian
German
French
);
INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'France','Sales Representative',20000,100000,'Computer/electronics industry sales experience.
Excellent communications, negotiation, and analytical skills.
Experience in establishing long term customer relationships.
Fluency in French; some knowledge of German/Spanish helpful.
Travel required.
',
English
French
Spanish
);
COMMIT;
/* Inserting data into Table: PROJECT */
INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('VBASE','Video Database','Design a video data base management system for
controlling on-demand video distribution.
',45,'software');
INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('DGPII','DigiPizza','Develop second generation digital pizza maker
with flash-bake heating element and
digital ingredient measuring system.
',24,'other');
INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('GUIDE','AutoMap','Develop a prototype for the automobile version of
the hand-held map browsing device.
',20,'hardware');
INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('MAPDB','MapBrowser port','Port the map browsing database software to run
on the automobile model.
',4,'software');
INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('HWRII','Translator upgrade','Integrate the hand-writing recognition module into the
universal language translator.
',NULL,'software');
INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('MKTPR','Marketing project 3','Expand marketing and sales in the Pacific Rim.
Set up a field office in Australia and Singapore.
',85,'N/A');
COMMIT;
/* Inserting data into Table: PROJ_DEPT_BUDGET */
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'GUIDE','100',
1
1
1
0
,200000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'GUIDE','671',
3
2
1
0
,450000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1993,'MAPDB','621',
0
0
0
1
,20000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MAPDB','621',
2
1
0
0
,40000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MAPDB','622',
1
1
0
0
,60000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MAPDB','671',
1
1
0
0
,11000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'HWRII','670',
1
1
1
1
,20000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'HWRII','621',
2
3
2
1
,400000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'HWRII','622',
1
1
2
2
,100000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MKTPR','623',
1
1
1
2
,80000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MKTPR','672',
1
1
1
2
,100000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MKTPR','100',
4
5
6
6
,1000000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MKTPR','110',
2
2
0
3
,200000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MKTPR','000',
1
1
2
2
,100000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1995,'MKTPR','623',
7
7
4
4
,1200000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1995,'MKTPR','672',
2
3
3
3
,800000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1995,'MKTPR','100',
4
5
6
6
,2000000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1995,'MKTPR','110',
1
1
1
1
,1200000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'VBASE','621',
4
5
5
3
,1900000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1995,'VBASE','621',
4
3
2
2
,900000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'VBASE','622',
2
2
2
1
,400000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'VBASE','100',
1
1
2
3
,300000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1995,'VBASE','100',
3
3
1
1
,1500000);
INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1996,'VBASE','100',
1
1
0
0
,150000);
COMMIT;
/* Inserting data into Table: SALARY_HISTORY */
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(28,'1992.12.15 00:00:00.000','admin2',20000,10);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(2,'1992.12.15 00:00:00.000','admin2',98000,8.0612);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(4,'1992.12.15 00:00:00.000','admin2',90000,8.3333);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(5,'1992.12.15 00:00:00.000','admin2',95000,8.1578);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(11,'1992.12.15 00:00:00.000','admin2',70000,7.5);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(12,'1992.12.15 00:00:00.000','admin2',48000,7.5);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(14,'1992.12.15 00:00:00.000','admin2',62000,7.5);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(15,'1992.12.15 00:00:00.000','admin2',60000,7.5);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(20,'1992.12.15 00:00:00.000','admin2',80000,7.5);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(24,'1992.12.15 00:00:00.000','admin2',73000,7.5);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(29,'1992.12.15 00:00:00.000','admin2',62000,7.5);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(34,'1992.12.15 00:00:00.000','admin2',55000,7.5);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(36,'1992.12.15 00:00:00.000','admin2',30000,7.5);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(37,'1992.12.15 00:00:00.000','admin2',35000,7.5);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(44,'1992.12.15 00:00:00.000','admin2',50000,7.5);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(45,'1992.12.15 00:00:00.000','admin2',72000,7.5);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(8,'1993.09.08 00:00:00.000','elaine',62000,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(9,'1993.09.08 00:00:00.000','elaine',72000,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(11,'1993.09.08 00:00:00.000','elaine',75250,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(12,'1993.09.08 00:00:00.000','elaine',51600,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(14,'1993.09.08 00:00:00.000','elaine',66650,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(15,'1993.09.08 00:00:00.000','elaine',64500,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(20,'1993.09.08 00:00:00.000','elaine',86000,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(24,'1993.09.08 00:00:00.000','elaine',78475,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(28,'1993.09.08 00:00:00.000','elaine',22000,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(29,'1993.09.08 00:00:00.000','elaine',66650,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(34,'1993.09.08 00:00:00.000','elaine',59125,4.2499);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(36,'1993.09.08 00:00:00.000','elaine',32250,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(37,'1993.09.08 00:00:00.000','elaine',37625,4.2499);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(44,'1993.09.08 00:00:00.000','elaine',53750,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(45,'1993.09.08 00:00:00.000','elaine',77400,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(52,'1993.09.08 00:00:00.000','elaine',41000,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(61,'1993.09.08 00:00:00.000','elaine',60000,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(65,'1993.09.08 00:00:00.000','elaine',30000,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(71,'1993.09.08 00:00:00.000','elaine',51000,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(72,'1993.09.08 00:00:00.000','elaine',88000,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(83,'1993.09.08 00:00:00.000','elaine',60000,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(94,'1993.09.08 00:00:00.000','elaine',54000,4.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(46,'1993.12.20 00:00:00.000','tj',120000,-3.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(85,'1993.12.20 00:00:00.000','tj',115000,-3.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(105,'1993.12.20 00:00:00.000','tj',220000,-3.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(107,'1993.12.20 00:00:00.000','tj',115000,-3.25);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(11,'1993.12.20 00:00:00.000','elaine',78448.13,9.9999);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(61,'1993.12.20 00:00:00.000','elaine',62550,10);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(72,'1993.12.20 00:00:00.000','elaine',91740,10);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(118,'1993.12.20 00:00:00.000','elaine',6800000,10);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(121,'1993.12.20 00:00:00.000','elaine',30000,10);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(127,'1993.12.20 00:00:00.000','elaine',40000,10);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(134,'1993.12.20 00:00:00.000','elaine',35000,10);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(28,'2017.11.06 16:46:27.145','SYSDBA',22935,0);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(28,'2017.11.06 16:47:01.376','SYSDBA',22935.01,0);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(12,'2017.12.29 12:18:48.909','SYSDBA',53793,0);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(12,'2017.12.29 12:18:58.051','SYSDBA',53793.01,0);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(83,'2018.01.04 10:57:34.245','SYSDBA',62550,0);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(121,'2018.03.13 15:29:08.850','SYSDBA',33000,0);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(109,'2018.03.13 17:12:06.340','SYSDBA',27000,0);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(34,'2018.03.13 17:13:20.671','SYSDBA',61637.81,0);
INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(83,'2018.03.13 17:13:35.845','SYSDBA',62550.01,0);
COMMIT;
/* Inserting data into Table: SALES */
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V91E0210',1004,11,'shipped','1991.03.04 00:00:00.000','1991.03.05 00:00:00.000',NULL,'y',10,5000,0.100000001490116,'hardware');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V92E0340',1004,11,'shipped','1992.10.15 00:00:00.000','1992.10.16 00:00:00.000','1992.10.17 00:00:00.000','y',7,70000,0,'hardware');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V92J1003',1010,61,'shipped','1992.07.26 00:00:00.000','1992.08.04 00:00:00.000','1992.09.15 00:00:00.000','y',15,2985,0,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93J2004',1010,118,'shipped','1993.10.30 00:00:00.000','1993.12.02 00:00:00.000','1993.11.15 00:00:00.000','y',3,210,0,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93J3100',1010,118,'shipped','1993.08.20 00:00:00.000','1993.08.20 00:00:00.000',NULL,'y',16,18000.4,0.100000001490116,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V92F3004',1012,11,'shipped','1992.10.15 00:00:00.000','1993.01.16 00:00:00.000','1993.01.16 00:00:00.000','y',3,2000,0,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93F3088',1012,134,'shipped','1993.08.27 00:00:00.000','1993.09.08 00:00:00.000',NULL,'n',10,10000,0,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93F2030',1012,134,'open','1993.12.12 00:00:00.000',NULL,NULL,'y',15,450000.49,0,'hardware');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93F2051',1012,134,'waiting','1993.12.18 00:00:00.000',NULL,'1994.03.01 00:00:00.000','n',1,999.98,0,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93H0030',1005,118,'open','1993.12.12 00:00:00.000',NULL,'1994.01.01 00:00:00.000','y',20,5980,0.200000002980232,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V94H0079',1005,61,'open','1994.02.13 00:00:00.000',NULL,'1994.04.20 00:00:00.000','n',10,9000,0.0500000007450581,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9324200',1001,72,'shipped','1993.08.09 00:00:00.000','1993.08.09 00:00:00.000','1993.08.17 00:00:00.000','y',1000,560000,0.200000002980232,'hardware');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9324320',1001,127,'shipped','1993.08.16 00:00:00.000','1993.08.16 00:00:00.000','1993.09.01 00:00:00.000','y',1,0,1,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9320630',1001,127,'open','1993.12.12 00:00:00.000',NULL,'1993.12.15 00:00:00.000','n',3,60000,0.200000002980232,'hardware');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9420099',1001,127,'open','1994.01.17 00:00:00.000',NULL,'1994.06.01 00:00:00.000','n',100,3399.15,0.150000005960464,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9427029',1001,127,'shipped','1994.02.07 00:00:00.000','1994.02.10 00:00:00.000','1994.02.10 00:00:00.000','n',17,422210.97,0,'hardware');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9333005',1002,11,'shipped','1993.02.03 00:00:00.000','1993.03.03 00:00:00.000',NULL,'y',2,600.5,0,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9333006',1002,11,'shipped','1993.04.27 00:00:00.000','1993.05.02 00:00:00.000','1993.05.02 00:00:00.000','n',5,20000,0,'other');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9336100',1002,11,'waiting','1993.12.27 00:00:00.000','1994.01.01 00:00:00.000','1994.01.01 00:00:00.000','n',150,14850,0.0500000007450581,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9346200',1003,11,'waiting','1993.12.31 00:00:00.000',NULL,'1994.01.24 00:00:00.000','n',3,0,1,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9345200',1003,11,'shipped','1993.11.11 00:00:00.000','1993.12.02 00:00:00.000','1993.12.01 00:00:00.000','y',900,27000,0.300000011920929,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9345139',1003,127,'shipped','1993.09.09 00:00:00.000','1993.09.20 00:00:00.000','1993.10.01 00:00:00.000','y',20,12582.12,0.100000001490116,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93C0120',1006,72,'shipped','1993.03.22 00:00:00.000','1993.05.31 00:00:00.000','1993.04.17 00:00:00.000','y',1,47.5,0,'other');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93C0990',1006,72,'shipped','1993.08.09 00:00:00.000','1993.09.02 00:00:00.000',NULL,'y',40,399960.5,0.100000001490116,'hardware');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9456220',1007,127,'open','1994.01.04 00:00:00.000',NULL,'1994.01.30 00:00:00.000','y',1,3999.99,0,'hardware');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93S4702',1011,121,'shipped','1993.10.27 00:00:00.000','1993.10.28 00:00:00.000','1993.12.15 00:00:00.000','y',4,120000,0,'hardware');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V94S6400',1011,141,'waiting','1994.01.06 00:00:00.000',NULL,'1994.02.15 00:00:00.000','y',20,1980.72,0.400000005960464,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93H3009',1008,61,'shipped','1993.08.01 00:00:00.000','1993.12.02 00:00:00.000','1993.12.01 00:00:00.000','n',3,9000,0.0500000007450581,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93H0500',1008,61,'open','1993.12.12 00:00:00.000',NULL,'1993.12.15 00:00:00.000','n',3,16000,0.200000002980232,'hardware');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93F0020',1009,61,'shipped','1993.10.10 00:00:00.000','1993.11.11 00:00:00.000','1993.11.11 00:00:00.000','n',1,490.69,0,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93I4700',1013,121,'open','1993.10.27 00:00:00.000',NULL,'1993.12.15 00:00:00.000','n',5,2693,0,'hardware');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93B1002',1014,134,'shipped','1993.09.20 00:00:00.000','1993.09.21 00:00:00.000','1993.09.25 00:00:00.000','y',1,100.02,0,'software');
INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93N5822',1015,134,'shipped','1993.12.18 00:00:00.000','1994.01.14 00:00:00.000',NULL,'n',2,1500,0,'software');
COMMIT;
/* Data Ends */
/* Index definitions for all user tables */
CREATE INDEX CUSTNAMEX ON CUSTOMER(CUSTOMER);
CREATE INDEX CUSTREGION ON CUSTOMER(COUNTRY, CITY);
CREATE DESCENDING INDEX BUDGETX ON DEPARTMENT(BUDGET);
CREATE INDEX NAMEX ON EMPLOYEE(LAST_NAME, FIRST_NAME);
CREATE DESCENDING INDEX MAXSALX ON JOB(JOB_COUNTRY, MAX_SALARY);
CREATE INDEX MINSALX ON JOB(JOB_COUNTRY, MIN_SALARY);
CREATE UNIQUE INDEX PRODTYPEX ON PROJECT(PRODUCT, PROJ_NAME);
CREATE DESCENDING INDEX CHANGEX ON SALARY_HISTORY(CHANGE_DATE);
CREATE INDEX UPDATERX ON SALARY_HISTORY(UPDATER_ID);
CREATE INDEX NEEDX ON SALES(DATE_NEEDED);
CREATE DESCENDING INDEX QTYX ON SALES(ITEM_TYPE, QTY_ORDERED);
CREATE INDEX SALESTATX ON SALES(ORDER_STATUS, PAID);
ALTER TABLE CUSTOMER ADD FOREIGN KEY (COUNTRY) REFERENCES COUNTRY (COUNTRY);
ALTER TABLE DEPARTMENT ADD FOREIGN KEY (HEAD_DEPT) REFERENCES DEPARTMENT (DEPT_NO);
ALTER TABLE DEPARTMENT ADD FOREIGN KEY (MNGR_NO) REFERENCES EMPLOYEE (EMP_NO);
ALTER TABLE EMPLOYEE ADD FOREIGN KEY (DEPT_NO) REFERENCES DEPARTMENT (DEPT_NO);
ALTER TABLE EMPLOYEE ADD FOREIGN KEY (JOB_CODE, JOB_GRADE, JOB_COUNTRY) REFERENCES JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY);
ALTER TABLE EMPLOYEE_PROJECT ADD FOREIGN KEY (EMP_NO) REFERENCES EMPLOYEE (EMP_NO);
ALTER TABLE EMPLOYEE_PROJECT ADD FOREIGN KEY (PROJ_ID) REFERENCES PROJECT (PROJ_ID);
ALTER TABLE JOB ADD FOREIGN KEY (JOB_COUNTRY) REFERENCES COUNTRY (COUNTRY);
ALTER TABLE PROJECT ADD FOREIGN KEY (TEAM_LEADER) REFERENCES EMPLOYEE (EMP_NO);
ALTER TABLE PROJ_DEPT_BUDGET ADD FOREIGN KEY (DEPT_NO) REFERENCES DEPARTMENT (DEPT_NO);
ALTER TABLE PROJ_DEPT_BUDGET ADD FOREIGN KEY (PROJ_ID) REFERENCES PROJECT (PROJ_ID);
ALTER TABLE SALARY_HISTORY ADD FOREIGN KEY (EMP_NO) REFERENCES EMPLOYEE (EMP_NO);
ALTER TABLE SALES ADD FOREIGN KEY (CUST_NO) REFERENCES CUSTOMER (CUST_NO);
ALTER TABLE SALES ADD FOREIGN KEY (SALES_REP) REFERENCES EMPLOYEE (EMP_NO);
CREATE SEQUENCE CUST_NO_GEN;
ALTER SEQUENCE CUST_NO_GEN RESTART WITH 1016;
CREATE SEQUENCE EMP_NO_GEN;
ALTER SEQUENCE EMP_NO_GEN RESTART WITH 158;
CREATE SEQUENCE FB$OUT_SEQ;
ALTER SEQUENCE FB$OUT_SEQ RESTART WITH 1;
/* View: DEPTLIST, Owner: SYSDBA */
CREATE VIEW DEPTLIST (
EMP_NO,
FIRST_NAME,
LAST_NAME,
PHONE_EXT,
HIRE_DATE,
DEPT_NO,
JOB_CODE,
JOB_GRADE,
JOB_COUNTRY,
SALARY,
FULL_NAME,
DEPT_PATH,
DEPT_KEY_PATH
) AS
with recursive Depts As (
Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,
cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH
From DEPARTMENT Where HEAD_DEPT is NULL
UNION ALL
Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,
Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH
From DEPARTMENT D
JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO
)
Select distinct A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,
A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH
From EMPLOYEE A
JOIN Depts D On D.DEPT_NO = A.DEPT_NO
;
/* View: PHONE_LIST, Owner: SYSDBA */
CREATE VIEW PHONE_LIST (
EMP_NO,
FIRST_NAME,
LAST_NAME,
PHONE_EXT,
LOCATION,
PHONE_NO
) AS
SELECT
emp_no, first_name, last_name, phone_ext, location, phone_no
FROM employee, department
WHERE employee.dept_no = department.dept_no
;
/* Add Domain Check Constraints */
ALTER DOMAIN BUDGET ADD CONSTRAINT
CHECK (VALUE > 10000 AND VALUE <= 2000000);
ALTER DOMAIN CUSTNO ADD CONSTRAINT
CHECK (VALUE > 1000);
ALTER DOMAIN DEPTNO ADD CONSTRAINT
CHECK (VALUE = '000' OR (VALUE > '0' AND VALUE <= '999') OR VALUE IS NULL);
ALTER DOMAIN JOBCODE ADD CONSTRAINT
CHECK (VALUE > '99999');
ALTER DOMAIN JOBGRADE ADD CONSTRAINT
CHECK (VALUE BETWEEN 0 AND 6);
ALTER DOMAIN PONUMBER ADD CONSTRAINT
CHECK (VALUE STARTING WITH 'V');
ALTER DOMAIN PRODTYPE ADD CONSTRAINT
CHECK (VALUE IN ('software', 'hardware', 'other', 'N/A'));
ALTER DOMAIN PROJNO ADD CONSTRAINT
CHECK (VALUE = UPPER (VALUE));
ALTER DOMAIN SALARY ADD CONSTRAINT
CHECK (VALUE > 0);
ALTER TABLE JOB ADD
CHECK (min_salary < max_salary);
ALTER TABLE JOB ADD
CHECK (min_salary < max_salary);
ALTER TABLE EMPLOYEE ADD
CHECK ( salary >= (SELECT min_salary FROM job WHERE
job.job_code = employee.job_code AND
job.job_grade = employee.job_grade AND
job.job_country = employee.job_country) AND
salary <= (SELECT max_salary FROM job WHERE
job.job_code = employee.job_code AND
job.job_grade = employee.job_grade AND
job.job_country = employee.job_country));
ALTER TABLE PROJ_DEPT_BUDGET ADD
CHECK (FISCAL_YEAR >= 1993);
ALTER TABLE SALARY_HISTORY ADD
CHECK (percent_change between -50 and 50);
ALTER TABLE CUSTOMER ADD
CHECK (on_hold IS NULL OR on_hold = '*');
ALTER TABLE SALES ADD
CHECK (order_status in
('new', 'open', 'shipped', 'waiting'));
ALTER TABLE SALES ADD
CHECK (ship_date >= order_date OR ship_date IS NULL);
ALTER TABLE SALES ADD
CHECK (date_needed > order_date OR date_needed IS NULL);
ALTER TABLE SALES ADD
CHECK (paid in ('y', 'n'));
ALTER TABLE SALES ADD
CHECK (qty_ordered >= 1);
ALTER TABLE SALES ADD
CHECK (total_value >= 0);
ALTER TABLE SALES ADD
CHECK (discount >= 0 AND discount <= 1);
ALTER TABLE SALES ADD
CHECK (NOT (order_status = 'shipped' AND ship_date IS NULL));
ALTER TABLE SALES ADD
CHECK (NOT (order_status = 'shipped' AND
EXISTS (SELECT on_hold FROM customer
WHERE customer.cust_no = sales.cust_no
AND customer.on_hold = '*')));
/* Exceptions */
CREATE EXCEPTION CUSTOMER_CHECK 'Overdue balance -- can not ship.';
CREATE EXCEPTION CUSTOMER_ON_HOLD 'This customer is on hold.';
CREATE EXCEPTION ORDER_ALREADY_SHIPPED 'Order status is "shipped."';
CREATE EXCEPTION REASSIGN_SALES 'Reassign the sales records before deleting this employee.';
CREATE EXCEPTION UNKNOWN_EMP_ID 'Invalid employee number or project id.';
COMMIT WORK;
SET AUTODDL OFF;
SET TERM ^;
/* Stored procedures Definitions*/
CREATE PROCEDURE SHOW_LANGS
(
CODE VARCHAR(5) CHARACTER SET NONE,
GRADE SMALLINT,
CTY VARCHAR(15) CHARACTER SET NONE
)
RETURNS
(
LANGUAGES VARCHAR(15) CHARACTER SET NONE
)
AS BEGIN SUSPEND; EXIT; END
^
CREATE PROCEDURE ADD_EMP_PROJ
(
EMP_NO SMALLINT,
PROJ_ID CHAR(5) CHARACTER SET NONE
)
AS BEGIN EXIT; END
^
CREATE PROCEDURE ALL_LANGS
RETURNS
(
CODE VARCHAR(5) CHARACTER SET NONE,
GRADE VARCHAR(5) CHARACTER SET NONE,
COUNTRY VARCHAR(15) CHARACTER SET NONE,
LANG VARCHAR(15) CHARACTER SET NONE
)
AS BEGIN SUSPEND; EXIT; END
^
CREATE PROCEDURE DELETE_EMPLOYEE
(
EMP_NUM INTEGER
)
AS BEGIN EXIT; END
^
CREATE PROCEDURE DEPT_BUDGET
(
DNO CHAR(3) CHARACTER SET NONE
)
RETURNS
(
TOT DECIMAL(12,2)
)
AS BEGIN SUSPEND; EXIT; END
^
CREATE PROCEDURE GET_EMP_PROJ
(
EMP_NO SMALLINT
)
RETURNS
(
PROJ_ID CHAR(5) CHARACTER SET NONE
)
AS BEGIN SUSPEND; EXIT; END
^
CREATE PROCEDURE "Has Space"
(
ARG1 INTEGER
)
AS BEGIN EXIT; END
^
CREATE PROCEDURE MAIL_LABEL
(
CUST_NO INTEGER
)
RETURNS
(
LINE1 CHAR(40) CHARACTER SET NONE,
LINE2 CHAR(40) CHARACTER SET NONE,
LINE3 CHAR(40) CHARACTER SET NONE,
LINE4 CHAR(40) CHARACTER SET NONE,
LINE5 CHAR(40) CHARACTER SET NONE,
LINE6 CHAR(40) CHARACTER SET NONE
)
AS BEGIN SUSPEND; EXIT; END
^
CREATE PROCEDURE ORG_CHART
RETURNS
(
HEAD_DEPT CHAR(25) CHARACTER SET NONE,
DEPARTMENT CHAR(25) CHARACTER SET NONE,
MNGR_NAME CHAR(20) CHARACTER SET NONE,
TITLE CHAR(5) CHARACTER SET NONE,
EMP_CNT INTEGER
)
AS BEGIN SUSPEND; EXIT; END
^
CREATE PROCEDURE SHIP_ORDER
(
PO_NUM CHAR(8) CHARACTER SET NONE
)
AS BEGIN EXIT; END
^
CREATE PROCEDURE SUB_TOT_BUDGET
(
HEAD_DEPT CHAR(3) CHARACTER SET NONE
)
RETURNS
(
TOT_BUDGET DECIMAL(12,2),
AVG_BUDGET DECIMAL(12,2),
MIN_BUDGET DECIMAL(12,2),
MAX_BUDGET DECIMAL(12,2)
)
AS BEGIN SUSPEND; EXIT; END
^
CREATE PROCEDURE "UC SPACE"
(
ARG1 INTEGER
)
AS BEGIN EXIT; END
^
CREATE PROCEDURE "iCASE"
AS BEGIN EXIT; END
^
SET TERM ;^
COMMIT WORK;
SET AUTODDL ON;
SET TERM ^;
/* Triggers only will work for SQL triggers */
CREATE TRIGGER SET_CUST_NO FOR CUSTOMER
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
if (new.cust_no is null) then
new.cust_no = gen_id(cust_no_gen, 1);
END
^
CREATE TRIGGER SET_EMP_NO FOR EMPLOYEE
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
if (new.emp_no is null) then
new.emp_no = gen_id(emp_no_gen, 1);
END
^
CREATE TRIGGER SAVE_SALARY_CHANGE FOR EMPLOYEE
ACTIVE AFTER UPDATE POSITION 0
AS
BEGIN
IF (old.salary <> new.salary) THEN
INSERT INTO salary_history
(emp_no, change_date, updater_id, old_salary, percent_change)
VALUES (
old.emp_no,
'NOW',
user,
old.salary,
(new.salary - old.salary) * 100 / old.salary);
END
^
CREATE TRIGGER POST_NEW_ORDER FOR SALES
ACTIVE AFTER INSERT POSITION 0
AS
BEGIN
POST_EVENT 'new_order';
END
^
COMMIT WORK^
SET TERM ;^
COMMIT WORK;
SET AUTODDL OFF;
SET TERM ^;
/* Stored procedure Bodies */
ALTER PROCEDURE SHOW_LANGS
(
CODE VARCHAR(5) CHARACTER SET NONE,
GRADE SMALLINT,
CTY VARCHAR(15) CHARACTER SET NONE
)
RETURNS
(
LANGUAGES VARCHAR(15) CHARACTER SET NONE
)
AS
DECLARE VARIABLE i INTEGER;
BEGIN
i = 1;
WHILE (i <= 5) DO
BEGIN
SELECT language_req[:i] FROM joB
WHERE ((job_code = :code) AND (job_grade = :grade) AND (job_country = :cty)
AND (language_req IS NOT NULL))
INTO :languages;
IF (languages = ' ') THEN /* Prints 'NULL' instead of blanks */
languages = 'NULL';
i = i +1;
SUSPEND;
END
END
^
ALTER PROCEDURE ADD_EMP_PROJ
(
EMP_NO SMALLINT,
PROJ_ID CHAR(5) CHARACTER SET NONE
)
AS
BEGIN
BEGIN
INSERT INTO employee_project (emp_no, proj_id) VALUES (:emp_no, :proj_id);
WHEN SQLCODE -530 DO
EXCEPTION unknown_emp_id;
END
END
^
ALTER PROCEDURE ALL_LANGS
RETURNS
(
CODE VARCHAR(5) CHARACTER SET NONE,
GRADE VARCHAR(5) CHARACTER SET NONE,
COUNTRY VARCHAR(15) CHARACTER SET NONE,
LANG VARCHAR(15) CHARACTER SET NONE
)
AS
BEGIN
FOR SELECT job_code, job_grade, job_country FROM job
INTO :code, :grade, :country
DO
BEGIN
FOR SELECT languages FROM show_langs
(:code, :grade, :country) INTO :lang DO
SUSPEND;
/* Put nice separators between rows */
code = '=====';
grade = '=====';
country = '===============';
lang = '==============';
SUSPEND;
END
END
^
ALTER PROCEDURE DELETE_EMPLOYEE
(
EMP_NUM INTEGER
)
AS
DECLARE VARIABLE any_sales INTEGER;
BEGIN
any_sales = 0;
/*
* If there are any sales records referencing this employee,
* cannot delete the employee until the sales are re-assigned
* to another employee or changed to NULL.
*/
SELECT count(po_number)
FROM sales
WHERE sales_rep = :emp_num
INTO :any_sales;
IF (any_sales > 0) THEN
BEGIN
EXCEPTION reassign_sales;
END
/*
* If the employee is a manager, update the department.
*/
UPDATE department
SET mngr_no = NULL
WHERE mngr_no = :emp_num;
/*
* If the employee is a project leader, update project.
*/
UPDATE project
SET team_leader = NULL
WHERE team_leader = :emp_num;
/*
* Delete the employee from any projects.
*/
DELETE FROM employee_project
WHERE emp_no = :emp_num;
/*
* Delete old salary records.
*/
DELETE FROM salary_history
WHERE emp_no = :emp_num;
/*
* Delete the employee.
*/
DELETE FROM employee
WHERE emp_no = :emp_num;
END
^
ALTER PROCEDURE DEPT_BUDGET
(
DNO CHAR(3) CHARACTER SET NONE
)
RETURNS
(
TOT DECIMAL(12,2)
)
AS
DECLARE VARIABLE sumb DECIMAL(12,2);
DECLARE VARIABLE rdno CHAR(3);
DECLARE VARIABLE cnt INTEGER;
BEGIN
tot = 0;
SELECT budget FROM department WHERE dept_no = :dno INTO :tot;
SELECT count(budget) FROM department WHERE head_dept = :dno INTO :cnt;
IF (cnt = 0) THEN
SUSPEND;
FOR SELECT dept_no
FROM department
WHERE head_dept = :dno
INTO :rdno
DO
BEGIN
EXECUTE PROCEDURE dept_budget :rdno RETURNING_VALUES :sumb;
tot = tot + sumb;
END
SUSPEND;
END
^
ALTER PROCEDURE GET_EMP_PROJ
(
EMP_NO SMALLINT
)
RETURNS
(
PROJ_ID CHAR(5) CHARACTER SET NONE
)
AS
BEGIN
FOR SELECT proj_id
FROM employee_project
WHERE emp_no = :emp_no
INTO :proj_id
DO
SUSPEND;
END
^
ALTER PROCEDURE "Has Space"
(
ARG1 INTEGER
)
AS
Begin End
^
ALTER PROCEDURE MAIL_LABEL
(
CUST_NO INTEGER
)
RETURNS
(
LINE1 CHAR(40) CHARACTER SET NONE,
LINE2 CHAR(40) CHARACTER SET NONE,
LINE3 CHAR(40) CHARACTER SET NONE,
LINE4 CHAR(40) CHARACTER SET NONE,
LINE5 CHAR(40) CHARACTER SET NONE,
LINE6 CHAR(40) CHARACTER SET NONE
)
AS
DECLARE VARIABLE customer VARCHAR(25);
DECLARE VARIABLE first_name VARCHAR(15);
DECLARE VARIABLE last_name VARCHAR(20);
DECLARE VARIABLE addr1 VARCHAR(30);
DECLARE VARIABLE addr2 VARCHAR(30);
DECLARE VARIABLE city VARCHAR(25);
DECLARE VARIABLE state VARCHAR(15);
DECLARE VARIABLE country VARCHAR(15);
DECLARE VARIABLE postcode VARCHAR(12);
DECLARE VARIABLE cnt INTEGER;
BEGIN
line1 = '';
line2 = '';
line3 = '';
line4 = '';
line5 = '';
line6 = '';
SELECT customer, contact_first, contact_last, address_line1,
address_line2, city, state_province, country, postal_code
FROM CUSTOMER
WHERE cust_no = :cust_no
INTO :customer, :first_name, :last_name, :addr1, :addr2,
:city, :state, :country, :postcode;
IF (customer IS NOT NULL) THEN
line1 = customer;
IF (first_name IS NOT NULL) THEN
line2 = first_name || ' ' || last_name;
ELSE
line2 = last_name;
IF (addr1 IS NOT NULL) THEN
line3 = addr1;
IF (addr2 IS NOT NULL) THEN
line4 = addr2;
IF (country = 'USA') THEN
BEGIN
IF (city IS NOT NULL) THEN
line5 = city || ', ' || state || ' ' || postcode;
ELSE
line5 = state || ' ' || postcode;
END
ELSE
BEGIN
IF (city IS NOT NULL) THEN
line5 = city || ', ' || state;
ELSE
line5 = state;
line6 = country || ' ' || postcode;
END
SUSPEND;
END
^
ALTER PROCEDURE ORG_CHART
RETURNS
(
HEAD_DEPT CHAR(25) CHARACTER SET NONE,
DEPARTMENT CHAR(25) CHARACTER SET NONE,
MNGR_NAME CHAR(20) CHARACTER SET NONE,
TITLE CHAR(5) CHARACTER SET NONE,
EMP_CNT INTEGER
)
AS
DECLARE VARIABLE mngr_no INTEGER;
DECLARE VARIABLE dno CHAR(3);
BEGIN
FOR SELECT h.department, d.department, d.mngr_no, d.dept_no
FROM department d
LEFT OUTER JOIN department h ON d.head_dept = h.dept_no
ORDER BY d.dept_no
INTO :head_dept, :department, :mngr_no, :dno
DO
BEGIN
IF (:mngr_no IS NULL) THEN
BEGIN
mngr_name = '--TBH--';
title = '';
END
ELSE
SELECT full_name, job_code
FROM employee
WHERE emp_no = :mngr_no
INTO :mngr_name, :title;
SELECT COUNT(emp_no)
FROM employee
WHERE dept_no = :dno
INTO :emp_cnt;
SUSPEND;
END
END
^
ALTER PROCEDURE SHIP_ORDER
(
PO_NUM CHAR(8) CHARACTER SET NONE
)
AS
DECLARE VARIABLE ord_stat CHAR(7);
DECLARE VARIABLE hold_stat CHAR(1);
DECLARE VARIABLE cust_no INTEGER;
DECLARE VARIABLE any_po CHAR(8);
BEGIN
SELECT s.order_status, c.on_hold, c.cust_no
FROM sales s, customer c
WHERE po_number = :po_num
AND s.cust_no = c.cust_no
INTO :ord_stat, :hold_stat, :cust_no;
/* This purchase order has been already shipped. */
IF (ord_stat = 'shipped') THEN
BEGIN
EXCEPTION order_already_shipped;
END
/* Customer is on hold. */
ELSE IF (hold_stat = '*') THEN
BEGIN
EXCEPTION customer_on_hold;
END
/*
* If there is an unpaid balance on orders shipped over 2 months ago,
* put the customer on hold.
*/
FOR SELECT po_number
FROM sales
WHERE cust_no = :cust_no
AND order_status = 'shipped'
AND paid = 'n'
AND ship_date < CAST('NOW' AS TIMESTAMP) - 60
INTO :any_po
DO
BEGIN
EXCEPTION customer_check;
UPDATE customer
SET on_hold = '*'
WHERE cust_no = :cust_no;
END
/*
* Ship the order.
*/
UPDATE sales
SET order_status = 'shipped', ship_date = 'NOW'
WHERE po_number = :po_num;
END
^
ALTER PROCEDURE SUB_TOT_BUDGET
(
HEAD_DEPT CHAR(3) CHARACTER SET NONE
)
RETURNS
(
TOT_BUDGET DECIMAL(12,2),
AVG_BUDGET DECIMAL(12,2),
MIN_BUDGET DECIMAL(12,2),
MAX_BUDGET DECIMAL(12,2)
)
AS
BEGIN
SELECT SUM(budget), AVG(budget), MIN(budget), MAX(budget)
FROM department
WHERE head_dept = :head_dept
INTO :tot_budget, :avg_budget, :min_budget, :max_budget;
SUSPEND;
END
^
ALTER PROCEDURE "UC SPACE"
(
ARG1 INTEGER
)
AS
Begin End
^
ALTER PROCEDURE "iCASE"
AS
Begin End
^
SET TERM ;^
COMMIT WORK;
SET AUTODDL ON;
/* Comments on System Objects */
COMMENT ON CHARACTER SET UTF8 IS 'Default Character set';
/* Grant Roles for this database */
/* Grant permissions for this database */
GRANT REFERENCES ON TABLE COUNTRIES TO USER BOB ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE COUNTRY TO USER PUBLIC WITH GRANT OPTION ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE CUSTOMER TO USER PUBLIC WITH GRANT OPTION ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE DEPARTMENT TO USER PUBLIC WITH GRANT OPTION ;
GRANT SELECT ON TABLE EMPLOYEE TO USER ALICE WITH GRANT OPTION GRANTED BY BOB ;
GRANT SELECT,Update(FIRST_NAME,LAST_NAME) ON TABLE EMPLOYEE TO USER BOB ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE EMPLOYEE TO USER PUBLIC WITH GRANT OPTION ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE EMPLOYEE_PROJECT TO USER PUBLIC WITH GRANT OPTION ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE JOB TO USER PUBLIC WITH GRANT OPTION ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE PHONE_LIST TO USER PUBLIC WITH GRANT OPTION ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE PROJECT TO USER PUBLIC WITH GRANT OPTION ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE PROJ_DEPT_BUDGET TO USER PUBLIC WITH GRANT OPTION ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE SALARY_HISTORY TO USER PUBLIC WITH GRANT OPTION ;
GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE SALES TO USER PUBLIC WITH GRANT OPTION ;
GRANT RDB$ADMIN TO ALICE;
GRANT RDB$ADMIN TO BOB;
GRANT EXECUTE ON PROCEDURE ADD_EMP_PROJ TO USER PUBLIC WITH GRANT OPTION ;
GRANT EXECUTE ON PROCEDURE ALL_LANGS TO USER PUBLIC WITH GRANT OPTION ;
GRANT EXECUTE ON PROCEDURE DELETE_EMPLOYEE TO USER PUBLIC WITH GRANT OPTION ;
GRANT EXECUTE ON PROCEDURE DEPT_BUDGET TO USER PUBLIC WITH GRANT OPTION ;
GRANT EXECUTE ON PROCEDURE GET_EMP_PROJ TO USER PUBLIC WITH GRANT OPTION ;
GRANT EXECUTE ON PROCEDURE MAIL_LABEL TO USER PUBLIC WITH GRANT OPTION ;
GRANT EXECUTE ON PROCEDURE ORG_CHART TO USER PUBLIC WITH GRANT OPTION ;
GRANT EXECUTE ON PROCEDURE SHIP_ORDER TO USER PUBLIC WITH GRANT OPTION ;
GRANT EXECUTE ON PROCEDURE SHOW_LANGS TO USER PUBLIC WITH GRANT OPTION ;
GRANT EXECUTE ON PROCEDURE SUB_TOT_BUDGET TO USER PUBLIC WITH GRANT OPTION ;
Schema written to Test10.out
Run diff command returns 256
Output from diff command
1,2d0
< /* Script for ODS 11 */
<
6c4
< CREATE DATABASE 'inet://localhost//tmp/ibx-testsuite/testsuite1.fdb' PAGE_SIZE 8192
---
> /* CREATE DATABASE 'localhost:/tmp/ibx-testsuite/testsuite1.fdb' PAGE_SIZE 8192
8c6
< DEFAULT CHARACTER SET NONE;
---
> DEFAULT CHARACTER SET NONE; */
961a960
>
988a988
>
1102,1103c1102
< AS
< BEGIN SUSPEND; EXIT; END
---
> AS BEGIN SUSPEND; EXIT; END
1111,1112c1110
< AS
< BEGIN EXIT; END
---
> AS BEGIN EXIT; END
1123,1124c1121
< AS
< BEGIN SUSPEND; EXIT; END
---
> AS BEGIN SUSPEND; EXIT; END
1131,1132c1128
< AS
< BEGIN EXIT; END
---
> AS BEGIN EXIT; END
1143,1144c1139
< AS
< BEGIN SUSPEND; EXIT; END
---
> AS BEGIN SUSPEND; EXIT; END
1155,1156c1150
< AS
< BEGIN SUSPEND; EXIT; END
---
> AS BEGIN SUSPEND; EXIT; END
1163,1164c1157
< AS
< BEGIN EXIT; END
---
> AS BEGIN EXIT; END
1180,1181c1173
< AS
< BEGIN SUSPEND; EXIT; END
---
> AS BEGIN SUSPEND; EXIT; END
1193,1194c1185
< AS
< BEGIN SUSPEND; EXIT; END
---
> AS BEGIN SUSPEND; EXIT; END
1201,1202c1192
< AS
< BEGIN EXIT; END
---
> AS BEGIN EXIT; END
1216,1217c1206
< AS
< BEGIN SUSPEND; EXIT; END
---
> AS BEGIN SUSPEND; EXIT; END
1224,1225c1213
< AS
< BEGIN EXIT; END
---
> AS BEGIN EXIT; END
1229,1230c1217
< AS
< BEGIN EXIT; END
---
> AS BEGIN EXIT; END
------------------------------------------------------
Running Test 11: Event Handling
Case #1: Deferred Event Registration
Creating Database from resources/Test11.sql
Set Term ^;
Create Procedure CallEvent(
EventName VarChar(32)
)
As
Begin
Post_Event :EventName;
End^
set term ;^
Event Called
Event Handled: EVENT1, Count = 1
Event Handled: EVENT2, Count = 0
Case #2: Event Registration after DB Open
Creating Database from resources/Test11.sql
Set Term ^;
Create Procedure CallEvent(
EventName VarChar(32)
)
As
Begin
Post_Event :EventName;
End^
set term ;^
Event Called
Event Handled: EVENT1, Count = 0
Event Handled: EVENT2, Count = 1
------------------------------------------------------
Running Test 12: Test use of Services Connection
Firebird Library PathName = /opt/firebird/2.5.9/lib/libfbembed.so
Connect String = localhost:service_mgr
Server Version = LI-V2.5.9.27139 Firebird 2.5
Server Implementation = Firebird/linux AMD64
Service Version = 2
Firebird Release = 2.5.9 (Build no. 27139)
No. of attachments = 0
No. of databases = 0
Base Location = /opt/firebird/2.5.9/
Lock File Location = /tmp/firebird/
Security Database Location = /opt/firebird/2.5.9/security2.fdb
Message File Location = /opt/firebird/2.5.9/
Database Statistics for employee
Database "/opt/firebird/2.5.9/examples/empbuild/employee.fdb"
Gstat execution time Sat Jun 17 15:04:26 2023
Database header page information:
Flags 0
Checksum 12345
Generation 11874
Page size 4096
ODS version 11.2
Oldest transaction 7121
Oldest active 7122
Oldest snapshot 7122
Next transaction 7122
Bumped transaction 1
Sequence number 0
Next attachment ID 2420
Implementation ID 24
Shadow count 0
Page buffers 0
Next header page 0
Database dialect 3
Creation date Jun 17, 2019 19:37:08
Attributes force write
Variable header data:
*END*
Database file sequence:
File /opt/firebird/2.5.9/examples/empbuild/employee.fdb is the only file
Analyzing database pages ...
COUNTRY (128)
Primary pointer page: 169, Index root page: 170
Data pages: 1, data page slots: 1, average fill: 15%
Fill distribution:
0 - 19% = 1
20 - 39% = 0
40 - 59% = 0
60 - 79% = 0
80 - 99% = 0
CUSTOMER (137)
Primary pointer page: 228, Index root page: 229
Data pages: 1, data page slots: 1, average fill: 52%
Fill distribution:
0 - 19% = 0
20 - 39% = 0
40 - 59% = 1
60 - 79% = 0
80 - 99% = 0
DEPARTMENT (130)
Primary pointer page: 184, Index root page: 185
Data pages: 1, data page slots: 1, average fill: 47%
Fill distribution:
0 - 19% = 0
20 - 39% = 0
40 - 59% = 1
60 - 79% = 0
80 - 99% = 0
EMPLOYEE (131)
Primary pointer page: 190, Index root page: 191
Data pages: 2, data page slots: 2, average fill: 44%
Fill distribution:
0 - 19% = 1
20 - 39% = 0
40 - 59% = 0
60 - 79% = 1
80 - 99% = 0
EMPLOYEE_PROJECT (134)
Primary pointer page: 207, Index root page: 208
Data pages: 1, data page slots: 1, average fill: 20%
Fill distribution:
0 - 19% = 1
20 - 39% = 0
40 - 59% = 0
60 - 79% = 0
80 - 99% = 0
JOB (129)
Primary pointer page: 175, Index root page: 176
Data pages: 3, data page slots: 3, average fill: 80%
Fill distribution:
0 - 19% = 0
20 - 39% = 0
40 - 59% = 0
60 - 79% = 1
80 - 99% = 2
PROJECT (133)
Primary pointer page: 200, Index root page: 201
Data pages: 1, data page slots: 1, average fill: 29%
Fill distribution:
0 - 19% = 0
20 - 39% = 1
40 - 59% = 0
60 - 79% = 0
80 - 99% = 0
PROJ_DEPT_BUDGET (135)
Primary pointer page: 213, Index root page: 214
Data pages: 1, data page slots: 1, average fill: 82%
Fill distribution:
0 - 19% = 0
20 - 39% = 0
40 - 59% = 0
60 - 79% = 0
80 - 99% = 1
SALARY_HISTORY (136)
Primary pointer page: 221, Index root page: 222
Data pages: 1, data page slots: 1, average fill: 61%
Fill distribution:
0 - 19% = 0
20 - 39% = 0
40 - 59% = 0
60 - 79% = 1
80 - 99% = 0
SALES (138)
Primary pointer page: 237, Index root page: 238
Data pages: 1, data page slots: 1, average fill: 70%
Fill distribution:
0 - 19% = 0
20 - 39% = 0
40 - 59% = 0
60 - 79% = 1
80 - 99% = 0
Server Log
zeus Tue Jun 9 14:31:01 2020
INET/inet_error: connect errno = 111
Online Validation
15:04:28.69 Validation started
15:04:28.69 Relation 128 (COUNTRY)
15:04:28.69 process pointer page 0 of 1
15:04:28.69 Index 1 (RDB$PRIMARY1)
15:04:28.69 Relation 128 (COUNTRY) is ok
15:04:28.69 Relation 129 (JOB)
15:04:28.69 process pointer page 0 of 1
15:04:28.69 Index 1 (RDB$PRIMARY2)
15:04:28.69 Index 2 (RDB$FOREIGN3)
15:04:28.69 Index 3 (MAXSALX)
15:04:28.69 Index 4 (MINSALX)
15:04:28.69 Relation 129 (JOB) is ok
15:04:28.69 Relation 130 (DEPARTMENT)
15:04:28.69 process pointer page 0 of 1
15:04:28.69 Index 1 (RDB$4)
15:04:28.69 Index 2 (RDB$PRIMARY5)
15:04:28.69 Index 3 (RDB$FOREIGN6)
15:04:28.69 Index 4 (BUDGETX)
15:04:28.69 Index 5 (RDB$FOREIGN10)
15:04:28.69 Relation 130 (DEPARTMENT) is ok
15:04:28.69 Relation 131 (EMPLOYEE)
15:04:28.69 process pointer page 0 of 1
15:04:28.69 Index 1 (RDB$PRIMARY7)
15:04:28.69 Index 2 (RDB$FOREIGN8)
15:04:28.69 Index 3 (RDB$FOREIGN9)
15:04:28.69 Index 4 (NAMEX)
15:04:28.69 Relation 131 (EMPLOYEE) is ok
15:04:28.69 Relation 133 (PROJECT)
15:04:28.69 process pointer page 0 of 1
15:04:28.69 Index 1 (RDB$11)
15:04:28.69 Index 2 (RDB$PRIMARY12)
15:04:28.69 Index 3 (RDB$FOREIGN13)
15:04:28.69 Index 4 (PRODTYPEX)
15:04:28.69 Relation 133 (PROJECT) is ok
15:04:28.69 Relation 134 (EMPLOYEE_PROJECT)
15:04:28.69 process pointer page 0 of 1
15:04:28.69 Index 1 (RDB$PRIMARY14)
15:04:28.69 Index 2 (RDB$FOREIGN15)
15:04:28.69 Index 3 (RDB$FOREIGN16)
15:04:28.69 Relation 134 (EMPLOYEE_PROJECT) is ok
15:04:28.69 Relation 135 (PROJ_DEPT_BUDGET)
15:04:28.69 process pointer page 0 of 1
15:04:28.69 Index 1 (RDB$PRIMARY17)
15:04:28.70 Index 2 (RDB$FOREIGN18)
15:04:28.70 Index 3 (RDB$FOREIGN19)
15:04:28.70 Relation 135 (PROJ_DEPT_BUDGET) is ok
15:04:28.70 Relation 136 (SALARY_HISTORY)
15:04:28.70 process pointer page 0 of 1
15:04:28.70 Index 1 (RDB$PRIMARY20)
15:04:28.70 Index 2 (RDB$FOREIGN21)
15:04:28.70 Index 3 (CHANGEX)
15:04:28.70 Index 4 (UPDATERX)
15:04:28.70 Relation 136 (SALARY_HISTORY) is ok
15:04:28.70 Relation 137 (CUSTOMER)
15:04:28.70 process pointer page 0 of 1
15:04:28.70 Index 1 (RDB$PRIMARY22)
15:04:28.70 Index 2 (RDB$FOREIGN23)
15:04:28.70 Index 3 (CUSTNAMEX)
15:04:28.70 Index 4 (CUSTREGION)
15:04:28.70 Relation 137 (CUSTOMER) is ok
15:04:28.70 Relation 138 (SALES)
15:04:28.70 process pointer page 0 of 1
15:04:28.70 Index 1 (RDB$PRIMARY24)
15:04:28.70 Index 2 (RDB$FOREIGN25)
15:04:28.70 Index 3 (RDB$FOREIGN26)
15:04:28.70 Index 4 (NEEDX)
15:04:28.70 Index 5 (QTYX)
15:04:28.70 Index 6 (SALESTATX)
15:04:28.70 Relation 138 (SALES) is ok
15:04:28.70 Validation finished
Normal Validation
Validation Completed
Database Sweep
Database Swept
Current User List
Row No = 1
UserID = 0
GroupID = 0
SEC$USER_NAME = SYSDBA
SEC$FIRST_NAME = Sql
SEC$MIDDLE_NAME = Server
SEC$LAST_NAME = Administrator
SEC$PASSWORD = NULL
SEC$ADMIN = False
Rows printed = 1
Add user
Updated User List
Row No = 1
UserID = 0
GroupID = 0
SEC$USER_NAME = SYSDBA
SEC$FIRST_NAME = Sql
SEC$MIDDLE_NAME = Server
SEC$LAST_NAME = Administrator
SEC$PASSWORD = NULL
SEC$ADMIN = False
Row No = 2
UserID = 0
GroupID = 0
SEC$USER_NAME = Test12Tester
SEC$FIRST_NAME = NULL
SEC$MIDDLE_NAME = NULL
SEC$LAST_NAME = Tester
SEC$PASSWORD = LetMeIn
SEC$ADMIN = False
Rows printed = 2
Close and re-open user list
Row No = 1
UserID = 0
GroupID = 0
SEC$USER_NAME = SYSDBA
SEC$FIRST_NAME = Sql
SEC$MIDDLE_NAME = Server
SEC$LAST_NAME = Administrator
SEC$PASSWORD = NULL
SEC$ADMIN = False
Row No = 2
UserID = 0
GroupID = 0
SEC$USER_NAME = TEST12TESTER
SEC$FIRST_NAME =
SEC$MIDDLE_NAME =
SEC$LAST_NAME = Tester
SEC$PASSWORD = NULL
SEC$ADMIN = False
Rows printed = 2
Modify the new user
Row No = 1
UserID = 0
GroupID = 0
SEC$USER_NAME = SYSDBA
SEC$FIRST_NAME = Sql
SEC$MIDDLE_NAME = Server
SEC$LAST_NAME = Administrator
SEC$PASSWORD = NULL
SEC$ADMIN = False
Row No = 2
UserID = 0
GroupID = 0
SEC$USER_NAME = TEST12TESTER
SEC$FIRST_NAME = The
SEC$MIDDLE_NAME =
SEC$LAST_NAME = Tester
SEC$PASSWORD = NULL
SEC$ADMIN = False
Rows printed = 2
Close and re-open user list
Row No = 1
UserID = 0
GroupID = 0
SEC$USER_NAME = SYSDBA
SEC$FIRST_NAME = Sql
SEC$MIDDLE_NAME = Server
SEC$LAST_NAME = Administrator
SEC$PASSWORD = NULL
SEC$ADMIN = False
Row No = 2
UserID = 0
GroupID = 0
SEC$USER_NAME = TEST12TESTER
SEC$FIRST_NAME = The
SEC$MIDDLE_NAME =
SEC$LAST_NAME = Tester
SEC$PASSWORD = NULL
SEC$ADMIN = False
Rows printed = 2
Now delete the new user
Updated User List
Row No = 1
UserID = 0
GroupID = 0
SEC$USER_NAME = SYSDBA
SEC$FIRST_NAME = Sql
SEC$MIDDLE_NAME = Server
SEC$LAST_NAME = Administrator
SEC$PASSWORD = NULL
SEC$ADMIN = False
Rows printed = 1
Employee Database is Online = TRUE
Employee Database is Online = FALSE
Employee Database is Online = TRUE
Starting Backup
Backup Completed - File Size = 74752 bytes
Restore Started
Restore Completed
Show the EMPLOYEE Table from the restored database
Row No = 1
EMP_NO = 2
FIRST_NAME = Robert
LAST_NAME = Nelson
PHONE_EXT = 250
HIRE_DATE = 28/12/1988
DEPT_NO = 600
JOB_CODE = VP
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 105900
FULL_NAME = Nelson, Robert
Row No = 2
EMP_NO = 4
FIRST_NAME = Bruce
LAST_NAME = Young
PHONE_EXT = 233
HIRE_DATE = 28/12/1988
DEPT_NO = 621
JOB_CODE = Eng
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 97500
FULL_NAME = Young, Bruce
Row No = 3
EMP_NO = 5
FIRST_NAME = Kim
LAST_NAME = Lambert
PHONE_EXT = 22
HIRE_DATE = 06/2/1989
DEPT_NO = 130
JOB_CODE = Eng
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 102750
FULL_NAME = Lambert, Kim
Row No = 4
EMP_NO = 8
FIRST_NAME = Leslie
LAST_NAME = Johnson
PHONE_EXT = 410
HIRE_DATE = 05/4/1989
DEPT_NO = 180
JOB_CODE = Mktg
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 64635
FULL_NAME = Johnson, Leslie
Row No = 5
EMP_NO = 9
FIRST_NAME = Phil
LAST_NAME = Forest
PHONE_EXT = 229
HIRE_DATE = 17/4/1989
DEPT_NO = 622
JOB_CODE = Mngr
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 75060
FULL_NAME = Forest, Phil
Row No = 6
EMP_NO = 11
FIRST_NAME = K. J.
LAST_NAME = Weston
PHONE_EXT = 34
HIRE_DATE = 17/1/1990
DEPT_NO = 130
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 86292.94
FULL_NAME = Weston, K. J.
Row No = 7
EMP_NO = 12
FIRST_NAME = Terri
LAST_NAME = Lee
PHONE_EXT = 256
HIRE_DATE = 01/5/1990
DEPT_NO = 000
JOB_CODE = Admin
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 53793
FULL_NAME = Lee, Terri
Row No = 8
EMP_NO = 14
FIRST_NAME = Stewart
LAST_NAME = Hall
PHONE_EXT = 227
HIRE_DATE = 04/6/1990
DEPT_NO = 900
JOB_CODE = Finan
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 69482.63
FULL_NAME = Hall, Stewart
Row No = 9
EMP_NO = 15
FIRST_NAME = Katherine
LAST_NAME = Young
PHONE_EXT = 231
HIRE_DATE = 14/6/1990
DEPT_NO = 623
JOB_CODE = Mngr
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 67241.25
FULL_NAME = Young, Katherine
Row No = 10
EMP_NO = 20
FIRST_NAME = Chris
LAST_NAME = Papadopoulos
PHONE_EXT = 887
HIRE_DATE = 01/1/1990
DEPT_NO = 671
JOB_CODE = Mngr
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 89655
FULL_NAME = Papadopoulos, Chris
Row No = 11
EMP_NO = 24
FIRST_NAME = Pete
LAST_NAME = Fisher
PHONE_EXT = 888
HIRE_DATE = 12/9/1990
DEPT_NO = 671
JOB_CODE = Eng
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 81810.19
FULL_NAME = Fisher, Pete
Row No = 12
EMP_NO = 28
FIRST_NAME = Ann
LAST_NAME = Bennet
PHONE_EXT = 5
HIRE_DATE = 01/2/1991
DEPT_NO = 120
JOB_CODE = Admin
JOB_GRADE = 5
JOB_COUNTRY = England
SALARY = 22935
FULL_NAME = Bennet, Ann
Row No = 13
EMP_NO = 29
FIRST_NAME = Roger
LAST_NAME = De Souza
PHONE_EXT = 288
HIRE_DATE = 18/2/1991
DEPT_NO = 623
JOB_CODE = Eng
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 69482.63
FULL_NAME = De Souza, Roger
Row No = 14
EMP_NO = 34
FIRST_NAME = Janet
LAST_NAME = Baldwin
PHONE_EXT = 2
HIRE_DATE = 21/3/1991
DEPT_NO = 110
JOB_CODE = Sales
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 61637.81
FULL_NAME = Baldwin, Janet
Row No = 15
EMP_NO = 36
FIRST_NAME = Roger
LAST_NAME = Reeves
PHONE_EXT = 6
HIRE_DATE = 25/4/1991
DEPT_NO = 120
JOB_CODE = Sales
JOB_GRADE = 3
JOB_COUNTRY = England
SALARY = 33620.63
FULL_NAME = Reeves, Roger
Row No = 16
EMP_NO = 37
FIRST_NAME = Willie
LAST_NAME = Stansbury
PHONE_EXT = 7
HIRE_DATE = 25/4/1991
DEPT_NO = 120
JOB_CODE = Eng
JOB_GRADE = 4
JOB_COUNTRY = England
SALARY = 39224.06
FULL_NAME = Stansbury, Willie
Row No = 17
EMP_NO = 44
FIRST_NAME = Leslie
LAST_NAME = Phong
PHONE_EXT = 216
HIRE_DATE = 03/6/1991
DEPT_NO = 623
JOB_CODE = Eng
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 56034.38
FULL_NAME = Phong, Leslie
Row No = 18
EMP_NO = 45
FIRST_NAME = Ashok
LAST_NAME = Ramanathan
PHONE_EXT = 209
HIRE_DATE = 01/8/1991
DEPT_NO = 621
JOB_CODE = Eng
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 80689.5
FULL_NAME = Ramanathan, Ashok
Row No = 19
EMP_NO = 46
FIRST_NAME = Walter
LAST_NAME = Steadman
PHONE_EXT = 210
HIRE_DATE = 09/8/1991
DEPT_NO = 900
JOB_CODE = CFO
JOB_GRADE = 1
JOB_COUNTRY = USA
SALARY = 116100
FULL_NAME = Steadman, Walter
Row No = 20
EMP_NO = 52
FIRST_NAME = Carol
LAST_NAME = Nordstrom
PHONE_EXT = 420
HIRE_DATE = 02/10/1991
DEPT_NO = 180
JOB_CODE = PRel
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 42742.5
FULL_NAME = Nordstrom, Carol
Row No = 21
EMP_NO = 61
FIRST_NAME = Luke
LAST_NAME = Leung
PHONE_EXT = 3
HIRE_DATE = 18/2/1992
DEPT_NO = 110
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 68805
FULL_NAME = Leung, Luke
Row No = 22
EMP_NO = 65
FIRST_NAME = Sue Anne
LAST_NAME = O'Brien
PHONE_EXT = 877
HIRE_DATE = 23/3/1992
DEPT_NO = 670
JOB_CODE = Admin
JOB_GRADE = 5
JOB_COUNTRY = USA
SALARY = 31275
FULL_NAME = O'Brien, Sue Anne
Row No = 23
EMP_NO = 71
FIRST_NAME = Jennifer M.
LAST_NAME = Burbank
PHONE_EXT = 289
HIRE_DATE = 15/4/1992
DEPT_NO = 622
JOB_CODE = Eng
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 53167.5
FULL_NAME = Burbank, Jennifer M.
Row No = 24
EMP_NO = 72
FIRST_NAME = Claudia
LAST_NAME = Sutherland
PHONE_EXT = NULL
HIRE_DATE = 20/4/1992
DEPT_NO = 140
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = Canada
SALARY = 100914
FULL_NAME = Sutherland, Claudia
Row No = 25
EMP_NO = 83
FIRST_NAME = Dana
LAST_NAME = Bishop
PHONE_EXT = 290
HIRE_DATE = 01/6/1992
DEPT_NO = 621
JOB_CODE = Eng
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 62550
FULL_NAME = Bishop, Dana
Row No = 26
EMP_NO = 85
FIRST_NAME = Mary S.
LAST_NAME = MacDonald
PHONE_EXT = 477
HIRE_DATE = 01/6/1992
DEPT_NO = 100
JOB_CODE = VP
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 111262.5
FULL_NAME = MacDonald, Mary S.
Row No = 27
EMP_NO = 94
FIRST_NAME = Randy
LAST_NAME = Williams
PHONE_EXT = 892
HIRE_DATE = 08/8/1992
DEPT_NO = 672
JOB_CODE = Mngr
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 56295
FULL_NAME = Williams, Randy
Row No = 28
EMP_NO = 105
FIRST_NAME = Oliver H.
LAST_NAME = Bender
PHONE_EXT = 255
HIRE_DATE = 08/10/1992
DEPT_NO = 000
JOB_CODE = CEO
JOB_GRADE = 1
JOB_COUNTRY = USA
SALARY = 212850
FULL_NAME = Bender, Oliver H.
Row No = 29
EMP_NO = 107
FIRST_NAME = Kevin
LAST_NAME = Cook
PHONE_EXT = 894
HIRE_DATE = 01/2/1993
DEPT_NO = 670
JOB_CODE = Dir
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 111262.5
FULL_NAME = Cook, Kevin
Row No = 30
EMP_NO = 109
FIRST_NAME = Kelly
LAST_NAME = Brown
PHONE_EXT = 202
HIRE_DATE = 04/2/1993
DEPT_NO = 600
JOB_CODE = Admin
JOB_GRADE = 5
JOB_COUNTRY = USA
SALARY = 27000
FULL_NAME = Brown, Kelly
Row No = 31
EMP_NO = 110
FIRST_NAME = Yuki
LAST_NAME = Ichida
PHONE_EXT = 22
HIRE_DATE = 04/2/1993
DEPT_NO = 115
JOB_CODE = Eng
JOB_GRADE = 3
JOB_COUNTRY = Japan
SALARY = 6000000
FULL_NAME = Ichida, Yuki
Row No = 32
EMP_NO = 113
FIRST_NAME = Mary
LAST_NAME = Page
PHONE_EXT = 845
HIRE_DATE = 12/4/1993
DEPT_NO = 671
JOB_CODE = Eng
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 48000
FULL_NAME = Page, Mary
Row No = 33
EMP_NO = 114
FIRST_NAME = Bill
LAST_NAME = Parker
PHONE_EXT = 247
HIRE_DATE = 01/6/1993
DEPT_NO = 623
JOB_CODE = Eng
JOB_GRADE = 5
JOB_COUNTRY = USA
SALARY = 35000
FULL_NAME = Parker, Bill
Row No = 34
EMP_NO = 118
FIRST_NAME = Takashi
LAST_NAME = Yamamoto
PHONE_EXT = 23
HIRE_DATE = 01/7/1993
DEPT_NO = 115
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = Japan
SALARY = 7480000
FULL_NAME = Yamamoto, Takashi
Row No = 35
EMP_NO = 121
FIRST_NAME = Roberto
LAST_NAME = Ferrari
PHONE_EXT = 1
HIRE_DATE = 12/7/1993
DEPT_NO = 125
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = Italy
SALARY = 99000000
FULL_NAME = Ferrari, Roberto
Row No = 36
EMP_NO = 127
FIRST_NAME = Michael
LAST_NAME = Yanowski
PHONE_EXT = 492
HIRE_DATE = 09/8/1993
DEPT_NO = 100
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 44000
FULL_NAME = Yanowski, Michael
Row No = 37
EMP_NO = 134
FIRST_NAME = Jacques
LAST_NAME = Glon
PHONE_EXT = NULL
HIRE_DATE = 23/8/1993
DEPT_NO = 123
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = France
SALARY = 390500
FULL_NAME = Glon, Jacques
Row No = 38
EMP_NO = 136
FIRST_NAME = Scott
LAST_NAME = Johnson
PHONE_EXT = 265
HIRE_DATE = 13/9/1993
DEPT_NO = 623
JOB_CODE = Doc
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 60000
FULL_NAME = Johnson, Scott
Row No = 39
EMP_NO = 138
FIRST_NAME = T.J.
LAST_NAME = Green
PHONE_EXT = 218
HIRE_DATE = 01/11/1993
DEPT_NO = 621
JOB_CODE = Eng
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 36000
FULL_NAME = Green, T.J.
Row No = 40
EMP_NO = 141
FIRST_NAME = Pierre
LAST_NAME = Osborne
PHONE_EXT = NULL
HIRE_DATE = 03/1/1994
DEPT_NO = 121
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = Switzerland
SALARY = 110000
FULL_NAME = Osborne, Pierre
Row No = 41
EMP_NO = 144
FIRST_NAME = John
LAST_NAME = Montgomery
PHONE_EXT = 820
HIRE_DATE = 30/3/1994
DEPT_NO = 672
JOB_CODE = Eng
JOB_GRADE = 5
JOB_COUNTRY = USA
SALARY = 35000
FULL_NAME = Montgomery, John
Row No = 42
EMP_NO = 145
FIRST_NAME = Mark
LAST_NAME = Guckenheimer
PHONE_EXT = 221
HIRE_DATE = 02/5/1994
DEPT_NO = 622
JOB_CODE = Eng
JOB_GRADE = 5
JOB_COUNTRY = USA
SALARY = 32000
FULL_NAME = Guckenheimer, Mark
Rows printed = 42
Starting Server Side Backup
Backup Completed
Restore Started
Restore Completed
Show the EMPLOYEE Table from the restored database
Row No = 1
EMP_NO = 2
FIRST_NAME = Robert
LAST_NAME = Nelson
PHONE_EXT = 250
HIRE_DATE = 28/12/1988
DEPT_NO = 600
JOB_CODE = VP
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 105900
FULL_NAME = Nelson, Robert
Row No = 2
EMP_NO = 4
FIRST_NAME = Bruce
LAST_NAME = Young
PHONE_EXT = 233
HIRE_DATE = 28/12/1988
DEPT_NO = 621
JOB_CODE = Eng
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 97500
FULL_NAME = Young, Bruce
Row No = 3
EMP_NO = 5
FIRST_NAME = Kim
LAST_NAME = Lambert
PHONE_EXT = 22
HIRE_DATE = 06/2/1989
DEPT_NO = 130
JOB_CODE = Eng
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 102750
FULL_NAME = Lambert, Kim
Row No = 4
EMP_NO = 8
FIRST_NAME = Leslie
LAST_NAME = Johnson
PHONE_EXT = 410
HIRE_DATE = 05/4/1989
DEPT_NO = 180
JOB_CODE = Mktg
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 64635
FULL_NAME = Johnson, Leslie
Row No = 5
EMP_NO = 9
FIRST_NAME = Phil
LAST_NAME = Forest
PHONE_EXT = 229
HIRE_DATE = 17/4/1989
DEPT_NO = 622
JOB_CODE = Mngr
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 75060
FULL_NAME = Forest, Phil
Row No = 6
EMP_NO = 11
FIRST_NAME = K. J.
LAST_NAME = Weston
PHONE_EXT = 34
HIRE_DATE = 17/1/1990
DEPT_NO = 130
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 86292.94
FULL_NAME = Weston, K. J.
Row No = 7
EMP_NO = 12
FIRST_NAME = Terri
LAST_NAME = Lee
PHONE_EXT = 256
HIRE_DATE = 01/5/1990
DEPT_NO = 000
JOB_CODE = Admin
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 53793
FULL_NAME = Lee, Terri
Row No = 8
EMP_NO = 14
FIRST_NAME = Stewart
LAST_NAME = Hall
PHONE_EXT = 227
HIRE_DATE = 04/6/1990
DEPT_NO = 900
JOB_CODE = Finan
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 69482.63
FULL_NAME = Hall, Stewart
Row No = 9
EMP_NO = 15
FIRST_NAME = Katherine
LAST_NAME = Young
PHONE_EXT = 231
HIRE_DATE = 14/6/1990
DEPT_NO = 623
JOB_CODE = Mngr
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 67241.25
FULL_NAME = Young, Katherine
Row No = 10
EMP_NO = 20
FIRST_NAME = Chris
LAST_NAME = Papadopoulos
PHONE_EXT = 887
HIRE_DATE = 01/1/1990
DEPT_NO = 671
JOB_CODE = Mngr
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 89655
FULL_NAME = Papadopoulos, Chris
Row No = 11
EMP_NO = 24
FIRST_NAME = Pete
LAST_NAME = Fisher
PHONE_EXT = 888
HIRE_DATE = 12/9/1990
DEPT_NO = 671
JOB_CODE = Eng
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 81810.19
FULL_NAME = Fisher, Pete
Row No = 12
EMP_NO = 28
FIRST_NAME = Ann
LAST_NAME = Bennet
PHONE_EXT = 5
HIRE_DATE = 01/2/1991
DEPT_NO = 120
JOB_CODE = Admin
JOB_GRADE = 5
JOB_COUNTRY = England
SALARY = 22935
FULL_NAME = Bennet, Ann
Row No = 13
EMP_NO = 29
FIRST_NAME = Roger
LAST_NAME = De Souza
PHONE_EXT = 288
HIRE_DATE = 18/2/1991
DEPT_NO = 623
JOB_CODE = Eng
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 69482.63
FULL_NAME = De Souza, Roger
Row No = 14
EMP_NO = 34
FIRST_NAME = Janet
LAST_NAME = Baldwin
PHONE_EXT = 2
HIRE_DATE = 21/3/1991
DEPT_NO = 110
JOB_CODE = Sales
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 61637.81
FULL_NAME = Baldwin, Janet
Row No = 15
EMP_NO = 36
FIRST_NAME = Roger
LAST_NAME = Reeves
PHONE_EXT = 6
HIRE_DATE = 25/4/1991
DEPT_NO = 120
JOB_CODE = Sales
JOB_GRADE = 3
JOB_COUNTRY = England
SALARY = 33620.63
FULL_NAME = Reeves, Roger
Row No = 16
EMP_NO = 37
FIRST_NAME = Willie
LAST_NAME = Stansbury
PHONE_EXT = 7
HIRE_DATE = 25/4/1991
DEPT_NO = 120
JOB_CODE = Eng
JOB_GRADE = 4
JOB_COUNTRY = England
SALARY = 39224.06
FULL_NAME = Stansbury, Willie
Row No = 17
EMP_NO = 44
FIRST_NAME = Leslie
LAST_NAME = Phong
PHONE_EXT = 216
HIRE_DATE = 03/6/1991
DEPT_NO = 623
JOB_CODE = Eng
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 56034.38
FULL_NAME = Phong, Leslie
Row No = 18
EMP_NO = 45
FIRST_NAME = Ashok
LAST_NAME = Ramanathan
PHONE_EXT = 209
HIRE_DATE = 01/8/1991
DEPT_NO = 621
JOB_CODE = Eng
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 80689.5
FULL_NAME = Ramanathan, Ashok
Row No = 19
EMP_NO = 46
FIRST_NAME = Walter
LAST_NAME = Steadman
PHONE_EXT = 210
HIRE_DATE = 09/8/1991
DEPT_NO = 900
JOB_CODE = CFO
JOB_GRADE = 1
JOB_COUNTRY = USA
SALARY = 116100
FULL_NAME = Steadman, Walter
Row No = 20
EMP_NO = 52
FIRST_NAME = Carol
LAST_NAME = Nordstrom
PHONE_EXT = 420
HIRE_DATE = 02/10/1991
DEPT_NO = 180
JOB_CODE = PRel
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 42742.5
FULL_NAME = Nordstrom, Carol
Row No = 21
EMP_NO = 61
FIRST_NAME = Luke
LAST_NAME = Leung
PHONE_EXT = 3
HIRE_DATE = 18/2/1992
DEPT_NO = 110
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 68805
FULL_NAME = Leung, Luke
Row No = 22
EMP_NO = 65
FIRST_NAME = Sue Anne
LAST_NAME = O'Brien
PHONE_EXT = 877
HIRE_DATE = 23/3/1992
DEPT_NO = 670
JOB_CODE = Admin
JOB_GRADE = 5
JOB_COUNTRY = USA
SALARY = 31275
FULL_NAME = O'Brien, Sue Anne
Row No = 23
EMP_NO = 71
FIRST_NAME = Jennifer M.
LAST_NAME = Burbank
PHONE_EXT = 289
HIRE_DATE = 15/4/1992
DEPT_NO = 622
JOB_CODE = Eng
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 53167.5
FULL_NAME = Burbank, Jennifer M.
Row No = 24
EMP_NO = 72
FIRST_NAME = Claudia
LAST_NAME = Sutherland
PHONE_EXT = NULL
HIRE_DATE = 20/4/1992
DEPT_NO = 140
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = Canada
SALARY = 100914
FULL_NAME = Sutherland, Claudia
Row No = 25
EMP_NO = 83
FIRST_NAME = Dana
LAST_NAME = Bishop
PHONE_EXT = 290
HIRE_DATE = 01/6/1992
DEPT_NO = 621
JOB_CODE = Eng
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 62550
FULL_NAME = Bishop, Dana
Row No = 26
EMP_NO = 85
FIRST_NAME = Mary S.
LAST_NAME = MacDonald
PHONE_EXT = 477
HIRE_DATE = 01/6/1992
DEPT_NO = 100
JOB_CODE = VP
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 111262.5
FULL_NAME = MacDonald, Mary S.
Row No = 27
EMP_NO = 94
FIRST_NAME = Randy
LAST_NAME = Williams
PHONE_EXT = 892
HIRE_DATE = 08/8/1992
DEPT_NO = 672
JOB_CODE = Mngr
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 56295
FULL_NAME = Williams, Randy
Row No = 28
EMP_NO = 105
FIRST_NAME = Oliver H.
LAST_NAME = Bender
PHONE_EXT = 255
HIRE_DATE = 08/10/1992
DEPT_NO = 000
JOB_CODE = CEO
JOB_GRADE = 1
JOB_COUNTRY = USA
SALARY = 212850
FULL_NAME = Bender, Oliver H.
Row No = 29
EMP_NO = 107
FIRST_NAME = Kevin
LAST_NAME = Cook
PHONE_EXT = 894
HIRE_DATE = 01/2/1993
DEPT_NO = 670
JOB_CODE = Dir
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 111262.5
FULL_NAME = Cook, Kevin
Row No = 30
EMP_NO = 109
FIRST_NAME = Kelly
LAST_NAME = Brown
PHONE_EXT = 202
HIRE_DATE = 04/2/1993
DEPT_NO = 600
JOB_CODE = Admin
JOB_GRADE = 5
JOB_COUNTRY = USA
SALARY = 27000
FULL_NAME = Brown, Kelly
Row No = 31
EMP_NO = 110
FIRST_NAME = Yuki
LAST_NAME = Ichida
PHONE_EXT = 22
HIRE_DATE = 04/2/1993
DEPT_NO = 115
JOB_CODE = Eng
JOB_GRADE = 3
JOB_COUNTRY = Japan
SALARY = 6000000
FULL_NAME = Ichida, Yuki
Row No = 32
EMP_NO = 113
FIRST_NAME = Mary
LAST_NAME = Page
PHONE_EXT = 845
HIRE_DATE = 12/4/1993
DEPT_NO = 671
JOB_CODE = Eng
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 48000
FULL_NAME = Page, Mary
Row No = 33
EMP_NO = 114
FIRST_NAME = Bill
LAST_NAME = Parker
PHONE_EXT = 247
HIRE_DATE = 01/6/1993
DEPT_NO = 623
JOB_CODE = Eng
JOB_GRADE = 5
JOB_COUNTRY = USA
SALARY = 35000
FULL_NAME = Parker, Bill
Row No = 34
EMP_NO = 118
FIRST_NAME = Takashi
LAST_NAME = Yamamoto
PHONE_EXT = 23
HIRE_DATE = 01/7/1993
DEPT_NO = 115
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = Japan
SALARY = 7480000
FULL_NAME = Yamamoto, Takashi
Row No = 35
EMP_NO = 121
FIRST_NAME = Roberto
LAST_NAME = Ferrari
PHONE_EXT = 1
HIRE_DATE = 12/7/1993
DEPT_NO = 125
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = Italy
SALARY = 99000000
FULL_NAME = Ferrari, Roberto
Row No = 36
EMP_NO = 127
FIRST_NAME = Michael
LAST_NAME = Yanowski
PHONE_EXT = 492
HIRE_DATE = 09/8/1993
DEPT_NO = 100
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 44000
FULL_NAME = Yanowski, Michael
Row No = 37
EMP_NO = 134
FIRST_NAME = Jacques
LAST_NAME = Glon
PHONE_EXT = NULL
HIRE_DATE = 23/8/1993
DEPT_NO = 123
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = France
SALARY = 390500
FULL_NAME = Glon, Jacques
Row No = 38
EMP_NO = 136
FIRST_NAME = Scott
LAST_NAME = Johnson
PHONE_EXT = 265
HIRE_DATE = 13/9/1993
DEPT_NO = 623
JOB_CODE = Doc
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 60000
FULL_NAME = Johnson, Scott
Row No = 39
EMP_NO = 138
FIRST_NAME = T.J.
LAST_NAME = Green
PHONE_EXT = 218
HIRE_DATE = 01/11/1993
DEPT_NO = 621
JOB_CODE = Eng
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 36000
FULL_NAME = Green, T.J.
Row No = 40
EMP_NO = 141
FIRST_NAME = Pierre
LAST_NAME = Osborne
PHONE_EXT = NULL
HIRE_DATE = 03/1/1994
DEPT_NO = 121
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = Switzerland
SALARY = 110000
FULL_NAME = Osborne, Pierre
Row No = 41
EMP_NO = 144
FIRST_NAME = John
LAST_NAME = Montgomery
PHONE_EXT = 820
HIRE_DATE = 30/3/1994
DEPT_NO = 672
JOB_CODE = Eng
JOB_GRADE = 5
JOB_COUNTRY = USA
SALARY = 35000
FULL_NAME = Montgomery, John
Row No = 42
EMP_NO = 145
FIRST_NAME = Mark
LAST_NAME = Guckenheimer
PHONE_EXT = 221
HIRE_DATE = 02/5/1994
DEPT_NO = 622
JOB_CODE = Eng
JOB_GRADE = 5
JOB_COUNTRY = USA
SALARY = 32000
FULL_NAME = Guckenheimer, Mark
Rows printed = 42
------------------------------------------------------
Running Test 13: Open and read from Employee Database with ISQLMonitor
Row No = 1
EMP_NO = 12
FIRST_NAME = Terri
LAST_NAME = Lee
PHONE_EXT = 256
HIRE_DATE = 01/5/1990
DEPT_NO = 000
JOB_CODE = Admin
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 53793
FULL_NAME = Lee, Terri
DEPT_PATH = Corporate Headquarters
DEPT_KEY_PATH = 000
Row No = 2
EMP_NO = 105
FIRST_NAME = Oliver H.
LAST_NAME = Bender
PHONE_EXT = 255
HIRE_DATE = 08/10/1992
DEPT_NO = 000
JOB_CODE = CEO
JOB_GRADE = 1
JOB_COUNTRY = USA
SALARY = 212850
FULL_NAME = Bender, Oliver H.
DEPT_PATH = Corporate Headquarters
DEPT_KEY_PATH = 000
Rows printed = 2
Current memory = 960,448
Delta memory = 9,248
Max memory = 1,002,992
Elapsed time= 0.002 sec
Cpu = 0.000 sec
Buffers = 75
Reads = 2
Writes = 0
Fetches = 10
Selects = 0
Inserts = 0
Updates = 0
Deletes = 0
Reconnect
Row No = 1
EMP_NO = 12
FIRST_NAME = Terri
LAST_NAME = Lee
PHONE_EXT = 256
HIRE_DATE = 01/5/1990
DEPT_NO = 000
JOB_CODE = Admin
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 53793
FULL_NAME = Lee, Terri
DEPT_PATH = Corporate Headquarters
DEPT_KEY_PATH = 000
Row No = 2
EMP_NO = 105
FIRST_NAME = Oliver H.
LAST_NAME = Bender
PHONE_EXT = 255
HIRE_DATE = 08/10/1992
DEPT_NO = 000
JOB_CODE = CEO
JOB_GRADE = 1
JOB_COUNTRY = USA
SALARY = 212850
FULL_NAME = Bender, Oliver H.
DEPT_PATH = Corporate Headquarters
DEPT_KEY_PATH = 000
Rows printed = 2
35 ISQL Monitor Messages Received (Monitoring Disabled)
35 ISQL Monitor Messages written
*Monitor*
[Application: IBX Test Suite]
Test_Database_13: [Connect]
*Monitor*
[Application: IBX Test Suite]
Test_Transaction_13: [Start transaction]
*Monitor*
[Application: IBX Test Suite]
: [Prepare] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO
Plan:
PLAN JOIN ((DEPTS DEPARTMENT INDEX (RDB$FOREIGN6))
PLAN (DEPTS D INDEX (RDB$FOREIGN6)), A INDEX (RDB$FOREIGN8))
*Monitor*
[Application: IBX Test Suite]
: [Start transaction]
*Monitor*
[Application: IBX Test Suite]
: [Prepare] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null)
Plan:
PLAN JOIN (JOIN (R INDEX (RDB$INDEX_4), F INDEX (RDB$INDEX_2)), JOIN (X C INDEX (RDB$INDEX_42), X S INDEX (RDB$INDEX_6)))
*Monitor*
[Application: IBX Test Suite]
: [Execute] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null)
RELATION = EMPLOYEE
*Monitor*
[Application: IBX Test Suite]
: [Fetch] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null)
*Monitor*
[Application: IBX Test Suite]
: [Fetch] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null)
*Monitor*
[Application: IBX Test Suite]
: [Fetch] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null)
*Monitor*
[Application: IBX Test Suite]
: [Fetch] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null)
SEOFReached
*Monitor*
[Application: IBX Test Suite]
: [Commit (Hard commit)]
*Monitor*
[Application: IBX Test Suite]
: [Execute] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO
*Monitor*
[Application: IBX Test Suite]
: [Fetch] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO
*Monitor*
[Application: IBX Test Suite]
: [Fetch] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO
*Monitor*
[Application: IBX Test Suite]
: [Fetch] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO
SEOFReached
*Monitor*
[Application: IBX Test Suite]
Test_Transaction_13: [Commit (Hard commit)]
*Monitor*
[Application: IBX Test Suite]
Test_Database_13: [Disconnect]
*Monitor*
[Application: IBX Test Suite]
Test_Database_13: [Connect]
*Monitor*
[Application: IBX Test Suite]
Test_Transaction_13: [Start transaction]
*Monitor*
[Application: IBX Test Suite]
: [Prepare] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO
Plan:
PLAN JOIN ((DEPTS DEPARTMENT INDEX (RDB$FOREIGN6))
PLAN (DEPTS D INDEX (RDB$FOREIGN6)), A INDEX (RDB$FOREIGN8))
*Monitor*
[Application: IBX Test Suite]
: [Start transaction]
*Monitor*
[Application: IBX Test Suite]
: [Prepare] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null)
Plan:
PLAN JOIN (JOIN (R INDEX (RDB$INDEX_4), F INDEX (RDB$INDEX_2)), JOIN (X C INDEX (RDB$INDEX_42), X S INDEX (RDB$INDEX_6)))
*Monitor*
[Application: IBX Test Suite]
: [Execute] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null)
RELATION = EMPLOYEE
*Monitor*
[Application: IBX Test Suite]
: [Fetch] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null)
*Monitor*
[Application: IBX Test Suite]
: [Fetch] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null)
*Monitor*
[Application: IBX Test Suite]
: [Fetch] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null)
*Monitor*
[Application: IBX Test Suite]
: [Fetch] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null)
SEOFReached
*Monitor*
[Application: IBX Test Suite]
: [Commit (Hard commit)]
*Monitor*
[Application: IBX Test Suite]
: [Execute] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO
*Monitor*
[Application: IBX Test Suite]
: [Fetch] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO
*Monitor*
[Application: IBX Test Suite]
: [Fetch] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO
*Monitor*
[Application: IBX Test Suite]
: [Fetch] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO
SEOFReached
*Monitor*
[Application: IBX Test Suite]
Test_Transaction_13: [Commit (Hard commit)]
*Monitor*
[Application: IBX Test Suite]
Test_Database_13: [Disconnect]
*Monitor*
[Application: IBX Test Suite]
Monitoring Disabled
35 ISQL Monitor Messages Received
------------------------------------------------------
Running Test 14: Open and read from Employee Database with ISQLMonitor and external monitor
Row No = 1
EMP_NO = 12
FIRST_NAME = Terri
LAST_NAME = Lee
PHONE_EXT = 256
HIRE_DATE = 01/5/1990
DEPT_NO = 000
JOB_CODE = Admin
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 53793
FULL_NAME = Lee, Terri
DEPT_PATH = Corporate Headquarters
DEPT_KEY_PATH = 000
Row No = 2
EMP_NO = 105
FIRST_NAME = Oliver H.
LAST_NAME = Bender
PHONE_EXT = 255
HIRE_DATE = 08/10/1992
DEPT_NO = 000
JOB_CODE = CEO
JOB_GRADE = 1
JOB_COUNTRY = USA
SALARY = 212850
FULL_NAME = Bender, Oliver H.
DEPT_PATH = Corporate Headquarters
DEPT_KEY_PATH = 000
Rows printed = 2
Current memory = 960,448
Delta memory = 9,248
Max memory = 1,002,992
Elapsed time= 0.101 sec
Cpu = 0.000 sec
Buffers = 75
Reads = 2
Writes = 0
Fetches = 10
Selects = 0
Inserts = 0
Updates = 0
Deletes = 0
Reconnect
Row No = 1
EMP_NO = 12
FIRST_NAME = Terri
LAST_NAME = Lee
PHONE_EXT = 256
HIRE_DATE = 01/5/1990
DEPT_NO = 000
JOB_CODE = Admin
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 53793
FULL_NAME = Lee, Terri
DEPT_PATH = Corporate Headquarters
DEPT_KEY_PATH = 000
Row No = 2
EMP_NO = 105
FIRST_NAME = Oliver H.
LAST_NAME = Bender
PHONE_EXT = 255
HIRE_DATE = 08/10/1992
DEPT_NO = 000
JOB_CODE = CEO
JOB_GRADE = 1
JOB_COUNTRY = USA
SALARY = 212850
FULL_NAME = Bender, Oliver H.
DEPT_PATH = Corporate Headquarters
DEPT_KEY_PATH = 000
Rows printed = 2
35 ISQL Monitor Messages written
*Monitor*
[Application: IBX Test Suite]
Test_Database_14: [Connect]
*Monitor*
[Application: IBX Test Suite]
Test_Transaction_14: [Start transaction]
*Monitor*
[Application: IBX Test Suite]
: [Prepare] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO
Plan:
PLAN JOIN ((DEPTS DEPARTMENT INDEX (RDB$FOREIGN6))
PLAN (DEPTS D INDEX (RDB$FOREIGN6)), A INDEX (RDB$FOREIGN8))
*Monitor*
[Application: IBX Test Suite]
: [Start transaction]
*Monitor*
[Application: IBX Test Suite]
: [Prepare] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null)
Plan:
PLAN JOIN (JOIN (R INDEX (RDB$INDEX_4), F INDEX (RDB$INDEX_2)), JOIN (X C INDEX (RDB$INDEX_42), X S INDEX (RDB$INDEX_6)))
*Monitor*
[Application: IBX Test Suite]
: [Execute] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null)
RELATION = EMPLOYEE
*Monitor*
[Application: IBX Test Suite]
: [Fetch] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null)
*Monitor*
[Application: IBX Test Suite]
: [Fetch] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null)
*Monitor*
[Application: IBX Test Suite]
: [Fetch] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null)
*Monitor*
[Application: IBX Test Suite]
: [Fetch] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null)
SEOFReached
*Monitor*
[Application: IBX Test Suite]
: [Commit (Hard commit)]
*Monitor*
[Application: IBX Test Suite]
: [Execute] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO
*Monitor*
[Application: IBX Test Suite]
: [Fetch] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO
*Monitor*
[Application: IBX Test Suite]
: [Fetch] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO
*Monitor*
[Application: IBX Test Suite]
: [Fetch] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO
SEOFReached
*Monitor*
[Application: IBX Test Suite]
Test_Transaction_14: [Commit (Hard commit)]
*Monitor*
[Application: IBX Test Suite]
Test_Database_14: [Disconnect]
*Monitor*
[Application: IBX Test Suite]
Test_Database_14: [Connect]
*Monitor*
[Application: IBX Test Suite]
Test_Transaction_14: [Start transaction]
*Monitor*
[Application: IBX Test Suite]
: [Prepare] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO
Plan:
PLAN JOIN ((DEPTS DEPARTMENT INDEX (RDB$FOREIGN6))
PLAN (DEPTS D INDEX (RDB$FOREIGN6)), A INDEX (RDB$FOREIGN8))
*Monitor*
[Application: IBX Test Suite]
: [Start transaction]
*Monitor*
[Application: IBX Test Suite]
: [Prepare] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null)
Plan:
PLAN JOIN (JOIN (R INDEX (RDB$INDEX_4), F INDEX (RDB$INDEX_2)), JOIN (X C INDEX (RDB$INDEX_42), X S INDEX (RDB$INDEX_6)))
*Monitor*
[Application: IBX Test Suite]
: [Execute] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null)
RELATION = EMPLOYEE
*Monitor*
[Application: IBX Test Suite]
: [Fetch] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null)
*Monitor*
[Application: IBX Test Suite]
: [Fetch] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null)
*Monitor*
[Application: IBX Test Suite]
: [Fetch] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null)
*Monitor*
[Application: IBX Test Suite]
: [Fetch] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null)
SEOFReached
*Monitor*
[Application: IBX Test Suite]
: [Commit (Hard commit)]
*Monitor*
[Application: IBX Test Suite]
: [Execute] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO
*Monitor*
[Application: IBX Test Suite]
: [Fetch] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO
*Monitor*
[Application: IBX Test Suite]
: [Fetch] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO
*Monitor*
[Application: IBX Test Suite]
: [Fetch] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO
SEOFReached
*Monitor*
[Application: IBX Test Suite]
Test_Transaction_14: [Commit (Hard commit)]
*Monitor*
[Application: IBX Test Suite]
Test_Database_14: [Disconnect]
*Monitor*
[Application: IBX Test Suite]
Monitoring Disabled
35 ISQL Monitor Messages Received
------------------------------------------------------
Skipping 15
------------------------------------------------------
Running Test 16: TIBTable in master/detail relationship
Department No 000 Selected
Row No = 1
EMP_NO = 12
FIRST_NAME = Terri
LAST_NAME = Lee
PHONE_EXT = 256
HIRE_DATE = 01/5/1990
DEPT_NO = 000
JOB_CODE = Admin
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 53793
FULL_NAME = Lee, Terri
Row No = 2
EMP_NO = 105
FIRST_NAME = Oliver H.
LAST_NAME = Bender
PHONE_EXT = 255
HIRE_DATE = 08/10/1992
DEPT_NO = 000
JOB_CODE = CEO
JOB_GRADE = 1
JOB_COUNTRY = USA
SALARY = 212850
FULL_NAME = Bender, Oliver H.
Rows printed = 2
Department No 600 Selected
Row No = 1
EMP_NO = 2
FIRST_NAME = Robert
LAST_NAME = Nelson
PHONE_EXT = 250
HIRE_DATE = 28/12/1988
DEPT_NO = 600
JOB_CODE = VP
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 105900
FULL_NAME = Nelson, Robert
Row No = 2
EMP_NO = 109
FIRST_NAME = Kelly
LAST_NAME = Brown
PHONE_EXT = 202
HIRE_DATE = 04/2/1993
DEPT_NO = 600
JOB_CODE = Admin
JOB_GRADE = 5
JOB_COUNTRY = USA
SALARY = 27000
FULL_NAME = Brown, Kelly
Rows printed = 2
Department No 621 Selected
Row No = 1
EMP_NO = 4
FIRST_NAME = Bruce
LAST_NAME = Young
PHONE_EXT = 233
HIRE_DATE = 28/12/1988
DEPT_NO = 621
JOB_CODE = Eng
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 97500
FULL_NAME = Young, Bruce
Row No = 2
EMP_NO = 45
FIRST_NAME = Ashok
LAST_NAME = Ramanathan
PHONE_EXT = 209
HIRE_DATE = 01/8/1991
DEPT_NO = 621
JOB_CODE = Eng
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 80689.5
FULL_NAME = Ramanathan, Ashok
Row No = 3
EMP_NO = 83
FIRST_NAME = Dana
LAST_NAME = Bishop
PHONE_EXT = 290
HIRE_DATE = 01/6/1992
DEPT_NO = 621
JOB_CODE = Eng
JOB_GRADE = 3
JOB_COUNTRY = USA
SALARY = 62550
FULL_NAME = Bishop, Dana
Row No = 4
EMP_NO = 138
FIRST_NAME = T.J.
LAST_NAME = Green
PHONE_EXT = 218
HIRE_DATE = 01/11/1993
DEPT_NO = 621
JOB_CODE = Eng
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 36000
FULL_NAME = Green, T.J.
Rows printed = 4
Update Row with Computed Field
EMP_NO = 138
FIRST_NAME = Boris
LAST_NAME = Green
PHONE_EXT = 218
HIRE_DATE = 01/11/1993
DEPT_NO = 621
JOB_CODE = Eng
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 36000
FULL_NAME = Green, Boris
------------------------------------------------------
Running Test 17: TIBDataset Tests
Creating Database from resources/Test17.sql
Create Table IBDataSetTest (
KeyField Integer not null,
PlainText VarChar(128),
TextAndKey Computed By (KeyField || ': ' || PlainText),
ServerSideText VarChar(256),
Primary Key (KeyField)
);
Create Generator AGenerator;
Create Trigger BeforeInsertTest for IBDataSetTest
Before Insert or Update
As
Begin
new.ServerSideText = new.KeyField || ' - ' || new.PlainText;
End
FIBDataSet1: Simple Append
KEYFIELD = 1
PLAINTEXT = This is a test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 1: This is a test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 1 - This is a test (Charset = UTF8 Codepage = 65001)
After Refresh
KEYFIELD = 1
PLAINTEXT = This is a test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 1: This is a test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 1 - This is a test (Charset = UTF8 Codepage = 65001)
Append and Update
KEYFIELD = 2
PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 2: This is another test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 2 - This is another test (Charset = UTF8 Codepage = 65001)
KEYFIELD = 2
PLAINTEXT = This is the update test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 2: This is the update test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 2 - This is the update test (Charset = UTF8 Codepage = 65001)
Show whole Dataset
Row No = 1
KEYFIELD = 1
PLAINTEXT = This is a test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 1: This is a test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 1 - This is a test (Charset = UTF8 Codepage = 65001)
Row No = 2
KEYFIELD = 2
PLAINTEXT = This is the update test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 2: This is the update test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 2 - This is the update test (Charset = UTF8 Codepage = 65001)
Rows printed = 2
Now delete the first row
Row No = 1
KEYFIELD = 2
PLAINTEXT = This is the update test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 2: This is the update test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 2 - This is the update test (Charset = UTF8 Codepage = 65001)
Rows printed = 1
On Post KeyField Assignment
KEYFIELD = NULL
PLAINTEXT = On Post KeyField test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = NULL
SERVERSIDETEXT = NULL
Row data after post
KEYFIELD = 3
PLAINTEXT = On Post KeyField test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 3: On Post KeyField test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 3 - On Post KeyField test (Charset = UTF8 Codepage = 65001)
Catch a Post Error - duplicate key
Post Error Called: Engine Code: 335544665
violation of PRIMARY or UNIQUE KEY constraint "INTEG_2" on table "IBDATASETTEST"
Exception handled: Engine Code: 335544665
violation of PRIMARY or UNIQUE KEY constraint "INTEG_2" on table "IBDATASETTEST"
FIBDataSet1: Simple Append with automatic posting on close
Row No = 1
KEYFIELD = 5
PLAINTEXT = This is a test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 5: This is a test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 5 - This is a test (Charset = UTF8 Codepage = 65001)
Rows printed = 1
FIBDataSet1: Simple Append with discard on close
Dataset Empty
Rows printed = 0
Unidirectional editing
FIBDataSet1: Simple Append - unidirectional
BOF = FALSE, EOF = FALSE
KEYFIELD = 7
PLAINTEXT = This is a test - unidirectional (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = NULL
SERVERSIDETEXT = NULL
BOF = FALSE, EOF = FALSE
KEYFIELD = 7
PLAINTEXT = This is a test - unidirectional (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 7: This is a test - unidirectional (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 7 - This is a test - unidirectional (Charset = UTF8 Codepage = 65001)
After Refresh - unidirectional
KEYFIELD = 7
PLAINTEXT = This is a test - unidirectional (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 7: This is a test - unidirectional (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 7 - This is a test - unidirectional (Charset = UTF8 Codepage = 65001)
Record Count = 1
Insert and Update
KEYFIELD = 8
PLAINTEXT = This is another test - unidirectional (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 8: This is another test - unidirectional (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 8 - This is another test - unidirectional (Charset = UTF8 Codepage = 65001)
KEYFIELD = 8
PLAINTEXT = This is the update test - unidirectional (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 8: This is the update test - unidirectional (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 8 - This is the update test - unidirectional (Charset = UTF8 Codepage = 65001)
Now delete the first row - unidirectional with Record Count = 2
Show Current Row
KEYFIELD = 8
PLAINTEXT = This is the update test - unidirectional (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 8: This is the update test - unidirectional (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 8 - This is the update test - unidirectional (Charset = UTF8 Codepage = 65001)
Record Count = 1
Ensure dataset saved to database
Row No = 1
KEYFIELD = 8
PLAINTEXT = This is the update test - unidirectional (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 8: This is the update test - unidirectional (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 8 - This is the update test - unidirectional (Charset = UTF8 Codepage = 65001)
Rows printed = 1
==================================
Dataset Event BeforeOpen: State = dsInactive
Dataset Event AfterOpen: State = dsBrowse
FIBDataSet2: Simple Append
Dataset Event BeforeInsert: State = dsBrowse
Dataset Event BeforeScroll: State = dsBrowse
Dataset Event AfterInsert: State = dsInsert
Dataset Event AfterScroll: State = dsInsert
Dataset Event BeforePost: State = dsInsert
Dataset Event AfterPost: State = dsBrowse
KEYFIELD = 9
PLAINTEXT = This is a test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 9: This is a test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = NULL
Dataset Event BeforeRefresh: State = dsBrowse
Dataset Event BeforeScroll: State = dsBrowse
Dataset Event AfterScroll: State = dsBrowse
Dataset Event BeforeScroll: State = dsBrowse
Dataset Event AfterScroll: State = dsBrowse
Dataset Event AfterRefresh: State = dsBrowse
After Refresh
KEYFIELD = 9
PLAINTEXT = This is a test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 9: This is a test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 9 - This is a test (Charset = UTF8 Codepage = 65001)
Append and Update
Dataset Event BeforeInsert: State = dsBrowse
Dataset Event BeforeScroll: State = dsBrowse
Dataset Event AfterInsert: State = dsInsert
Dataset Event AfterScroll: State = dsInsert
Dataset Event BeforePost: State = dsInsert
Dataset Event AfterPost: State = dsBrowse
KEYFIELD = 10
PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 10: This is another test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = NULL
Dataset Event BeforeEdit: State = dsBrowse
Dataset Event AfterEdit: State = dsEdit
Dataset Event BeforePost: State = dsEdit
Dataset Event AfterPost: State = dsBrowse
KEYFIELD = 10
PLAINTEXT = This is the update test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 10: This is the update test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 10 - This is the update test (Charset = UTF8 Codepage = 65001)
Now delete the first row
Dataset Event BeforeScroll: State = dsBrowse
Dataset Event AfterScroll: State = dsBrowse
Row No = 1
KEYFIELD = 9
PLAINTEXT = This is a test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 9: This is a test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 9 - This is a test (Charset = UTF8 Codepage = 65001)
Dataset Event BeforeScroll: State = dsBrowse
Dataset Event AfterScroll: State = dsBrowse
Row No = 2
KEYFIELD = 10
PLAINTEXT = This is the update test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 10: This is the update test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 10 - This is the update test (Charset = UTF8 Codepage = 65001)
Dataset Event BeforeScroll: State = dsBrowse
Dataset Event AfterScroll: State = dsBrowse
Rows printed = 2
Dataset Event BeforeScroll: State = dsBrowse
Dataset Event AfterScroll: State = dsBrowse
Dataset Event BeforeDelete: State = dsBrowse
Dataset Event BeforeScroll: State = dsBrowse
Delete Returning
KEYFIELD = 9
Dataset Event AfterDelete: State = dsBrowse
Dataset Event AfterScroll: State = dsBrowse
Dataset Event BeforeScroll: State = dsBrowse
Dataset Event AfterScroll: State = dsBrowse
Row No = 1
KEYFIELD = 10
PLAINTEXT = This is the update test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 10: This is the update test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 10 - This is the update test (Charset = UTF8 Codepage = 65001)
Dataset Event BeforeScroll: State = dsBrowse
Dataset Event AfterScroll: State = dsBrowse
Rows printed = 1
Validate Post OK
Dataset Event BeforeInsert: State = dsBrowse
Dataset Event BeforeScroll: State = dsBrowse
Dataset Event AfterInsert: State = dsInsert
Dataset Event AfterScroll: State = dsInsert
Validate Post OK called
Dataset Event BeforePost: State = dsInsert
Dataset Event AfterPost: State = dsBrowse
KEYFIELD = 11
PLAINTEXT = This is a validated Post (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 11: This is a validated Post (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = NULL
Validate Post Cancel
Dataset Event BeforeInsert: State = dsBrowse
Dataset Event BeforeScroll: State = dsBrowse
Dataset Event AfterInsert: State = dsInsert
Dataset Event AfterScroll: State = dsInsert
Validate Post Cancel called
Dataset Event BeforeCancel: State = dsInsert
Dataset Event AfterCancel: State = dsBrowse
KEYFIELD = 11
PLAINTEXT = This is a validated Post (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 11: This is a validated Post (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = NULL
FIBDataSet2: Simple Append with Forced Refresh
Dataset Event BeforeInsert: State = dsBrowse
Dataset Event BeforeScroll: State = dsBrowse
Dataset Event AfterInsert: State = dsInsert
Dataset Event AfterScroll: State = dsInsert
Dataset Event BeforePost: State = dsInsert
Dataset Event AfterPost: State = dsBrowse
KEYFIELD = 12
PLAINTEXT = This is a test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 12: This is a test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 12 - This is a test (Charset = UTF8 Codepage = 65001)
Dataset Event BeforeClose: State = dsBrowse
Dataset Event AfterClose: State = dsInactive
----------------------------------------------
FIBDataSet1: Insert at start
Row No = 1
KEYFIELD = 15
PLAINTEXT = This is an insert test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 15: This is an insert test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 15 - This is an insert test (Charset = UTF8 Codepage = 65001)
Row No = 2
KEYFIELD = 13
PLAINTEXT = Row 1 (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 13: Row 1 (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 13 - Row 1 (Charset = UTF8 Codepage = 65001)
Row No = 3
KEYFIELD = 14
PLAINTEXT = Row 2 (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 14: Row 2 (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 14 - Row 2 (Charset = UTF8 Codepage = 65001)
Rows printed = 3
Delete inserted row
Row No = 1
KEYFIELD = 13
PLAINTEXT = Row 1 (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 13: Row 1 (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 13 - Row 1 (Charset = UTF8 Codepage = 65001)
Row No = 2
KEYFIELD = 14
PLAINTEXT = Row 2 (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 14: Row 2 (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 14 - Row 2 (Charset = UTF8 Codepage = 65001)
Rows printed = 2
Repeat
Row No = 1
KEYFIELD = 16
PLAINTEXT = This is an insert test #1 (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 16: This is an insert test #1 (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 16 - This is an insert test #1 (Charset = UTF8 Codepage = 65001)
Row No = 2
KEYFIELD = 13
PLAINTEXT = Row 1 (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 13: Row 1 (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 13 - Row 1 (Charset = UTF8 Codepage = 65001)
Row No = 3
KEYFIELD = 14
PLAINTEXT = Row 2 (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 14: Row 2 (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 14 - Row 2 (Charset = UTF8 Codepage = 65001)
Rows printed = 3
Delete inserted row
Row No = 1
KEYFIELD = 13
PLAINTEXT = Row 1 (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 13: Row 1 (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 13 - Row 1 (Charset = UTF8 Codepage = 65001)
Row No = 2
KEYFIELD = 14
PLAINTEXT = Row 2 (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 14: Row 2 (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 14 - Row 2 (Charset = UTF8 Codepage = 65001)
Rows printed = 2
Row No = 1
KEYFIELD = 13
PLAINTEXT = Row 1 (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 13: Row 1 (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 13 - Row 1 (Charset = UTF8 Codepage = 65001)
Row No = 2
KEYFIELD = 17
PLAINTEXT = This is an insert test #2 (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 17: This is an insert test #2 (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 17 - This is an insert test #2 (Charset = UTF8 Codepage = 65001)
Row No = 3
KEYFIELD = 14
PLAINTEXT = Row 2 (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 14: Row 2 (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 14 - Row 2 (Charset = UTF8 Codepage = 65001)
Rows printed = 3
Delete inserted row
Row No = 1
KEYFIELD = 13
PLAINTEXT = Row 1 (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 13: Row 1 (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 13 - Row 1 (Charset = UTF8 Codepage = 65001)
Row No = 2
KEYFIELD = 14
PLAINTEXT = Row 2 (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 14: Row 2 (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 14 - Row 2 (Charset = UTF8 Codepage = 65001)
Rows printed = 2
Row No = 1
KEYFIELD = 13
PLAINTEXT = Row 1 (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 13: Row 1 (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 13 - Row 1 (Charset = UTF8 Codepage = 65001)
Row No = 2
KEYFIELD = 18
PLAINTEXT = This is an insert test #3 (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 18: This is an insert test #3 (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 18 - This is an insert test #3 (Charset = UTF8 Codepage = 65001)
Row No = 3
KEYFIELD = 14
PLAINTEXT = Row 2 (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 14: Row 2 (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 14 - Row 2 (Charset = UTF8 Codepage = 65001)
Rows printed = 3
Delete inserted row
Row No = 1
KEYFIELD = 13
PLAINTEXT = Row 1 (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 13: Row 1 (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 13 - Row 1 (Charset = UTF8 Codepage = 65001)
Row No = 2
KEYFIELD = 14
PLAINTEXT = Row 2 (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 14: Row 2 (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 14 - Row 2 (Charset = UTF8 Codepage = 65001)
Rows printed = 2
------------------------------------------------------
Running Test 18: Cached Updates
Creating Database from resources/Test18.sql
Create Table IBDataSetTest (
KeyField Integer not null,
PlainText VarChar(128),
TextAndKey Computed By (KeyField || ': ' || PlainText),
ServerSideText VarChar(256),
Primary Key (KeyField)
);
Create Generator AGenerator;
Create Trigger BeforeInsertTest for IBDataSetTest
Before Insert or Update
As
Begin
new.ServerSideText = new.KeyField || ' - ' || new.PlainText;
End
Print Dataset for IBTestData
Dataset Empty
Rows printed = 0
Unidirectional caching = FALSE
Simple Append i.e. caching of inserted records and cancel
Print Dataset for IBTestData
Row No = 1
KEYFIELD = 1
PLAINTEXT = This is a test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = NULL
SERVERSIDETEXT = NULL
Row No = 2
KEYFIELD = 2
PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = NULL
SERVERSIDETEXT = NULL
Rows printed = 2
Cancel Updates
Print Dataset for IBTestData
Dataset Empty
Rows printed = 0
Now reopen and show empty
Print Dataset for IBTestData
Dataset Empty
Rows printed = 0
Simple Append i.e. caching of inserted records and apply updates
Print Dataset for IBTestData
Row No = 1
KEYFIELD = 3
PLAINTEXT = This is a test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = NULL
SERVERSIDETEXT = NULL
Row No = 2
KEYFIELD = 4
PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = NULL
SERVERSIDETEXT = NULL
Row No = 3
KEYFIELD = 5
PLAINTEXT = And another (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = NULL
SERVERSIDETEXT = NULL
Rows printed = 3
Apply Updates
Update Record Called for ukInsert
KEYFIELD = 3
PLAINTEXT = This is a test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = NULL
SERVERSIDETEXT = NULL
Update Record Called for ukInsert
KEYFIELD = 4
PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = NULL
SERVERSIDETEXT = NULL
Update Record Called for ukInsert
KEYFIELD = 5
PLAINTEXT = And another (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = NULL
SERVERSIDETEXT = NULL
Print Dataset for IBTestData
Row No = 1
KEYFIELD = 3
PLAINTEXT = This is a test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 3: This is a test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 3 - This is a test (Charset = UTF8 Codepage = 65001)
Row No = 2
KEYFIELD = 4
PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 4: This is another test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 4 - This is another test (Charset = UTF8 Codepage = 65001)
Row No = 3
KEYFIELD = 5
PLAINTEXT = And another (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 5: And another (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 5 - And another (Charset = UTF8 Codepage = 65001)
Rows printed = 3
Now reopen and show still there
Print Dataset for IBTestData
Row No = 1
KEYFIELD = 3
PLAINTEXT = This is a test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 3: This is a test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 3 - This is a test (Charset = UTF8 Codepage = 65001)
Row No = 2
KEYFIELD = 4
PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 4: This is another test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 4 - This is another test (Charset = UTF8 Codepage = 65001)
Row No = 3
KEYFIELD = 5
PLAINTEXT = And another (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 5: And another (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 5 - And another (Charset = UTF8 Codepage = 65001)
Rows printed = 3
Update of First and Last records and cancel
Print Dataset for IBTestData
Row No = 1
KEYFIELD = 3
PLAINTEXT = This is an updated test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 3: This is a test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 3 - This is a test (Charset = UTF8 Codepage = 65001)
Row No = 2
KEYFIELD = 4
PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 4: This is another test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 4 - This is another test (Charset = UTF8 Codepage = 65001)
Row No = 3
KEYFIELD = 5
PLAINTEXT = This is another updated test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 5: And another (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 5 - And another (Charset = UTF8 Codepage = 65001)
Rows printed = 3
Cancel Updates
Print Dataset for IBTestData
Row No = 1
KEYFIELD = 3
PLAINTEXT = This is a test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 3: This is a test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 3 - This is a test (Charset = UTF8 Codepage = 65001)
Row No = 2
KEYFIELD = 4
PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 4: This is another test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 4 - This is another test (Charset = UTF8 Codepage = 65001)
Row No = 3
KEYFIELD = 5
PLAINTEXT = And another (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 5: And another (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 5 - And another (Charset = UTF8 Codepage = 65001)
Rows printed = 3
Now reopen and show no change
Print Dataset for IBTestData
Row No = 1
KEYFIELD = 3
PLAINTEXT = This is a test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 3: This is a test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 3 - This is a test (Charset = UTF8 Codepage = 65001)
Row No = 2
KEYFIELD = 4
PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 4: This is another test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 4 - This is another test (Charset = UTF8 Codepage = 65001)
Row No = 3
KEYFIELD = 5
PLAINTEXT = And another (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 5: And another (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 5 - And another (Charset = UTF8 Codepage = 65001)
Rows printed = 3
Update of First and Last records and apply
Print Dataset for IBTestData
Row No = 1
KEYFIELD = 3
PLAINTEXT = This is an updated test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 3: This is a test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 3 - This is a test (Charset = UTF8 Codepage = 65001)
Row No = 2
KEYFIELD = 4
PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 4: This is another test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 4 - This is another test (Charset = UTF8 Codepage = 65001)
Row No = 3
KEYFIELD = 5
PLAINTEXT = This is another updated test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 5: And another (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 5 - And another (Charset = UTF8 Codepage = 65001)
Rows printed = 3
Apply Updates
Update Record Called for ukModify
KEYFIELD = 3
PLAINTEXT = This is an updated test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 3: This is a test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 3 - This is a test (Charset = UTF8 Codepage = 65001)
Update Record Called for ukModify
KEYFIELD = 5
PLAINTEXT = This is another updated test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 5: And another (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 5 - And another (Charset = UTF8 Codepage = 65001)
Print Dataset for IBTestData
Row No = 1
KEYFIELD = 3
PLAINTEXT = This is an updated test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 3: This is an updated test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 3 - This is an updated test (Charset = UTF8 Codepage = 65001)
Row No = 2
KEYFIELD = 4
PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 4: This is another test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 4 - This is another test (Charset = UTF8 Codepage = 65001)
Row No = 3
KEYFIELD = 5
PLAINTEXT = This is another updated test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 5: This is another updated test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 5 - This is another updated test (Charset = UTF8 Codepage = 65001)
Rows printed = 3
Now reopen and show still there
Print Dataset for IBTestData
Row No = 1
KEYFIELD = 3
PLAINTEXT = This is an updated test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 3: This is an updated test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 3 - This is an updated test (Charset = UTF8 Codepage = 65001)
Row No = 2
KEYFIELD = 4
PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 4: This is another test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 4 - This is another test (Charset = UTF8 Codepage = 65001)
Row No = 3
KEYFIELD = 5
PLAINTEXT = This is another updated test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 5: This is another updated test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 5 - This is another updated test (Charset = UTF8 Codepage = 65001)
Rows printed = 3
Update of First and Last records and implicitly apply
Update Record Called for ukModify
KEYFIELD = 3
PLAINTEXT = This is an updated test (implicit apply updates) (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 3: This is an updated test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 3 - This is an updated test (Charset = UTF8 Codepage = 65001)
Print Dataset for IBTestData
Row No = 1
KEYFIELD = 3
PLAINTEXT = This is an updated test (implicit apply updates) (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 3: This is an updated test (implicit apply updates) (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 3 - This is an updated test (implicit apply updates) (Charset = UTF8 Codepage = 65001)
Row No = 2
KEYFIELD = 4
PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 4: This is another test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 4 - This is another test (Charset = UTF8 Codepage = 65001)
Row No = 3
KEYFIELD = 5
PLAINTEXT = This is another updated test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 5: This is another updated test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 5 - This is another updated test (Charset = UTF8 Codepage = 65001)
Rows printed = 3
Delete First and Last records and Cancel
Print Dataset for IBTestData
Row No = 1
KEYFIELD = 4
PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 4: This is another test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 4 - This is another test (Charset = UTF8 Codepage = 65001)
Rows printed = 1
Cancel Updates
Print Dataset for IBTestData
Row No = 1
KEYFIELD = 3
PLAINTEXT = This is an updated test (implicit apply updates) (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 3: This is an updated test (implicit apply updates) (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 3 - This is an updated test (implicit apply updates) (Charset = UTF8 Codepage = 65001)
Row No = 2
KEYFIELD = 4
PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 4: This is another test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 4 - This is another test (Charset = UTF8 Codepage = 65001)
Row No = 3
KEYFIELD = 5
PLAINTEXT = This is another updated test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 5: This is another updated test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 5 - This is another updated test (Charset = UTF8 Codepage = 65001)
Rows printed = 3
Now reopen and show no change
Print Dataset for IBTestData
Row No = 1
KEYFIELD = 3
PLAINTEXT = This is an updated test (implicit apply updates) (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 3: This is an updated test (implicit apply updates) (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 3 - This is an updated test (implicit apply updates) (Charset = UTF8 Codepage = 65001)
Row No = 2
KEYFIELD = 4
PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 4: This is another test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 4 - This is another test (Charset = UTF8 Codepage = 65001)
Row No = 3
KEYFIELD = 5
PLAINTEXT = This is another updated test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 5: This is another updated test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 5 - This is another updated test (Charset = UTF8 Codepage = 65001)
Rows printed = 3
Delete First and Last records and Apply
Print Dataset for IBTestData
Row No = 1
KEYFIELD = 4
PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 4: This is another test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 4 - This is another test (Charset = UTF8 Codepage = 65001)
Rows printed = 1
Apply Updates
Update Record Called for ukDelete
KEYFIELD = 3
PLAINTEXT = This is an updated test (implicit apply updates) (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 3: This is an updated test (implicit apply updates) (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 3 - This is an updated test (implicit apply updates) (Charset = UTF8 Codepage = 65001)
Update Record Called for ukDelete
KEYFIELD = 5
PLAINTEXT = This is another updated test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 5: This is another updated test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 5 - This is another updated test (Charset = UTF8 Codepage = 65001)
Print Dataset for IBTestData
Row No = 1
KEYFIELD = 4
PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 4: This is another test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 4 - This is another test (Charset = UTF8 Codepage = 65001)
Rows printed = 1
Now reopen and show no change
Print Dataset for IBTestData
Row No = 1
KEYFIELD = 4
PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 4: This is another test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 4 - This is another test (Charset = UTF8 Codepage = 65001)
Rows printed = 1
Test Error Handling
Print Dataset for IBTestData
Row No = 1
KEYFIELD = 4
PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 4: This is another test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 4 - This is another test (Charset = UTF8 Codepage = 65001)
Row No = 2
KEYFIELD = 4
PLAINTEXT = NULL
TEXTANDKEY = NULL
SERVERSIDETEXT = NULL
Rows printed = 2
Update Record Called for ukInsert
KEYFIELD = 4
PLAINTEXT = NULL
TEXTANDKEY = NULL
SERVERSIDETEXT = NULL
Update Error raised: Engine Code: 335544665
violation of PRIMARY or UNIQUE KEY constraint "INTEG_2" on table "IBDATASETTEST"
Exception caught: User abort
------------------------------------------------------
Running Test 19: TIBDataset Master/Detail Queries
Department Record:
DEPT_NO = 000
DEPARTMENT = Corporate Headquarters
HEAD_DEPT = NULL
MNGR_NO = 105
BUDGET = 1000000
LOCATION = Monterey
PHONE_NO = (408) 555-1234
Employee Records:
Row No = 1
EMP_NO = 12
FIRST_NAME = Terri
LAST_NAME = Lee
PHONE_EXT = 256
HIRE_DATE = 01/5/1990
DEPT_NO = 000
JOB_CODE = Admin
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 53793
FULL_NAME = Lee, Terri
Row No = 2
EMP_NO = 105
FIRST_NAME = Oliver H.
LAST_NAME = Bender
PHONE_EXT = 255
HIRE_DATE = 08/10/1992
DEPT_NO = 000
JOB_CODE = CEO
JOB_GRADE = 1
JOB_COUNTRY = USA
SALARY = 212850
FULL_NAME = Bender, Oliver H.
Rows printed = 2
Advance to next department
Department Record:
DEPT_NO = 100
DEPARTMENT = Sales and Marketing
HEAD_DEPT = 000
MNGR_NO = 85
BUDGET = 2000000
LOCATION = San Francisco
PHONE_NO = (415) 555-1234
Employee Records:
Row No = 1
EMP_NO = 85
FIRST_NAME = Mary S.
LAST_NAME = MacDonald
PHONE_EXT = 477
HIRE_DATE = 01/6/1992
DEPT_NO = 100
JOB_CODE = VP
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 111262.5
FULL_NAME = MacDonald, Mary S.
Row No = 2
EMP_NO = 127
FIRST_NAME = Michael
LAST_NAME = Yanowski
PHONE_EXT = 492
HIRE_DATE = 09/8/1993
DEPT_NO = 100
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 44000
FULL_NAME = Yanowski, Michael
Rows printed = 2
Repeat test with an active master/detail timer
Department Record:
DEPT_NO = 000
DEPARTMENT = Corporate Headquarters
HEAD_DEPT = NULL
MNGR_NO = 105
BUDGET = 1000000
LOCATION = Monterey
PHONE_NO = (408) 555-1234
Employee Records:
Row No = 1
EMP_NO = 12
FIRST_NAME = Terri
LAST_NAME = Lee
PHONE_EXT = 256
HIRE_DATE = 01/5/1990
DEPT_NO = 000
JOB_CODE = Admin
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 53793
FULL_NAME = Lee, Terri
Row No = 2
EMP_NO = 105
FIRST_NAME = Oliver H.
LAST_NAME = Bender
PHONE_EXT = 255
HIRE_DATE = 08/10/1992
DEPT_NO = 000
JOB_CODE = CEO
JOB_GRADE = 1
JOB_COUNTRY = USA
SALARY = 212850
FULL_NAME = Bender, Oliver H.
Rows printed = 2
Advance to next department
Department Record:
DEPT_NO = 100
DEPARTMENT = Sales and Marketing
HEAD_DEPT = 000
MNGR_NO = 85
BUDGET = 2000000
LOCATION = San Francisco
PHONE_NO = (415) 555-1234
Employee Records:
Result - before checksynchronise
Row No = 1
EMP_NO = 12
FIRST_NAME = Terri
LAST_NAME = Lee
PHONE_EXT = 256
HIRE_DATE = 01/5/1990
DEPT_NO = 000
JOB_CODE = Admin
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 53793
FULL_NAME = Lee, Terri
Row No = 2
EMP_NO = 105
FIRST_NAME = Oliver H.
LAST_NAME = Bender
PHONE_EXT = 255
HIRE_DATE = 08/10/1992
DEPT_NO = 000
JOB_CODE = CEO
JOB_GRADE = 1
JOB_COUNTRY = USA
SALARY = 212850
FULL_NAME = Bender, Oliver H.
Rows printed = 2
Result - after checksynchronise
Row No = 1
EMP_NO = 85
FIRST_NAME = Mary S.
LAST_NAME = MacDonald
PHONE_EXT = 477
HIRE_DATE = 01/6/1992
DEPT_NO = 100
JOB_CODE = VP
JOB_GRADE = 2
JOB_COUNTRY = USA
SALARY = 111262.5
FULL_NAME = MacDonald, Mary S.
Row No = 2
EMP_NO = 127
FIRST_NAME = Michael
LAST_NAME = Yanowski
PHONE_EXT = 492
HIRE_DATE = 09/8/1993
DEPT_NO = 100
JOB_CODE = SRep
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 44000
FULL_NAME = Yanowski, Michael
Rows printed = 2
------------------------------------------------------
Running Test 20: TIBUpdateSQL Tests
Creating Database from resources/Test20.sql
Create Table IBDataSetTest (
KeyField Integer not null,
PlainText VarChar(128),
TextAndKey Computed By (KeyField || ': ' || PlainText),
ServerSideText VarChar(256),
Primary Key (KeyField)
);
Create Generator AGenerator;
Create Trigger BeforeInsertTest for IBDataSetTest
Before Insert or Update
As
Begin
new.ServerSideText = new.KeyField || ' - ' || new.PlainText;
End
Simple Append
KEYFIELD = 1
PLAINTEXT = This is a test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 1: This is a test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 1 - This is a test (Charset = UTF8 Codepage = 65001)
After Refresh
KEYFIELD = 1
PLAINTEXT = This is a test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 1: This is a test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 1 - This is a test (Charset = UTF8 Codepage = 65001)
Append and Update
KEYFIELD = 2
PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 2: This is another test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 2 - This is another test (Charset = UTF8 Codepage = 65001)
KEYFIELD = 2
PLAINTEXT = This is the update test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 2: This is the update test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 2 - This is the update test (Charset = UTF8 Codepage = 65001)
Show the whole dataset
Row No = 1
KEYFIELD = 1
PLAINTEXT = This is a test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 1: This is a test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 1 - This is a test (Charset = UTF8 Codepage = 65001)
Row No = 2
KEYFIELD = 2
PLAINTEXT = This is the update test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 2: This is the update test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 2 - This is the update test (Charset = UTF8 Codepage = 65001)
Rows printed = 2
Now delete the first row
Row No = 1
KEYFIELD = 2
PLAINTEXT = This is the update test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 2: This is the update test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 2 - This is the update test (Charset = UTF8 Codepage = 65001)
Rows printed = 1
Show the whole dataset after close/reopen
Row No = 1
KEYFIELD = 2
PLAINTEXT = This is the update test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 2: This is the update test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 2 - This is the update test (Charset = UTF8 Codepage = 65001)
Rows printed = 1
On Post KeyField Assignment
KEYFIELD = NULL
PLAINTEXT = On Post KeyField test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = NULL
SERVERSIDETEXT = NULL
Row data after post
KEYFIELD = 3
PLAINTEXT = On Post KeyField test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 3: On Post KeyField test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 3 - On Post KeyField test (Charset = UTF8 Codepage = 65001)
Repeat with cached updates
Simple Append
KEYFIELD = 4
PLAINTEXT = This is a test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = NULL
SERVERSIDETEXT = NULL
After Refresh
KEYFIELD = 4
PLAINTEXT = This is a test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 4: This is a test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 4 - This is a test (Charset = UTF8 Codepage = 65001)
Append and Update
KEYFIELD = 5
PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = NULL
SERVERSIDETEXT = NULL
KEYFIELD = 5
PLAINTEXT = This is the update test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = NULL
SERVERSIDETEXT = NULL
Show the whole dataset
Row No = 1
KEYFIELD = 4
PLAINTEXT = This is a test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 4: This is a test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 4 - This is a test (Charset = UTF8 Codepage = 65001)
Row No = 2
KEYFIELD = 5
PLAINTEXT = This is the update test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = NULL
SERVERSIDETEXT = NULL
Rows printed = 2
Now delete the first row
Row No = 1
KEYFIELD = 5
PLAINTEXT = This is the update test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = NULL
SERVERSIDETEXT = NULL
Rows printed = 1
close and re-open and print again
Row No = 1
KEYFIELD = 5
PLAINTEXT = This is the update test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 5: This is the update test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 5 - This is the update test (Charset = UTF8 Codepage = 65001)
Rows printed = 1
FIBQuery2: Simple Append
KEYFIELD = 6
PLAINTEXT = This is a test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 6: This is a test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = NULL
FIBQuery2 Refresh
KEYFIELD = 6
PLAINTEXT = This is a test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 6: This is a test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 6 - This is a test (Charset = UTF8 Codepage = 65001)
Append and Update
KEYFIELD = 7
PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 7: This is another test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = NULL
KEYFIELD = 7
PLAINTEXT = This is the update test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 7: This is the update test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 7 - This is the update test (Charset = UTF8 Codepage = 65001)
Show the whole dataset
Row No = 1
KEYFIELD = 6
PLAINTEXT = This is a test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 6: This is a test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 6 - This is a test (Charset = UTF8 Codepage = 65001)
Row No = 2
KEYFIELD = 7
PLAINTEXT = This is the update test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 7: This is the update test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 7 - This is the update test (Charset = UTF8 Codepage = 65001)
Rows printed = 2
Now delete the first row
Delete Returning
KEYFIELD = 6
Dataset after delete
Row No = 1
KEYFIELD = 7
PLAINTEXT = This is the update test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 7: This is the update test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 7 - This is the update test (Charset = UTF8 Codepage = 65001)
Rows printed = 1
FIBQuery3: Simple Append - test refresh on insert
KEYFIELD = 8
PLAINTEXT = This is a test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 8: This is a test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 8 - This is a test (Charset = UTF8 Codepage = 65001)
KEYFIELD = 8
PLAINTEXT = This is the update test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 8: This is the update test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 8 - This is the update test (Charset = UTF8 Codepage = 65001)
close and re-open and print again
Row No = 1
KEYFIELD = 8
PLAINTEXT = This is the update test (Charset = UTF8 Codepage = 65001)
TEXTANDKEY = 8: This is the update test (Charset = UTF8 Codepage = 65001)
SERVERSIDETEXT = 8 - This is the update test (Charset = UTF8 Codepage = 65001)
Rows printed = 1
------------------------------------------------------
Running Test 21: Big dataset test
Creating Database from resources/Test21.sql
Create Table LotsOfData (
RowID integer not null,
theDate TimeStamp,
MyText VarChar(1024),
Primary Key (RowID)
);
Loading data into database table. Started at 17/6/2023 15:05:03.011
Data load completed at 17/6/2023 15:06:06.000 Elapsed Time = 62989 ms, 100000 records loaded
Message Hash = 5ce3dbe19c54dea66dbc5225e34885be
Database Read started at 17/6/2023 15:06:06.006
Read Dataset completed at 17/6/2023 15:06:11.050 Elapsed Time = 5044 ms, 100000 records read
Message Hash = 5ce3dbe19c54dea66dbc5225e34885be
Test Completed successfully
17/6/2023 15:06:11.050 Test 21 passes as long as the checksums are identical
------------------------------------------------------
Skipping Test 22: TIBUpdate Tests
Skipping 22
------------------------------------------------------
Running Test 23: Transliteration Tests
Creating Database from resources/Test23.sql
CREATE TABLE TESTDATA (ROWID INTEGER NOT NULL,
TITLE VARCHAR(32),
NOTES VARCHAR(64) CHARACTER SET ISO8859_1,
BLOBDATA BLOB SUB_TYPE TEXT SEGMENT SIZE 80 CHARACTER SET WIN1252,
INCLEAR VARCHAR(16) CHARACTER SET NONE,
PRIMARY KEY (ROWID));
Default Character Set = UTF8
ROWID = 1
TITLE = Blob Test ©€ (Charset Id = 4 Codepage = 65001)
NOTES = Écoute moi (Charset Id = 4 Codepage = 65001)
BLOBDATA (Charset Id = 4 Codepage = 65001)
Some German Special Characters like ÖÄÜöäüß
INCLEAR = Test
Ã
Default Character Set = WIN1252
ROWID = 1
TITLE = Blob Test ©€ (Charset Id = 53 Codepage = 1252)
NOTES = Écoute moi (Charset Id = 53 Codepage = 1252)
BLOBDATA (Charset Id = 53 Codepage = 1252)
Some German Special Characters like ÖÄÜöäüß
INCLEAR = Test
Ã
Default Character Set = NONE
ROWID = 1
TITLE = Blob Test ©€ (Charset Id = 4 Codepage = 65001)
NOTES = Écoute moi (Charset Id = 21 Codepage = 28591)
BLOBDATA (Charset Id = 53 Codepage = 1252)
Some German Special Characters like ÖÄÜöäüß
INCLEAR = Test
Ã
Default Character Set = UTF8
ROWID = 1
TITLE = Blob Test ©€ (Charset Id = 4 Codepage = 65001)
NOTES = Écoute moi (Charset Id = 4 Codepage = 65001)
BLOBDATA (Charset Id = 4 Codepage = 65001)
Some German Special Characters like ÖÄÜöäüß
INCLEAR = Test
Ã
Default Character Set = WIN1252
ROWID = 1
TITLE = 42 6C 6F 62 20 54 65 73 74 20 A9 80 (Charset Id = 53 Codepage = 1252)
NOTES = C9 63 6F 75 74 65 20 6D 6F 69 (Charset Id = 53 Codepage = 1252)
BLOBDATA = 53 6F 6D 65 20 47 65 72 6D 61 6E 20 53 70 65 63 69 61 6C 20 43 68 61 72 61 63 74 65 72 73 20 6C 69 6B 65 20 D6 C4 DC F6 E4 FC DF (Charset Id = 53 Codepage = 1252)
INCLEAR = 1 54 65 73 74 D C3 (Charset Id = 0 Codepage = 0)
Default Character Set = NONE
ROWID = 1
TITLE = 42 6C 6F 62 20 54 65 73 74 20 C2 A9 E2 82 AC (Charset Id = 4 Codepage = 65001)
NOTES = C9 63 6F 75 74 65 20 6D 6F 69 (Charset Id = 21 Codepage = 28591)
BLOBDATA = 53 6F 6D 65 20 47 65 72 6D 61 6E 20 53 70 65 63 69 61 6C 20 43 68 61 72 61 63 74 65 72 73 20 6C 69 6B 65 20 D6 C4 DC F6 E4 FC DF (Charset Id = 53 Codepage = 1252)
INCLEAR = 1 54 65 73 74 D C3 (Charset Id = 0 Codepage = 0)
Default Character Set = UTF8
ROWID = 1
TITLE = 42 6C 6F 62 20 54 65 73 74 20 C2 A9 E2 82 AC (Charset Id = 4 Codepage = 65001)
NOTES = C3 89 63 6F 75 74 65 20 6D 6F 69 (Charset Id = 4 Codepage = 65001)
BLOBDATA = 53 6F 6D 65 20 47 65 72 6D 61 6E 20 53 70 65 63 69 61 6C 20 43 68 61 72 61 63 74 65 72 73 20 6C 69 6B 65 20 C3 96 C3 84 C3 9C C3 B6 C3 A4 C3 BC C3 9F (Charset Id = 4 Codepage = 65001)
INCLEAR = 1 54 65 73 74 D C3 (Charset Id = 0 Codepage = 0)
------------------------------------------------------
Running Test 24: IB Parser Tests
Test String 0
---------------------------------------------------
Select distinct A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE, 2.2, 2..30 A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH
From EMPLOYEE A
JOIN Depts D On D.DEPT_NO = A.DEPT_NO;
---------------------------------------------------
Select: distinct A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE, 2.2, 2..30 A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH
From: EMPLOYEE A
JOIN Depts D On D.DEPT_NO = A.DEPT_NO
Where:
Group By:
Having:
Order by:
Plan:
Rows:
SQL: SELECT distinct A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE, 2.2, 2..30 A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH
FROM EMPLOYEE A
JOIN Depts D On D.DEPT_NO = A.DEPT_NO
Params:
Updated SQL
SELECT distinct A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE, 2.2, 2..30 A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH
FROM EMPLOYEE A
JOIN Depts D On D.DEPT_NO = A.DEPT_NO
Test String 1
---------------------------------------------------
with recursive Depts As (Select DEPT_NO, DEPARTMENT, "HEAD_DEPT", cast(DEPARTMENT as VarChar(256)) as DEPT_PATH /* test */,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH
From DEPARTMENT Where HEAD_DEPT is NULL
UNION ALL
Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D
JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO
)--ignore
Select distinct A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE, 2.2, 2..30 A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH
From EMPLOYEE A
JOIN Depts D On D.DEPT_NO = A.DEPT_NO
---------------------------------------------------
CTE0 recursive: Depts as (Select DEPT_NO, DEPARTMENT, "HEAD_DEPT", cast(DEPARTMENT as VarChar(256)) as DEPT_PATH ,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH
From DEPARTMENT Where HEAD_DEPT is NULL
UNION ALL
Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D
JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO
)
Select: distinct A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE, 2.2, 2..30 A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH
From: EMPLOYEE A
JOIN Depts D On D.DEPT_NO = A.DEPT_NO
Where:
Group By:
Having:
Order by:
Plan:
Rows:
SQL: WITH RECURSIVE Depts AS (Select DEPT_NO, DEPARTMENT, "HEAD_DEPT", cast(DEPARTMENT as VarChar(256)) as DEPT_PATH ,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH
From DEPARTMENT Where HEAD_DEPT is NULL
UNION ALL
Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D
JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO
)
SELECT distinct A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE, 2.2, 2..30 A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH
FROM EMPLOYEE A
JOIN Depts D On D.DEPT_NO = A.DEPT_NO
Params:
Updated SQL
WITH RECURSIVE Depts AS (Select DEPT_NO, DEPARTMENT, "HEAD_DEPT", cast(DEPARTMENT as VarChar(256)) as DEPT_PATH ,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH
From DEPARTMENT Where HEAD_DEPT is NULL
UNION ALL
Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D
JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO
)
SELECT distinct A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE, 2.2, 2..30 A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH
FROM EMPLOYEE A
JOIN Depts D On D.DEPT_NO = A.DEPT_NO
Test String 2
---------------------------------------------------
Update EMPLOYEE A Set
A.DEPT_NO = :DEPT_NO,
A.FIRST_NAME = 'Mr/Ms ' || :FIRST_NAME,
A.HIRE_DATE = :HIRE_DATE,
A.JOB_CODE = :JOB_CODE,
A.JOB_COUNTRY = :JOB_COUNTRY,
A.JOB_GRADE = :JOB_GRADE,
A.LAST_NAME = :LAST_NAME,
A.PHONE_EXT = :PHONE_EXT,
A.SALARY = :SALARY Where A.EMP_NO = :OLD_EMP_NO;
---------------------------------------------------
Not a Select Statement
Test String 3
---------------------------------------------------
INSERT INTO EMPLOYEE (EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE,DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY /* what's this */) VALUES (:EMP_NO, :FIRST_NAME, :LAST_NAME, :PHONE_EXT, :HIRE_DATE, //end comment
:DEPT_NO, :"JOB""CODE", 'Tester''s way''''', :JOB_COUNTRY, :"$SALARY")
---------------------------------------------------
Not a Select Statement
Test String 4
---------------------------------------------------
Select * from EMPLOYEE Where EMP_NO = :EMP_NO
---------------------------------------------------
Select: *
From: EMPLOYEE
Where: EMP_NO = :EMP_NO
Group By:
Having:
Order by:
Plan:
Rows:
SQL: SELECT *
FROM EMPLOYEE
WHERE EMP_NO = :EMP_NO
Params:
EMP_NO,
Updated SQL
SELECT *
FROM EMPLOYEE
WHERE (EMP_NO = :EMP_NO) AND (JOB_CODE = 2)
Test String 5
---------------------------------------------------
Select DEPT_NO, DEPARTMENT, "HEAD_DEPT", cast(DEPARTMENT as VarChar(256)) as DEPT_PATH /* test */,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH
From DEPARTMENT Where HEAD_DEPT is NULL
UNION ALL
Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D
JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO
---------------------------------------------------
Select: DEPT_NO, DEPARTMENT, "HEAD_DEPT", cast(DEPARTMENT as VarChar(256)) as DEPT_PATH ,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH
From: DEPARTMENT
Where: HEAD_DEPT is NULL
Group By:
Having:
Union All
Select: D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH
From: DEPARTMENT D
JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO
Where:
Group By:
Having:
Order by:
Plan:
Rows:
SQL: SELECT D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH
FROM DEPARTMENT D
JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO
Params:
Order by:
Plan:
Rows:
SQL: SELECT DEPT_NO, DEPARTMENT, "HEAD_DEPT", cast(DEPARTMENT as VarChar(256)) as DEPT_PATH ,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH
FROM DEPARTMENT
WHERE HEAD_DEPT is NULL
UNION ALL
SELECT D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH
FROM DEPARTMENT D
JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO
Params:
Updated SQL
SELECT DEPT_NO, DEPARTMENT, "HEAD_DEPT", cast(DEPARTMENT as VarChar(256)) as DEPT_PATH ,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH
FROM DEPARTMENT
WHERE HEAD_DEPT is NULL
UNION ALL
SELECT D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH
FROM DEPARTMENT D
JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO
ORDER BY 1
Test String 6
---------------------------------------------------
Select DEPT_NO, DEPARTMENT, "HEAD_DEPT", cast(DEPARTMENT as VarChar(256)) as DEPT_PATH /* test */,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH
From DEPARTMENT Where HEAD_DEPT is NULL
UNION ALL
Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D
JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO Order by 1,2
---------------------------------------------------
Select: DEPT_NO, DEPARTMENT, "HEAD_DEPT", cast(DEPARTMENT as VarChar(256)) as DEPT_PATH ,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH
From: DEPARTMENT
Where: HEAD_DEPT is NULL
Group By:
Having:
Union All
Select: D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH
From: DEPARTMENT D
JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO
Where:
Group By:
Having:
Order by:
Plan:
Rows:
SQL: SELECT D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH
FROM DEPARTMENT D
JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO
Params:
Order by: 1,2
Plan:
Rows:
SQL: SELECT DEPT_NO, DEPARTMENT, "HEAD_DEPT", cast(DEPARTMENT as VarChar(256)) as DEPT_PATH ,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH
FROM DEPARTMENT
WHERE HEAD_DEPT is NULL
UNION ALL
SELECT D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH
FROM DEPARTMENT D
JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO
ORDER BY 1,2
Params:
Updated SQL
SELECT DEPT_NO, DEPARTMENT, "HEAD_DEPT", cast(DEPARTMENT as VarChar(256)) as DEPT_PATH ,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH
FROM DEPARTMENT
WHERE HEAD_DEPT is NULL
UNION ALL
SELECT D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH
FROM DEPARTMENT D
JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO
ORDER BY 1,2
Test String 7
---------------------------------------------------
with test1 as (Select * from Employee), test2 as (Select Emp_no, 'A test' from Employee) Select * from test1
---------------------------------------------------
CTE0: test1 as (Select * from Employee)
CTE1: test2 as (Select Emp_no, 'A test' from Employee)
Select: *
From: test1
Where:
Group By:
Having:
Order by:
Plan:
Rows:
SQL: WITH test1 AS (Select * from Employee),
test2 AS (Select Emp_no, 'A test' from Employee)
SELECT *
FROM test1
Params:
Updated SQL
WITH test1 AS (Select * from Employee),
test2 AS (Select Emp_no, 'A test' from Employee)
SELECT *
FROM test1
Test String 8
---------------------------------------------------
with recursive Account_Types_List As(
Select ACCOUNTTYPE_ID, PARENT, ACCOUNTTYPENAME,
ACCOUNTTYPENAME as SortName, '' as INDENT
From MYLB_ACCOUNTTYPES
Where PARENT is Null
UNION ALL
Select A.ACCOUNTTYPE_ID, A.PARENT, A.ACCOUNTTYPENAME,
L.SortName || A.ACCOUNTTYPENAME as SortName, L.INDENT || ' ' as INDENT
From MYLB_ACCOUNTTYPES A
Join Account_Types_List L On A.PARENT = L.ACCOUNTTYPE_ID)
Select ACCOUNTTYPE_ID, PARENT, INDENT || ACCOUNTTYPENAME as Name
From Account_Types_List
Order by SortName
---------------------------------------------------
CTE0 recursive: Account_Types_List as (
Select ACCOUNTTYPE_ID, PARENT, ACCOUNTTYPENAME,
ACCOUNTTYPENAME as SortName, '' as INDENT
From MYLB_ACCOUNTTYPES
Where PARENT is Null
UNION ALL
Select A.ACCOUNTTYPE_ID, A.PARENT, A.ACCOUNTTYPENAME,
L.SortName || A.ACCOUNTTYPENAME as SortName, L.INDENT || ' ' as INDENT
From MYLB_ACCOUNTTYPES A
Join Account_Types_List L On A.PARENT = L.ACCOUNTTYPE_ID)
Select: ACCOUNTTYPE_ID, PARENT, INDENT || ACCOUNTTYPENAME as Name
From: Account_Types_List
Where:
Group By:
Having:
Order by: SortName
Plan:
Rows:
SQL: WITH RECURSIVE Account_Types_List AS (
Select ACCOUNTTYPE_ID, PARENT, ACCOUNTTYPENAME,
ACCOUNTTYPENAME as SortName, '' as INDENT
From MYLB_ACCOUNTTYPES
Where PARENT is Null
UNION ALL
Select A.ACCOUNTTYPE_ID, A.PARENT, A.ACCOUNTTYPENAME,
L.SortName || A.ACCOUNTTYPENAME as SortName, L.INDENT || ' ' as INDENT
From MYLB_ACCOUNTTYPES A
Join Account_Types_List L On A.PARENT = L.ACCOUNTTYPE_ID)
SELECT ACCOUNTTYPE_ID, PARENT, INDENT || ACCOUNTTYPENAME as Name
FROM Account_Types_List
ORDER BY SortName
Params:
Updated SQL
WITH RECURSIVE Account_Types_List AS (
Select ACCOUNTTYPE_ID, PARENT, ACCOUNTTYPENAME,
ACCOUNTTYPENAME as SortName, '' as INDENT
From MYLB_ACCOUNTTYPES
Where PARENT is Null
UNION ALL
Select A.ACCOUNTTYPE_ID, A.PARENT, A.ACCOUNTTYPENAME,
L.SortName || A.ACCOUNTTYPENAME as SortName, L.INDENT || ' ' as INDENT
From MYLB_ACCOUNTTYPES A
Join Account_Types_List L On A.PARENT = L.ACCOUNTTYPE_ID)
SELECT ACCOUNTTYPE_ID, PARENT, INDENT || ACCOUNTTYPENAME as Name
FROM Account_Types_List
ORDER BY SortName
Test String 9
---------------------------------------------------
SELECT r.RDB$DB_KEY, cast('Local' as VarChar(6)) as MAPTYPE, r.RDB$MAP_NAME,
Case
When r.RDB$MAP_USING = 'P' and r.RDB$MAP_PLUGIN is not null then cast ('Plugin ' || r.RDB$MAP_PLUGIN as VarChar(20))
When r.RDB$MAP_USING = 'P' and r.RDB$MAP_PLUGIN is null then 'Any Plugin'
When r.RDB$MAP_USING = 'S' then 'Any Plugin Serverwide'
When r.RDB$MAP_USING = 'M' then 'Mapping'
When r.RDB$MAP_USING = '*' then '*'
else
'Using ' || r.RDB$MAP_USING || ',' || coalesce(r.RDB$MAP_PLUGIN,'') End as MAP_USING,
r.RDB$MAP_USING, r.RDB$MAP_PLUGIN,
r.RDB$MAP_DB, r.RDB$MAP_FROM_TYPE, r.RDB$MAP_FROM,
Trim(r.RDB$MAP_FROM_TYPE) || ': ' || Trim(r.RDB$MAP_FROM) as MAP_FROM,
r.RDB$MAP_TO_TYPE,
T.RDB$TYPE_NAME as MAP_TO_TYPE, r.RDB$MAP_TO,
Trim(T.RDB$TYPE_NAME) || ': ' || Trim(r.RDB$MAP_TO) as MAP_TO,
r.RDB$SYSTEM_FLAG, r.RDB$DESCRIPTION
FROM RDB$AUTH_MAPPING r
JOIN RDB$TYPES T On T.RDB$TYPE = r.RDB$MAP_TO_TYPE and T.RDB$FIELD_NAME = 'RDB$MAP_TO_TYPE'
UNION
SELECT r.RDB$DB_KEY, 'Global', r.SEC$MAP_NAME,
Case
When r.SEC$MAP_USING = 'P' and r.SEC$MAP_PLUGIN is not null then cast ('Plugin ' || r.SEC$MAP_PLUGIN as VarChar(20))
When r.SEC$MAP_USING = 'P' and r.SEC$MAP_PLUGIN is null then 'Any Plugin'
When r.SEC$MAP_USING = 'S' then 'Any Plugin Serverwide'
When r.SEC$MAP_USING = 'M' then 'Mapping'
When r.SEC$MAP_USING = '*' then '*'
else
'Using ' || r.SEC$MAP_USING || ',' || coalesce(r.SEC$MAP_PLUGIN,'') End as MAP_USING,
r.SEC$MAP_USING, r.SEC$MAP_PLUGIN,
r.SEC$MAP_DB, r.SEC$MAP_FROM_TYPE, r.SEC$MAP_FROM,
Trim(r.SEC$MAP_FROM_TYPE) || ': ' || Trim(r.SEC$MAP_FROM) as MAP_FROM,
r.SEC$MAP_TO_TYPE,
T.RDB$TYPE_NAME as MAP_TO_TYPE,r.SEC$MAP_TO,
Trim(T.RDB$TYPE_NAME) || ': ' || Trim(r.SEC$MAP_TO) as MAP_TO,
null,null
FROM SEC$GLOBAL_AUTH_MAPPING r
JOIN RDB$TYPES T On T.RDB$TYPE = r.SEC$MAP_TO_TYPE and T.RDB$FIELD_NAME = 'RDB$MAP_TO_TYPE'
---------------------------------------------------
Select: r.RDB$DB_KEY, cast('Local' as VarChar(6)) as MAPTYPE, r.RDB$MAP_NAME,
Case
When r.RDB$MAP_USING = 'P' and r.RDB$MAP_PLUGIN is not null then cast ('Plugin ' || r.RDB$MAP_PLUGIN as VarChar(20))
When r.RDB$MAP_USING = 'P' and r.RDB$MAP_PLUGIN is null then 'Any Plugin'
When r.RDB$MAP_USING = 'S' then 'Any Plugin Serverwide'
When r.RDB$MAP_USING = 'M' then 'Mapping'
When r.RDB$MAP_USING = '*' then '*'
else
'Using ' || r.RDB$MAP_USING || ',' || coalesce(r.RDB$MAP_PLUGIN,'') End as MAP_USING,
r.RDB$MAP_USING, r.RDB$MAP_PLUGIN,
r.RDB$MAP_DB, r.RDB$MAP_FROM_TYPE, r.RDB$MAP_FROM,
Trim(r.RDB$MAP_FROM_TYPE) || ': ' || Trim(r.RDB$MAP_FROM) as MAP_FROM,
r.RDB$MAP_TO_TYPE,
T.RDB$TYPE_NAME as MAP_TO_TYPE, r.RDB$MAP_TO,
Trim(T.RDB$TYPE_NAME) || ': ' || Trim(r.RDB$MAP_TO) as MAP_TO,
r.RDB$SYSTEM_FLAG, r.RDB$DESCRIPTION
From: RDB$AUTH_MAPPING r
JOIN RDB$TYPES T On T.RDB$TYPE = r.RDB$MAP_TO_TYPE and T.RDB$FIELD_NAME = 'RDB$MAP_TO_TYPE'
Where:
Group By:
Having:
Union
Select: r.RDB$DB_KEY, 'Global', r.SEC$MAP_NAME,
Case
When r.SEC$MAP_USING = 'P' and r.SEC$MAP_PLUGIN is not null then cast ('Plugin ' || r.SEC$MAP_PLUGIN as VarChar(20))
When r.SEC$MAP_USING = 'P' and r.SEC$MAP_PLUGIN is null then 'Any Plugin'
When r.SEC$MAP_USING = 'S' then 'Any Plugin Serverwide'
When r.SEC$MAP_USING = 'M' then 'Mapping'
When r.SEC$MAP_USING = '*' then '*'
else
'Using ' || r.SEC$MAP_USING || ',' || coalesce(r.SEC$MAP_PLUGIN,'') End as MAP_USING,
r.SEC$MAP_USING, r.SEC$MAP_PLUGIN,
r.SEC$MAP_DB, r.SEC$MAP_FROM_TYPE, r.SEC$MAP_FROM,
Trim(r.SEC$MAP_FROM_TYPE) || ': ' || Trim(r.SEC$MAP_FROM) as MAP_FROM,
r.SEC$MAP_TO_TYPE,
T.RDB$TYPE_NAME as MAP_TO_TYPE,r.SEC$MAP_TO,
Trim(T.RDB$TYPE_NAME) || ': ' || Trim(r.SEC$MAP_TO) as MAP_TO,
null,null
From: SEC$GLOBAL_AUTH_MAPPING r
JOIN RDB$TYPES T On T.RDB$TYPE = r.SEC$MAP_TO_TYPE and T.RDB$FIELD_NAME = 'RDB$MAP_TO_TYPE'
Where:
Group By:
Having:
Order by:
Plan:
Rows:
SQL: SELECT r.RDB$DB_KEY, 'Global', r.SEC$MAP_NAME,
Case
When r.SEC$MAP_USING = 'P' and r.SEC$MAP_PLUGIN is not null then cast ('Plugin ' || r.SEC$MAP_PLUGIN as VarChar(20))
When r.SEC$MAP_USING = 'P' and r.SEC$MAP_PLUGIN is null then 'Any Plugin'
When r.SEC$MAP_USING = 'S' then 'Any Plugin Serverwide'
When r.SEC$MAP_USING = 'M' then 'Mapping'
When r.SEC$MAP_USING = '*' then '*'
else
'Using ' || r.SEC$MAP_USING || ',' || coalesce(r.SEC$MAP_PLUGIN,'') End as MAP_USING,
r.SEC$MAP_USING, r.SEC$MAP_PLUGIN,
r.SEC$MAP_DB, r.SEC$MAP_FROM_TYPE, r.SEC$MAP_FROM,
Trim(r.SEC$MAP_FROM_TYPE) || ': ' || Trim(r.SEC$MAP_FROM) as MAP_FROM,
r.SEC$MAP_TO_TYPE,
T.RDB$TYPE_NAME as MAP_TO_TYPE,r.SEC$MAP_TO,
Trim(T.RDB$TYPE_NAME) || ': ' || Trim(r.SEC$MAP_TO) as MAP_TO,
null,null
FROM SEC$GLOBAL_AUTH_MAPPING r
JOIN RDB$TYPES T On T.RDB$TYPE = r.SEC$MAP_TO_TYPE and T.RDB$FIELD_NAME = 'RDB$MAP_TO_TYPE'
Params:
Order by:
Plan:
Rows:
SQL: SELECT r.RDB$DB_KEY, cast('Local' as VarChar(6)) as MAPTYPE, r.RDB$MAP_NAME,
Case
When r.RDB$MAP_USING = 'P' and r.RDB$MAP_PLUGIN is not null then cast ('Plugin ' || r.RDB$MAP_PLUGIN as VarChar(20))
When r.RDB$MAP_USING = 'P' and r.RDB$MAP_PLUGIN is null then 'Any Plugin'
When r.RDB$MAP_USING = 'S' then 'Any Plugin Serverwide'
When r.RDB$MAP_USING = 'M' then 'Mapping'
When r.RDB$MAP_USING = '*' then '*'
else
'Using ' || r.RDB$MAP_USING || ',' || coalesce(r.RDB$MAP_PLUGIN,'') End as MAP_USING,
r.RDB$MAP_USING, r.RDB$MAP_PLUGIN,
r.RDB$MAP_DB, r.RDB$MAP_FROM_TYPE, r.RDB$MAP_FROM,
Trim(r.RDB$MAP_FROM_TYPE) || ': ' || Trim(r.RDB$MAP_FROM) as MAP_FROM,
r.RDB$MAP_TO_TYPE,
T.RDB$TYPE_NAME as MAP_TO_TYPE, r.RDB$MAP_TO,
Trim(T.RDB$TYPE_NAME) || ': ' || Trim(r.RDB$MAP_TO) as MAP_TO,
r.RDB$SYSTEM_FLAG, r.RDB$DESCRIPTION
FROM RDB$AUTH_MAPPING r
JOIN RDB$TYPES T On T.RDB$TYPE = r.RDB$MAP_TO_TYPE and T.RDB$FIELD_NAME = 'RDB$MAP_TO_TYPE'
UNION
SELECT r.RDB$DB_KEY, 'Global', r.SEC$MAP_NAME,
Case
When r.SEC$MAP_USING = 'P' and r.SEC$MAP_PLUGIN is not null then cast ('Plugin ' || r.SEC$MAP_PLUGIN as VarChar(20))
When r.SEC$MAP_USING = 'P' and r.SEC$MAP_PLUGIN is null then 'Any Plugin'
When r.SEC$MAP_USING = 'S' then 'Any Plugin Serverwide'
When r.SEC$MAP_USING = 'M' then 'Mapping'
When r.SEC$MAP_USING = '*' then '*'
else
'Using ' || r.SEC$MAP_USING || ',' || coalesce(r.SEC$MAP_PLUGIN,'') End as MAP_USING,
r.SEC$MAP_USING, r.SEC$MAP_PLUGIN,
r.SEC$MAP_DB, r.SEC$MAP_FROM_TYPE, r.SEC$MAP_FROM,
Trim(r.SEC$MAP_FROM_TYPE) || ': ' || Trim(r.SEC$MAP_FROM) as MAP_FROM,
r.SEC$MAP_TO_TYPE,
T.RDB$TYPE_NAME as MAP_TO_TYPE,r.SEC$MAP_TO,
Trim(T.RDB$TYPE_NAME) || ': ' || Trim(r.SEC$MAP_TO) as MAP_TO,
null,null
FROM SEC$GLOBAL_AUTH_MAPPING r
JOIN RDB$TYPES T On T.RDB$TYPE = r.SEC$MAP_TO_TYPE and T.RDB$FIELD_NAME = 'RDB$MAP_TO_TYPE'
Params:
Updated SQL
SELECT r.RDB$DB_KEY, cast('Local' as VarChar(6)) as MAPTYPE, r.RDB$MAP_NAME,
Case
When r.RDB$MAP_USING = 'P' and r.RDB$MAP_PLUGIN is not null then cast ('Plugin ' || r.RDB$MAP_PLUGIN as VarChar(20))
When r.RDB$MAP_USING = 'P' and r.RDB$MAP_PLUGIN is null then 'Any Plugin'
When r.RDB$MAP_USING = 'S' then 'Any Plugin Serverwide'
When r.RDB$MAP_USING = 'M' then 'Mapping'
When r.RDB$MAP_USING = '*' then '*'
else
'Using ' || r.RDB$MAP_USING || ',' || coalesce(r.RDB$MAP_PLUGIN,'') End as MAP_USING,
r.RDB$MAP_USING, r.RDB$MAP_PLUGIN,
r.RDB$MAP_DB, r.RDB$MAP_FROM_TYPE, r.RDB$MAP_FROM,
Trim(r.RDB$MAP_FROM_TYPE) || ': ' || Trim(r.RDB$MAP_FROM) as MAP_FROM,
r.RDB$MAP_TO_TYPE,
T.RDB$TYPE_NAME as MAP_TO_TYPE, r.RDB$MAP_TO,
Trim(T.RDB$TYPE_NAME) || ': ' || Trim(r.RDB$MAP_TO) as MAP_TO,
r.RDB$SYSTEM_FLAG, r.RDB$DESCRIPTION
FROM RDB$AUTH_MAPPING r
JOIN RDB$TYPES T On T.RDB$TYPE = r.RDB$MAP_TO_TYPE and T.RDB$FIELD_NAME = 'RDB$MAP_TO_TYPE'
UNION
SELECT r.RDB$DB_KEY, 'Global', r.SEC$MAP_NAME,
Case
When r.SEC$MAP_USING = 'P' and r.SEC$MAP_PLUGIN is not null then cast ('Plugin ' || r.SEC$MAP_PLUGIN as VarChar(20))
When r.SEC$MAP_USING = 'P' and r.SEC$MAP_PLUGIN is null then 'Any Plugin'
When r.SEC$MAP_USING = 'S' then 'Any Plugin Serverwide'
When r.SEC$MAP_USING = 'M' then 'Mapping'
When r.SEC$MAP_USING = '*' then '*'
else
'Using ' || r.SEC$MAP_USING || ',' || coalesce(r.SEC$MAP_PLUGIN,'') End as MAP_USING,
r.SEC$MAP_USING, r.SEC$MAP_PLUGIN,
r.SEC$MAP_DB, r.SEC$MAP_FROM_TYPE, r.SEC$MAP_FROM,
Trim(r.SEC$MAP_FROM_TYPE) || ': ' || Trim(r.SEC$MAP_FROM) as MAP_FROM,
r.SEC$MAP_TO_TYPE,
T.RDB$TYPE_NAME as MAP_TO_TYPE,r.SEC$MAP_TO,
Trim(T.RDB$TYPE_NAME) || ': ' || Trim(r.SEC$MAP_TO) as MAP_TO,
null,null
FROM SEC$GLOBAL_AUTH_MAPPING r
JOIN RDB$TYPES T On T.RDB$TYPE = r.SEC$MAP_TO_TYPE and T.RDB$FIELD_NAME = 'RDB$MAP_TO_TYPE'
Test String 10
---------------------------------------------------
Select * From A Group By a1,b1 Union Select * From B Rows 3 to 4
---------------------------------------------------
Select: *
From: A
Where:
Group By: a1,b1
Having:
Union
Select: *
From: B
Where:
Group By:
Having:
Order by:
Plan:
Rows:
SQL: SELECT *
FROM B
Params:
Order by:
Plan:
Rows: 3 to 4
SQL: SELECT *
FROM A
GROUP BY a1,b1
UNION
SELECT *
FROM B
ROWS 3 to 4
Params:
Updated SQL
SELECT *
FROM A
GROUP BY a1,b1
UNION
SELECT *
FROM B
ROWS 3 to 4
Test String 11
---------------------------------------------------
Select * From A Union Select * From B Order by 1 Rows 3 to 4
---------------------------------------------------
Select: *
From: A
Where:
Group By:
Having:
Union
Select: *
From: B
Where:
Group By:
Having:
Order by:
Plan:
Rows:
SQL: SELECT *
FROM B
Params:
Order by: 1
Plan:
Rows: 3 to 4
SQL: SELECT *
FROM A
UNION
SELECT *
FROM B
ORDER BY 1
ROWS 3 to 4
Params:
Updated SQL
SELECT *
FROM A
UNION
SELECT *
FROM B
ORDER BY 1
ROWS 3 to 4
Test String 12
---------------------------------------------------
Select * From A Union Select * From B Union Select * FROM C Order by 1
---------------------------------------------------
Select: *
From: A
Where:
Group By:
Having:
Union
Select: *
From: B
Where:
Group By:
Having:
Union
Select: *
From: C
Where:
Group By:
Having:
Order by:
Plan:
Rows:
SQL: SELECT *
FROM C
Params:
Order by:
Plan:
Rows:
SQL: SELECT *
FROM B
UNION
SELECT *
FROM C
Params:
Order by: 1
Plan:
Rows:
SQL: SELECT *
FROM A
UNION
SELECT *
FROM B
UNION
SELECT *
FROM C
ORDER BY 1
Params:
Updated SQL
SELECT *
FROM A
UNION
SELECT *
FROM B
UNION
SELECT *
FROM C
ORDER BY 1
Test String 13
---------------------------------------------------
---------------------------------------------------
Not a Select Statement
------------------------------------------------------
Running Test 25: TIBTable Tests
IBTable after create
/* Table: TestTable, Owner: SYSDBA */
CREATE TABLE "TestTable"
(
MYKEY INTEGER NOT NULL,
TEXTFIELD VARCHAR(32) CHARACTER SET UTF8,
CONSTRAINT "PrimaryIndex" PRIMARY KEY (MYKEY)
);
Dataset Empty
Rows printed = 0
Add 2 rows
Row No = 1
MYKEY = 1
TEXTFIELD = Test 1 (Charset = UTF8 Codepage = 65001)
Row No = 2
MYKEY = 2
TEXTFIELD = Test 2 (Charset = UTF8 Codepage = 65001)
Rows printed = 2
Update first row
Row No = 1
MYKEY = 1
TEXTFIELD = Updated Test 1 (Charset = UTF8 Codepage = 65001)
Row No = 2
MYKEY = 2
TEXTFIELD = Test 2 (Charset = UTF8 Codepage = 65001)
Rows printed = 2
Delete first row
Row No = 1
MYKEY = 2
TEXTFIELD = Test 2 (Charset = UTF8 Codepage = 65001)
Rows printed = 1
Empty the Table
Dataset Empty
Rows printed = 0
Now drop the table
Extract table after drop - should be empty
------------------------------------------------------
Running Test 26: IBXScript data out and exceptional conditions
Dump project table to CSV
PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT
'VBASE','Video Database','Design a video data base management system for
controlling on-demand video distribution.
',45,'software'
'DGPII','DigiPizza','Develop second generation digital pizza maker
with flash-bake heating element and
digital ingredient measuring system.
',24,'other'
'GUIDE','AutoMap','Develop a prototype for the automobile version of
the hand-held map browsing device.
',20,'hardware'
'MAPDB','MapBrowser port','Port the map browsing database software to run
on the automobile model.
',4,'software'
'HWRII','Translator upgrade','Integrate the hand-writing recognition module into the
universal language translator.
',,'software'
'MKTPR','Marketing project 3','Expand marketing and sales in the Pacific Rim.
Set up a field office in Australia and Singapore.
',85,'N/A'
Dump project table to Insert Statements
/* Inserting data into Table: PROJECT */
INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('VBASE','Video Database','Design a video data base management system for
controlling on-demand video distribution.
',45,'software');
INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('DGPII','DigiPizza','Develop second generation digital pizza maker
with flash-bake heating element and
digital ingredient measuring system.
',24,'other');
INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('GUIDE','AutoMap','Develop a prototype for the automobile version of
the hand-held map browsing device.
',20,'hardware');
INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('MAPDB','MapBrowser port','Port the map browsing database software to run
on the automobile model.
',4,'software');
INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('HWRII','Translator upgrade','Integrate the hand-writing recognition module into the
universal language translator.
',NULL,'software');
INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('MKTPR','Marketing project 3','Expand marketing and sales in the Pacific Rim.
Set up a field office in Australia and Singapore.
',85,'N/A');
Dump project table to Data Block Format
----------------------------------------------------------------------------------------------------------------------------------------
|PROJ_ID| PROJ_NAME | PROJ_DESC |TEAM_LEADER| PRODUCT |
----------------------------------------------------------------------------------------------------------------------------------------
|VBASE |Video Database |Design a video data base management system for
controlling on-demand video di...| 45|software |
----------------------------------------------------------------------------------------------------------------------------------------
|DGPII |DigiPizza |Develop second generation digital pizza maker
with flash-bake heating element...| 24|other |
----------------------------------------------------------------------------------------------------------------------------------------
|GUIDE |AutoMap |Develop a prototype for the automobile version of
the hand-held map browsing ...| 20|hardware |
----------------------------------------------------------------------------------------------------------------------------------------
|MAPDB |MapBrowser port |Port the map browsing database software to run
on the automobile model.
| 4|software |
----------------------------------------------------------------------------------------------------------------------------------------
|HWRII |Translator upgrade |Integrate the hand-writing recognition module into the
universal language tra...| NULL |software |
----------------------------------------------------------------------------------------------------------------------------------------
|MKTPR |Marketing project 3 |Expand marketing and sales in the Pacific Rim.
Set up a field office in Austr...| 85|N/A |
----------------------------------------------------------------------------------------------------------------------------------------
Unknown SET statement - stop on first error
Script Error: Set Blah;
Script Error: Error processing SQL statement: On Line 2 Character 1: Invalid BLAH Statement - Set Blah - for statement "Set Blah"
Unknown SET statement - continue after error
Script Error: Set Blah;
Script Error: Error processing SQL statement: On Line 2 Character 1: Invalid BLAH Statement - Set Blah - for statement "Set Blah"
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|JOB_CODE|JOB_GRADE| JOB_COUNTRY | JOB_TITLE | MIN_SALARY | MAX_SALARY | JOB_REQUIREMENT |LANGUAGE_REQ|
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|CEO | 1|USA |Chief Executive Officer | 130000| 250000|No specific requirements.
| NULL |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|CFO | 1|USA |Chief Financial Officer | 85000| 140000|15+ years in finance or 5+ years as a CFO
with a proven track record.
MBA or ...| NULL |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------
Running Test 27: create, bring up-to-date and read from local database
Creating new Database
gbak:opened file resources/Test27/employee.gbk
gbak:transportable backup -- data in XDR format
gbak: backup file is compressed
gbak:created database /home/tony/.MWA Software/testsuite1.fdb, page_size 4096 bytes
gbak:started transaction
gbak:restoring domain FIRSTNAME
gbak:restoring domain LASTNAME
gbak:restoring domain PHONENUMBER
gbak:restoring domain COUNTRYNAME
gbak:restoring domain ADDRESSLINE
gbak:restoring domain EMPNO
gbak:restoring domain DEPTNO
gbak:restoring domain PROJNO
gbak:restoring domain CUSTNO
gbak:restoring domain JOBCODE
gbak:restoring domain JOBGRADE
gbak:restoring domain SALARY
gbak:restoring domain BUDGET
gbak:restoring domain PRODTYPE
gbak:restoring domain PONUMBER
gbak:restoring domain RDB$1
gbak:restoring domain RDB$2
gbak:restoring domain RDB$3
gbak:restoring domain RDB$4
gbak:restoring domain RDB$5
gbak:restoring domain RDB$6
gbak:restoring domain RDB$7
gbak:restoring domain RDB$8
gbak:restoring domain RDB$9
gbak:restoring domain RDB$10
gbak:restoring domain RDB$11
gbak:restoring domain RDB$12
gbak:restoring domain RDB$13
gbak:restoring domain RDB$14
gbak:restoring domain RDB$15
gbak:restoring domain RDB$16
gbak:restoring domain RDB$17
gbak:restoring domain RDB$18
gbak:restoring domain RDB$19
gbak:restoring domain RDB$20
gbak:restoring domain RDB$21
gbak:restoring domain RDB$22
gbak:restoring domain RDB$23
gbak:restoring domain RDB$24
gbak:restoring domain RDB$25
gbak:restoring domain RDB$26
gbak:restoring domain RDB$27
gbak:restoring domain RDB$28
gbak:restoring domain RDB$29
gbak:restoring domain RDB$30
gbak:restoring domain RDB$31
gbak:restoring domain RDB$32
gbak:restoring domain RDB$33
gbak:restoring domain RDB$34
gbak:restoring domain RDB$35
gbak:restoring domain RDB$36
gbak:restoring domain RDB$37
gbak:restoring domain RDB$38
gbak:restoring domain RDB$39
gbak:restoring domain RDB$40
gbak:restoring domain RDB$41
gbak:restoring domain RDB$42
gbak:restoring domain RDB$43
gbak:restoring domain RDB$44
gbak:restoring domain RDB$45
gbak:restoring domain RDB$46
gbak:restoring domain RDB$47
gbak:restoring domain RDB$48
gbak:restoring domain RDB$49
gbak:restoring domain RDB$50
gbak:restoring domain RDB$51
gbak:restoring domain RDB$52
gbak:restoring domain RDB$53
gbak:restoring domain RDB$54
gbak:restoring domain RDB$55
gbak:restoring domain RDB$56
gbak:restoring domain RDB$57
gbak:restoring domain RDB$58
gbak:restoring domain RDB$59
gbak:restoring domain RDB$60
gbak:restoring domain RDB$61
gbak:restoring domain RDB$62
gbak:restoring domain RDB$63
gbak:restoring domain RDB$64
gbak: committing metadata
gbak:restoring table COUNTRY
gbak: restoring column CURRENCY
gbak: restoring column COUNTRY
gbak:restoring table JOB
gbak: restoring column MIN_SALARY
gbak: restoring column MAX_SALARY
gbak: restoring column JOB_REQUIREMENT
gbak: restoring column JOB_GRADE
gbak: restoring column JOB_CODE
gbak: restoring column JOB_COUNTRY
gbak: restoring column JOB_TITLE
gbak: restoring column LANGUAGE_REQ
gbak:restoring table DEPARTMENT
gbak: restoring column BUDGET
gbak: restoring column MNGR_NO
gbak: restoring column PHONE_NO
gbak: restoring column DEPT_NO
gbak: restoring column DEPARTMENT
gbak: restoring column HEAD_DEPT
gbak: restoring column LOCATION
gbak:restoring table EMPLOYEE
gbak: restoring column HIRE_DATE
gbak: restoring column SALARY
gbak: restoring column EMP_NO
gbak: restoring column LAST_NAME
gbak: restoring column PHONE_EXT
gbak: restoring column JOB_GRADE
gbak: restoring column FIRST_NAME
gbak: restoring column DEPT_NO
gbak: restoring column JOB_CODE
gbak: restoring column JOB_COUNTRY
gbak: restoring column FULL_NAME
gbak:restoring table SALES
gbak: restoring column PO_NUMBER
gbak: restoring column ORDER_DATE
gbak: restoring column SHIP_DATE
gbak: restoring column DATE_NEEDED
gbak: restoring column AGED
gbak: restoring column CUST_NO
gbak: restoring column QTY_ORDERED
gbak: restoring column TOTAL_VALUE
gbak: restoring column DISCOUNT
gbak: restoring column SALES_REP
gbak: restoring column ITEM_TYPE
gbak: restoring column ORDER_STATUS
gbak: restoring column PAID
gbak:restoring table PHONE_LIST
gbak: restoring column EMP_NO
gbak: restoring column LAST_NAME
gbak: restoring column PHONE_EXT
gbak: restoring column PHONE_NO
gbak: restoring column FIRST_NAME
gbak: restoring column LOCATION
gbak:restoring table PROJECT
gbak: restoring column PROJ_DESC
gbak: restoring column PROJ_NAME
gbak: restoring column TEAM_LEADER
gbak: restoring column PRODUCT
gbak: restoring column PROJ_ID
gbak:restoring table EMPLOYEE_PROJECT
gbak: restoring column EMP_NO
gbak: restoring column PROJ_ID
gbak:restoring table PROJ_DEPT_BUDGET
gbak: restoring column PROJECTED_BUDGET
gbak: restoring column FISCAL_YEAR
gbak: restoring column QUART_HEAD_CNT
gbak: restoring column PROJ_ID
gbak: restoring column DEPT_NO
gbak:restoring table SALARY_HISTORY
gbak: restoring column CHANGE_DATE
gbak: restoring column OLD_SALARY
gbak: restoring column PERCENT_CHANGE
gbak: restoring column NEW_SALARY
gbak: restoring column EMP_NO
gbak: restoring column UPDATER_ID
gbak:restoring table CUSTOMER
gbak: restoring column ADDRESS_LINE1
gbak: restoring column ADDRESS_LINE2
gbak: restoring column CUST_NO
gbak: restoring column CONTACT_LAST
gbak: restoring column PHONE_NO
gbak: restoring column POSTAL_CODE
gbak: restoring column CUSTOMER
gbak: restoring column CONTACT_FIRST
gbak: restoring column CITY
gbak: restoring column STATE_PROVINCE
gbak: restoring column COUNTRY
gbak: restoring column ON_HOLD
gbak:restoring generator EMP_NO_GEN value: 145
gbak:restoring generator CUST_NO_GEN value: 1015
gbak:restoring stored procedure GET_EMP_PROJ
gbak:restoring parameter EMP_NO for stored procedure
gbak:restoring parameter PROJ_ID for stored procedure
gbak:restoring stored procedure ADD_EMP_PROJ
gbak:restoring parameter EMP_NO for stored procedure
gbak:restoring parameter PROJ_ID for stored procedure
gbak:restoring stored procedure SUB_TOT_BUDGET
gbak:restoring parameter HEAD_DEPT for stored procedure
gbak:restoring parameter TOT_BUDGET for stored procedure
gbak:restoring parameter AVG_BUDGET for stored procedure
gbak:restoring parameter MIN_BUDGET for stored procedure
gbak:restoring parameter MAX_BUDGET for stored procedure
gbak:restoring stored procedure DELETE_EMPLOYEE
gbak:restoring parameter EMP_NUM for stored procedure
gbak:restoring stored procedure DEPT_BUDGET
gbak:restoring parameter DNO for stored procedure
gbak:restoring parameter TOT for stored procedure
gbak:restoring stored procedure ORG_CHART
gbak:restoring parameter HEAD_DEPT for stored procedure
gbak:restoring parameter DEPARTMENT for stored procedure
gbak:restoring parameter MNGR_NAME for stored procedure
gbak:restoring parameter TITLE for stored procedure
gbak:restoring parameter EMP_CNT for stored procedure
gbak:restoring stored procedure MAIL_LABEL
gbak:restoring parameter CUST_NO for stored procedure
gbak:restoring parameter LINE1 for stored procedure
gbak:restoring parameter LINE2 for stored procedure
gbak:restoring parameter LINE3 for stored procedure
gbak:restoring parameter LINE4 for stored procedure
gbak:restoring parameter LINE5 for stored procedure
gbak:restoring parameter LINE6 for stored procedure
gbak:restoring stored procedure SHIP_ORDER
gbak:restoring parameter PO_NUM for stored procedure
gbak:restoring stored procedure SHOW_LANGS
gbak:restoring parameter CODE for stored procedure
gbak:restoring parameter GRADE for stored procedure
gbak:restoring parameter CTY for stored procedure
gbak:restoring parameter LANGUAGES for stored procedure
gbak:restoring stored procedure ALL_LANGS
gbak:restoring parameter CODE for stored procedure
gbak:restoring parameter GRADE for stored procedure
gbak:restoring parameter COUNTRY for stored procedure
gbak:restoring parameter LANG for stored procedure
gbak:restoring exception UNKNOWN_EMP_ID
gbak:restoring exception REASSIGN_SALES
gbak:restoring exception ORDER_ALREADY_SHIPPED
gbak:restoring exception CUSTOMER_ON_HOLD
gbak:restoring exception CUSTOMER_CHECK
gbak: committing metadata
gbak: restoring index RDB$PRIMARY22
gbak: restoring index RDB$FOREIGN23
gbak: restoring index CUSTNAMEX
gbak: restoring index CUSTREGION
gbak:restoring data for table CUSTOMER
gbak: 15 records restored
gbak: restoring index RDB$PRIMARY20
gbak: restoring index RDB$FOREIGN21
gbak: restoring index UPDATERX
gbak: restoring index CHANGEX
gbak:restoring data for table SALARY_HISTORY
gbak: 49 records restored
gbak: restoring index RDB$PRIMARY17
gbak: restoring index RDB$FOREIGN18
gbak: restoring index RDB$FOREIGN19
gbak:restoring data for table PROJ_DEPT_BUDGET
gbak: 24 records restored
gbak: restoring index RDB$PRIMARY14
gbak: restoring index RDB$FOREIGN15
gbak: restoring index RDB$FOREIGN16
gbak:restoring data for table EMPLOYEE_PROJECT
gbak: 28 records restored
gbak: restoring index RDB$11
gbak: restoring index RDB$PRIMARY12
gbak: restoring index RDB$FOREIGN13
gbak: restoring index PRODTYPEX
gbak:restoring data for table PROJECT
gbak: 6 records restored
gbak: restoring index RDB$PRIMARY24
gbak: restoring index RDB$FOREIGN25
gbak: restoring index RDB$FOREIGN26
gbak: restoring index NEEDX
gbak: restoring index SALESTATX
gbak: restoring index QTYX
gbak:restoring data for table SALES
gbak: 33 records restored
gbak: restoring index RDB$PRIMARY7
gbak: restoring index RDB$FOREIGN8
gbak: restoring index RDB$FOREIGN9
gbak: restoring index NAMEX
gbak:restoring data for table EMPLOYEE
gbak: 42 records restored
gbak: restoring index RDB$4
gbak: restoring index RDB$PRIMARY5
gbak: restoring index RDB$FOREIGN6
gbak: restoring index BUDGETX
gbak: restoring index RDB$FOREIGN10
gbak:restoring data for table DEPARTMENT
gbak: 21 records restored
gbak: restoring index RDB$PRIMARY2
gbak: restoring index RDB$FOREIGN3
gbak: restoring index MINSALX
gbak: restoring index MAXSALX
gbak:restoring data for table JOB
gbak: 31 records restored
gbak: restoring index RDB$PRIMARY1
gbak:restoring data for table COUNTRY
gbak: 14 records restored
gbak: restoring trigger CHECK_1
gbak: restoring trigger CHECK_2
gbak: restoring trigger CHECK_3
gbak: restoring trigger CHECK_4
gbak: restoring trigger SET_EMP_NO
gbak: restoring trigger CHECK_5
gbak: restoring trigger CHECK_6
gbak: restoring trigger CHECK_7
gbak: restoring trigger CHECK_8
gbak: restoring trigger SAVE_SALARY_CHANGE
gbak: restoring trigger CHECK_9
gbak: restoring trigger CHECK_10
gbak: restoring trigger SET_CUST_NO
gbak: restoring trigger CHECK_11
gbak: restoring trigger CHECK_12
gbak: restoring trigger CHECK_13
gbak: restoring trigger CHECK_14
gbak: restoring trigger CHECK_15
gbak: restoring trigger CHECK_16
gbak: restoring trigger CHECK_17
gbak: restoring trigger CHECK_18
gbak: restoring trigger CHECK_19
gbak: restoring trigger CHECK_20
gbak: restoring trigger CHECK_21
gbak: restoring trigger CHECK_22
gbak: restoring trigger CHECK_23
gbak: restoring trigger CHECK_24
gbak: restoring trigger CHECK_25
gbak: restoring trigger CHECK_26
gbak: restoring trigger CHECK_27
gbak: restoring trigger CHECK_28
gbak: restoring trigger POST_NEW_ORDER
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user PUBLIC
gbak:creating indexes
gbak: committing metadata
gbak: activating and creating deferred index RDB$PRIMARY22
gbak: activating and creating deferred index CUSTNAMEX
gbak: activating and creating deferred index CUSTREGION
gbak: activating and creating deferred index RDB$PRIMARY20
gbak: activating and creating deferred index UPDATERX
gbak: activating and creating deferred index CHANGEX
gbak: activating and creating deferred index RDB$PRIMARY17
gbak: activating and creating deferred index RDB$PRIMARY14
gbak: activating and creating deferred index RDB$11
gbak: activating and creating deferred index RDB$PRIMARY12
gbak: activating and creating deferred index PRODTYPEX
gbak: activating and creating deferred index RDB$PRIMARY24
gbak: activating and creating deferred index NEEDX
gbak: activating and creating deferred index SALESTATX
gbak: activating and creating deferred index QTYX
gbak: activating and creating deferred index RDB$PRIMARY7
gbak: activating and creating deferred index NAMEX
gbak: activating and creating deferred index RDB$4
gbak: activating and creating deferred index RDB$PRIMARY5
gbak: activating and creating deferred index BUDGETX
gbak: activating and creating deferred index RDB$PRIMARY2
gbak: activating and creating deferred index MINSALX
gbak: activating and creating deferred index MAXSALX
gbak: activating and creating deferred index RDB$PRIMARY1
gbak: activating and creating deferred index RDB$FOREIGN3
gbak: activating and creating deferred index RDB$FOREIGN6
gbak: activating and creating deferred index RDB$FOREIGN8
gbak: activating and creating deferred index RDB$FOREIGN9
gbak: activating and creating deferred index RDB$FOREIGN10
gbak: activating and creating deferred index RDB$FOREIGN13
gbak: activating and creating deferred index RDB$FOREIGN15
gbak: activating and creating deferred index RDB$FOREIGN16
gbak: activating and creating deferred index RDB$FOREIGN18
gbak: activating and creating deferred index RDB$FOREIGN19
gbak: activating and creating deferred index RDB$FOREIGN21
gbak: activating and creating deferred index RDB$FOREIGN23
gbak: activating and creating deferred index RDB$FOREIGN25
gbak: activating and creating deferred index RDB$FOREIGN26
gbak:finishing, closing, and going home
Upgrading to Version 1
Applying Update from resources/Test27/patches/01-patch.sql
Create Table DBVERSIONINFO(
VersionNo Integer not null
);
Insert into DBVERSIONINFO(VersionNo) Values(1);
Commit;
Upgrading to Version 2
Applying Update from resources/Test27/patches/02-patch.sql
Alter Table EMPLOYEE
Add Photo Blob;
Create View DeptList
As
with recursive Depts As (
Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,
cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH
From DEPARTMENT Where HEAD_DEPT is NULL
UNION ALL
Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,
Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH
From DEPARTMENT D
JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO
)
Select A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,
A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH, A.PHOTO
From EMPLOYEE A
JOIN Depts D On D.DEPT_NO = A.DEPT_NO;
Update EMPLOYEE Set Photo =:MUGSHOT Where Emp_no = 2;
Resolving Query Parameter: MUGSHOT
Update DBVERSIONINFO Set VersionNo = 2;
Commit;
Row No = 1
EMP_NO = 12
FIRST_NAME = Terri
LAST_NAME = Lee
PHONE_EXT = 256
HIRE_DATE = 01/5/1990
DEPT_NO = 000
JOB_CODE = Admin
JOB_GRADE = 4
JOB_COUNTRY = USA
SALARY = 53793
FULL_NAME = Lee, Terri
PHOTO = NULL
DEPT_PATH = Corporate Headquarters
DEPT_KEY_PATH = 000
Row No = 2
EMP_NO = 105
FIRST_NAME = Oliver H.
LAST_NAME = Bender
PHONE_EXT = 255
HIRE_DATE = 08/10/1992
DEPT_NO = 000
JOB_CODE = CEO
JOB_GRADE = 1
JOB_COUNTRY = USA
SALARY = 212850
FULL_NAME = Bender, Oliver H.
PHOTO = NULL
DEPT_PATH = Corporate Headquarters
DEPT_KEY_PATH = 000
Rows printed = 2
------------------------------------------------------
Running Test 28: Create Local Database from Script
Creating new Database
Show schema for /home/tony/.MWA Software/testsuite1.fdb
SET SQL DIALECT 3;
SET AUTODDL ON;
/* CREATE DATABASE '/home/tony/.MWA Software/testsuite1.fdb' PAGE_SIZE 4096
DEFAULT CHARACTER SET UTF8; */
/* Table: DBVERSIONINFO, Owner: SYSDBA */
CREATE TABLE DBVERSIONINFO
(
VERSIONNO INTEGER NOT NULL,
PRIMARY KEY (VERSIONNO)
);
/* Table: IBDATASETTEST, Owner: SYSDBA */
CREATE TABLE IBDATASETTEST
(
KEYFIELD INTEGER NOT NULL,
PLAINTEXT VARCHAR(128),
TEXTANDKEY COMPUTED BY (KeyField || ': ' || PlainText),
SERVERSIDETEXT VARCHAR(256),
PRIMARY KEY (KEYFIELD)
);
/* Data Starts */
/* Inserting data into Table: DBVERSIONINFO */
INSERT INTO DBVERSIONINFO (VERSIONNO) VALUES(1);
COMMIT;
/* Data Ends */
CREATE SEQUENCE AGENERATOR;
ALTER SEQUENCE AGENERATOR RESTART WITH 0;
SET TERM ^;
/* Triggers only will work for SQL triggers */
CREATE TRIGGER BEFOREINSERTTEST FOR IBDATASETTEST
ACTIVE BEFORE INSERT or UPDATE POSITION 0
As
Begin
new.ServerSideText = new.KeyField || ' - ' || new.PlainText;
End
^
COMMIT WORK^
SET TERM ;^
/* Comments on System Objects */
/* Grant Roles for this database */
/* Grant permissions for this database */
Now test out an upgrade failure
gbak:readied database /home/tony/.MWA Software/testsuite1.fdb for backup
gbak:creating file /home/tony/.MWA Software/testsuite1.1.gbk
gbak:starting transaction
gbak:database /home/tony/.MWA Software/testsuite1.fdb has a page size of 4096 bytes.
gbak:writing domains
gbak: writing domain RDB$1
gbak: writing domain RDB$2
gbak: writing domain RDB$3
gbak: writing domain RDB$4
gbak: writing domain RDB$5
gbak:writing shadow files
gbak:writing character sets
gbak:writing collations
gbak:writing functions
gbak:writing tables
gbak: writing table IBDATASETTEST
gbak: writing column KEYFIELD
gbak: writing column PLAINTEXT
gbak: writing column TEXTANDKEY
gbak: writing column SERVERSIDETEXT
gbak: writing table DBVERSIONINFO
gbak: writing column VERSIONNO
gbak:writing types
gbak:writing filters
gbak:writing id generators
gbak: writing generator AGENERATOR value 1
gbak:writing stored procedures
gbak:writing exceptions
gbak: writing index RDB$PRIMARY2
gbak: writing data for table DBVERSIONINFO
gbak:1 records written
gbak: writing index RDB$PRIMARY1
gbak: writing data for table IBDATASETTEST
gbak:1 records written
gbak:writing triggers
gbak: writing trigger BEFOREINSERTTEST
gbak:writing trigger messages
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user PUBLIC
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user PUBLIC
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user PUBLIC
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak:writing table constraints
gbak:writing constraint INTEG_1
gbak:writing constraint INTEG_2
gbak:writing constraint INTEG_3
gbak:writing referential constraints
gbak:writing check constraints
gbak:writing SQL roles
gbak:writing names mapping
gbak:closing file, committing, and finishing. 3072 bytes written
Database Archived to /home/tony/.MWA Software/testsuite1.1.gbk
Upgrading to Version 2
Applying Update from resources/Test28/patches/01-badpatch.sql
Create table GoodTable(
TheKey integer not null,
aText VarChar(12),
Primary Key(TheKey)
);
Create table blah;
Error processing SQL statement: On Line 8 Character 1: Engine Code: 335544569
Dynamic SQL Error When Executing: Create table blah
- for statement "Create table blah"
Downgrading to version 1
gbak:opened file /home/tony/.MWA Software/testsuite1.1.gbk
gbak:transportable backup -- data in XDR format
gbak: backup file is compressed
gbak:created database /home/tony/.MWA Software/testsuite1.fdb, page_size 4096 bytes
gbak:started transaction
gbak:restoring domain RDB$1
gbak:restoring domain RDB$2
gbak:restoring domain RDB$3
gbak:restoring domain RDB$4
gbak:restoring domain RDB$5
gbak: committing metadata
gbak:restoring table IBDATASETTEST
gbak: restoring column KEYFIELD
gbak: restoring column PLAINTEXT
gbak: restoring column TEXTANDKEY
gbak: restoring column SERVERSIDETEXT
gbak:restoring table DBVERSIONINFO
gbak: restoring column VERSIONNO
gbak:restoring generator AGENERATOR value: 1
gbak: committing metadata
gbak: restoring index RDB$PRIMARY2
gbak:restoring data for table DBVERSIONINFO
gbak: 1 records restored
gbak: restoring index RDB$PRIMARY1
gbak:restoring data for table IBDATASETTEST
gbak: 1 records restored
gbak: restoring trigger BEFOREINSERTTEST
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak:creating indexes
gbak: committing metadata
gbak: activating and creating deferred index RDB$PRIMARY2
gbak: activating and creating deferred index RDB$PRIMARY1
gbak:finishing, closing, and going home
Upgrade failed (as expected): Upgrade Failed. Database Version No. is 1
Schema after failed upgrade is
SET SQL DIALECT 3;
SET AUTODDL ON;
/* CREATE DATABASE '/home/tony/.MWA Software/testsuite1.fdb' PAGE_SIZE 4096
DEFAULT CHARACTER SET UTF8; */
/* Table: DBVERSIONINFO, Owner: SYSDBA */
CREATE TABLE DBVERSIONINFO
(
VERSIONNO INTEGER NOT NULL,
PRIMARY KEY (VERSIONNO)
);
/* Table: IBDATASETTEST, Owner: SYSDBA */
CREATE TABLE IBDATASETTEST
(
KEYFIELD INTEGER NOT NULL,
PLAINTEXT VARCHAR(128),
TEXTANDKEY COMPUTED BY (KeyField || ': ' || PlainText),
SERVERSIDETEXT VARCHAR(256),
PRIMARY KEY (KEYFIELD)
);
/* Data Starts */
/* Inserting data into Table: DBVERSIONINFO */
INSERT INTO DBVERSIONINFO (VERSIONNO) VALUES(1);
COMMIT;
/* Inserting data into Table: IBDATASETTEST */
INSERT INTO IBDATASETTEST (KEYFIELD,PLAINTEXT,SERVERSIDETEXT) VALUES(1,'Test','1 - Test');
COMMIT;
/* Data Ends */
CREATE SEQUENCE AGENERATOR;
ALTER SEQUENCE AGENERATOR RESTART WITH 1;
SET TERM ^;
/* Triggers only will work for SQL triggers */
CREATE TRIGGER BEFOREINSERTTEST FOR IBDATASETTEST
ACTIVE BEFORE INSERT or UPDATE POSITION 0
As
Begin
new.ServerSideText = new.KeyField || ' - ' || new.PlainText;
End
^
COMMIT WORK^
SET TERM ;^
/* Comments on System Objects */
/* Grant Roles for this database */
/* Grant permissions for this database */
Save and Restore Tests
gbak:readied database /home/tony/.MWA Software/testsuite1.fdb for backup
gbak:creating file /tmp/ibx-testsuite/testsuite.gbk
gbak:starting transaction
gbak:database /home/tony/.MWA Software/testsuite1.fdb has a page size of 4096 bytes.
gbak:writing domains
gbak: writing domain RDB$1
gbak: writing domain RDB$2
gbak: writing domain RDB$3
gbak: writing domain RDB$4
gbak: writing domain RDB$5
gbak:writing shadow files
gbak:writing character sets
gbak:writing collations
gbak:writing functions
gbak:writing tables
gbak: writing table IBDATASETTEST
gbak: writing column KEYFIELD
gbak: writing column PLAINTEXT
gbak: writing column TEXTANDKEY
gbak: writing column SERVERSIDETEXT
gbak: writing table DBVERSIONINFO
gbak: writing column VERSIONNO
gbak:writing types
gbak:writing filters
gbak:writing id generators
gbak: writing generator AGENERATOR value 2
gbak:writing stored procedures
gbak:writing exceptions
gbak: writing index RDB$PRIMARY2
gbak: writing data for table DBVERSIONINFO
gbak:1 records written
gbak: writing index RDB$PRIMARY1
gbak: writing data for table IBDATASETTEST
gbak:2 records written
gbak:writing triggers
gbak: writing trigger BEFOREINSERTTEST
gbak:writing trigger messages
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user PUBLIC
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user PUBLIC
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user PUBLIC
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak: writing privilege for user SYSDBA
gbak:writing table constraints
gbak:writing constraint INTEG_1
gbak:writing constraint INTEG_2
gbak:writing constraint INTEG_3
gbak:writing referential constraints
gbak:writing check constraints
gbak:writing SQL roles
gbak:writing names mapping
gbak:closing file, committing, and finishing. 3584 bytes written
Database Archived to /tmp/ibx-testsuite/testsuite.gbk
gbak:opened file /tmp/ibx-testsuite/testsuite.gbk
gbak:transportable backup -- data in XDR format
gbak: backup file is compressed
gbak:created database /home/tony/.MWA Software/testsuite1.fdb, page_size 4096 bytes
gbak:started transaction
gbak:restoring domain RDB$1
gbak:restoring domain RDB$2
gbak:restoring domain RDB$3
gbak:restoring domain RDB$4
gbak:restoring domain RDB$5
gbak: committing metadata
gbak:restoring table IBDATASETTEST
gbak: restoring column KEYFIELD
gbak: restoring column PLAINTEXT
gbak: restoring column TEXTANDKEY
gbak: restoring column SERVERSIDETEXT
gbak:restoring table DBVERSIONINFO
gbak: restoring column VERSIONNO
gbak:restoring generator AGENERATOR value: 2
gbak: committing metadata
gbak: restoring index RDB$PRIMARY2
gbak:restoring data for table DBVERSIONINFO
gbak: 1 records restored
gbak: restoring index RDB$PRIMARY1
gbak:restoring data for table IBDATASETTEST
gbak: 2 records restored
gbak: restoring trigger BEFOREINSERTTEST
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user PUBLIC
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak: restoring privilege for user SYSDBA
gbak:creating indexes
gbak: committing metadata
gbak: activating and creating deferred index RDB$PRIMARY2
gbak: activating and creating deferred index RDB$PRIMARY1
gbak:finishing, closing, and going home
Database after restore
SET SQL DIALECT 3;
SET AUTODDL ON;
/* CREATE DATABASE '/home/tony/.MWA Software/testsuite1.fdb' PAGE_SIZE 4096
DEFAULT CHARACTER SET UTF8; */
/* Table: DBVERSIONINFO, Owner: SYSDBA */
CREATE TABLE DBVERSIONINFO
(
VERSIONNO INTEGER NOT NULL,
PRIMARY KEY (VERSIONNO)
);
/* Table: IBDATASETTEST, Owner: SYSDBA */
CREATE TABLE IBDATASETTEST
(
KEYFIELD INTEGER NOT NULL,
PLAINTEXT VARCHAR(128),
TEXTANDKEY COMPUTED BY (KeyField || ': ' || PlainText),
SERVERSIDETEXT VARCHAR(256),
PRIMARY KEY (KEYFIELD)
);
/* Data Starts */
/* Inserting data into Table: DBVERSIONINFO */
INSERT INTO DBVERSIONINFO (VERSIONNO) VALUES(1);
COMMIT;
/* Inserting data into Table: IBDATASETTEST */
INSERT INTO IBDATASETTEST (KEYFIELD,PLAINTEXT,SERVERSIDETEXT) VALUES(1,'Test','1 - Test');
INSERT INTO IBDATASETTEST (KEYFIELD,PLAINTEXT,SERVERSIDETEXT) VALUES(2,'Test','2 - Test');
COMMIT;
/* Data Ends */
CREATE SEQUENCE AGENERATOR;
ALTER SEQUENCE AGENERATOR RESTART WITH 2;
SET TERM ^;
/* Triggers only will work for SQL triggers */
CREATE TRIGGER BEFOREINSERTTEST FOR IBDATASETTEST
ACTIVE BEFORE INSERT or UPDATE POSITION 0
As
Begin
new.ServerSideText = new.KeyField || ' - ' || new.PlainText;
End
^
COMMIT WORK^
SET TERM ;^
/* Comments on System Objects */
/* Grant Roles for this database */
/* Grant permissions for this database */
------------------------------------------------------
Running Test 29: IBJournal Tests
Creating Database from resources/Test29.sql
Create Table IBXTest (
TableKey Integer not null,
F1 Smallint,
F2 Float,
F3 Double Precision,
F4 Decimal(9,3),
F5 Decimal(18,4),
F6 Date,
F7 Timestamp,
F8 Char (2),
F9 VarChar(256),
F10 Blob,
F11 BigInt,
"f12" Integer,
F13 Time,
F14 Blob sub_type text,
F15 Double Precision Computed by (F2 + F3),
MyArray Integer [0:16],
"GRANTS" VarChar(20),
"My Field" VarChar(32),
"MY Field" VarChar(32),
Primary Key(TableKey)
);
Create Generator IBXGen;
Journal Entry Made
Journal Entry at 2023/06/17 15:06:18.5830:
Type = Transaction Start
Attachment ID = 2
Session ID = 1
Transaction ID = 9
Transaction Name = "{78B089E6-579A-4C7F-9FAD-AFE448815F17}"
TPB = [isc_tpb_concurrency,isc_tpb_wait,isc_tpb_write]
Default Completion = TACommit
Field Names for Dataset29
TABLEKEY
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
F11
F12
F13
F14
F15
MYARRAY
GRANTS
MYFIELD1
MYFIELD2
Add a record
Journal Entry Made
Journal Entry at 2023/06/17 15:06:18.6440:
Type = Query
Attachment ID = 2
Session ID = 1
Transaction ID = 9
Query Text = "Insert Into IBXTEST(TABLEKEY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, "f12", F13, F14, MyArray, GRANTS) Values(1, 2, 0.314, 0.31412345678, 101.314, 101.99, '2007-12-25', '2007-12-25 12:30:29.1300','XX', 'The Quick Brown Fox jumps over the lazy dog',
FFD8FFE000104A46494600010101004800480000FFE11E0545786966000049492A00080000000C00
0E010200200000009E0000000F01020014000000BE0000001001020008000000D200000012010300
01000000010000001A01050001000000DA000000
, 9223372036854775807, 65566, '12:30:45.0000', 'If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o''er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
''Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe''er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l''amour, continuez à jouer;
Donnez-m''en un excès, que, surexcité,
L''appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m''est venu à l''oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l''odeur! Assez; Pas plus:
«Ce n''est pas si doux maintenant qu''avant.
O esprit d''amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n''y entre,
De quelle validité et de quelle hauteur soe''er,
Mais tombe dans l''abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
',
100
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
, NULL) Returning MyArray, F15"
Add and edit a record
Journal Entry Made
Journal Entry at 2023/06/17 15:06:18.6680:
Type = Query
Attachment ID = 2
Session ID = 1
Transaction ID = 9
Query Text = "Insert Into IBXTEST(TABLEKEY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, "f12", F13, F14, MyArray, GRANTS) Values(2, 2, 0.314, 0.31412345678, 101.314, 101.99, '2007-12-25', '2007-12-25 12:30:29.1300','XX', 'The Quick Brown Fox jumps over the lazy dog',
FFD8FFE000104A46494600010101004800480000FFE11E0545786966000049492A00080000000C00
0E010200200000009E0000000F01020014000000BE0000001001020008000000D200000012010300
01000000010000001A01050001000000DA000000
, 9223372036854775807, 65566, '12:30:45.0000', 'If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o''er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
''Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe''er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l''amour, continuez à jouer;
Donnez-m''en un excès, que, surexcité,
L''appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m''est venu à l''oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l''odeur! Assez; Pas plus:
«Ce n''est pas si doux maintenant qu''avant.
O esprit d''amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n''y entre,
De quelle validité et de quelle hauteur soe''er,
Mais tombe dans l''abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
',
100
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
, NULL) Returning MyArray, F15"
TABLEKEY = 2
F1 = 199
F2 = 0.314000010490
F3 = 0.314123456780
F4 = 101.314
F5 = 101.99
F6 = 25/12/2007
F7 = 25/12/2007 12:30:29.130
F8 = XX (Charset = UTF8 Codepage = 65001)
F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
F10 = (blob), Length = 100
F11 = 9223372036854775807
F12 = 65566
F13 = 12:30:45.000
F14 (Charset = UTF8 Codepage = 65001)
If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o'er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
'Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe'er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l'amour, continuez à jouer;
Donnez-m'en un excès, que, surexcité,
L'appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m'est venu à l'oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l'odeur! Assez; Pas plus:
«Ce n'est pas si doux maintenant qu'avant.
O esprit d'amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n'y entre,
De quelle validité et de quelle hauteur soe'er,
Mais tombe dans l'abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
F15 = 0.628123467270
Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
GRANTS = NULL
MYFIELD1 = My Field (Charset = UTF8 Codepage = 65001)
MYFIELD2 = MY Field (Charset = UTF8 Codepage = 65001)
Journal Entry Made
Journal Entry at 2023/06/17 15:06:18.6920:
Type = Query
Attachment ID = 2
Session ID = 1
Transaction ID = 9
Query Text = "Update IBXTEST A Set A.F1 = 199, A.F2 = 0.314000010490417, A.F3 = 0.31412345678, A.F4 = 101.314, A.F5 = 101.99, A.F6 = '2007-12-25', A.F7 = '2007-12-25 12:30:29.1300', A.F8 = 'XX', A.F9 = 'The Quick Brown Fox jumps over the lazy dog', A.F10 =
FFD8FFE000104A46494600010101004800480000FFE11E0545786966000049492A00080000000C00
0E010200200000009E0000000F01020014000000BE0000001001020008000000D200000012010300
01000000010000001A01050001000000DA000000
, A.F11 = 9223372036854775807, A."f12" = 65566, A.F13 = '12:30:45.0000', A.F14 = 'If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o''er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
''Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe''er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l''amour, continuez à jouer;
Donnez-m''en un excès, que, surexcité,
L''appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m''est venu à l''oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l''odeur! Assez; Pas plus:
«Ce n''est pas si doux maintenant qu''avant.
O esprit d''amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n''y entre,
De quelle validité et de quelle hauteur soe''er,
Mais tombe dans l''abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
', A.MyArray =
100
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
, A."My Field" = 'My Field', A."MY Field" = 'MY Field', A.GRANTS = NULL Where A.TABLEKEY = 2 RETURNING A.MyArray, A.F15"
Journal Entry Made
Journal Entry at 2023/06/17 15:06:18.7090:
Type = Commit
Attachment ID = 2
Session ID = 1
Transaction ID = 9
Journal Entry Made
Journal Entry at 2023/06/17 15:06:18.7120:
Type = Transaction Start
Attachment ID = 2
Session ID = 1
Transaction ID = 11
Transaction Name = "{78B089E6-579A-4C7F-9FAD-AFE448815F17}"
TPB = [isc_tpb_concurrency,isc_tpb_wait,isc_tpb_write]
Default Completion = TACommit
Print Dataset for Dataset29
Row No = 1
TABLEKEY = 1
F1 = 2
F2 = 0.314000010490
F3 = 0.314123456780
F4 = 101.314
F5 = 101.99
F6 = 25/12/2007
F7 = 25/12/2007 12:30:29.130
F8 = XX (Charset = UTF8 Codepage = 65001)
F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
F10 = (blob), Length = 100
F11 = 9223372036854775807
F12 = 65566
F13 = 12:30:45.000
F14 (Charset = UTF8 Codepage = 65001)
If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o'er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
'Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe'er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l'amour, continuez à jouer;
Donnez-m'en un excès, que, surexcité,
L'appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m'est venu à l'oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l'odeur! Assez; Pas plus:
«Ce n'est pas si doux maintenant qu'avant.
O esprit d'amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n'y entre,
De quelle validité et de quelle hauteur soe'er,
Mais tombe dans l'abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
F15 = 0.628123467270
Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
GRANTS = NULL
MYFIELD1 = NULL
MYFIELD2 = NULL
Row No = 2
TABLEKEY = 2
F1 = 199
F2 = 0.314000010490
F3 = 0.314123456780
F4 = 101.314
F5 = 101.99
F6 = 25/12/2007
F7 = 25/12/2007 12:30:29.130
F8 = XX (Charset = UTF8 Codepage = 65001)
F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
F10 = (blob), Length = 100
F11 = 9223372036854775807
F12 = 65566
F13 = 12:30:45.000
F14 (Charset = UTF8 Codepage = 65001)
If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o'er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
'Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe'er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l'amour, continuez à jouer;
Donnez-m'en un excès, que, surexcité,
L'appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m'est venu à l'oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l'odeur! Assez; Pas plus:
«Ce n'est pas si doux maintenant qu'avant.
O esprit d'amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n'y entre,
De quelle validité et de quelle hauteur soe'er,
Mais tombe dans l'abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
F15 = 0.628123467270
Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
GRANTS = NULL
MYFIELD1 = My Field (Charset = UTF8 Codepage = 65001)
MYFIELD2 = MY Field (Charset = UTF8 Codepage = 65001)
Rows printed = 2
Delete a record
Journal Entry Made
Journal Entry at 2023/06/17 15:06:18.9700:
Type = Query
Attachment ID = 2
Session ID = 1
Transaction ID = 11
Query Text = "Delete From IBXTEST A Where A.TABLEKEY = 1"
Print Dataset for Dataset29
Row No = 1
TABLEKEY = 2
F1 = 199
F2 = 0.314000010490
F3 = 0.314123456780
F4 = 101.314
F5 = 101.99
F6 = 25/12/2007
F7 = 25/12/2007 12:30:29.130
F8 = XX (Charset = UTF8 Codepage = 65001)
F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
F10 = (blob), Length = 100
F11 = 9223372036854775807
F12 = 65566
F13 = 12:30:45.000
F14 (Charset = UTF8 Codepage = 65001)
If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o'er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
'Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe'er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l'amour, continuez à jouer;
Donnez-m'en un excès, que, surexcité,
L'appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m'est venu à l'oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l'odeur! Assez; Pas plus:
«Ce n'est pas si doux maintenant qu'avant.
O esprit d'amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n'y entre,
De quelle validité et de quelle hauteur soe'er,
Mais tombe dans l'abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
F15 = 0.628123467270
Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
GRANTS = NULL
MYFIELD1 = My Field (Charset = UTF8 Codepage = 65001)
MYFIELD2 = MY Field (Charset = UTF8 Codepage = 65001)
Rows printed = 1
Rollback Retaining
Journal Entry Made
Journal Entry at 2023/06/17 15:06:19.0790:
Type = Rollback Retaining
Attachment ID = 2
Session ID = 1
Transaction ID = 13
Old Transaction ID = 11
Print Dataset for Dataset29
Row No = 1
TABLEKEY = 1
F1 = 2
F2 = 0.314000010490
F3 = 0.314123456780
F4 = 101.314
F5 = 101.99
F6 = 25/12/2007
F7 = 25/12/2007 12:30:29.130
F8 = XX (Charset = UTF8 Codepage = 65001)
F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
F10 = (blob), Length = 100
F11 = 9223372036854775807
F12 = 65566
F13 = 12:30:45.000
F14 (Charset = UTF8 Codepage = 65001)
If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o'er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
'Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe'er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l'amour, continuez à jouer;
Donnez-m'en un excès, que, surexcité,
L'appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m'est venu à l'oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l'odeur! Assez; Pas plus:
«Ce n'est pas si doux maintenant qu'avant.
O esprit d'amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n'y entre,
De quelle validité et de quelle hauteur soe'er,
Mais tombe dans l'abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
F15 = 0.628123467270
Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
GRANTS = NULL
MYFIELD1 = NULL
MYFIELD2 = NULL
Row No = 2
TABLEKEY = 2
F1 = 199
F2 = 0.314000010490
F3 = 0.314123456780
F4 = 101.314
F5 = 101.99
F6 = 25/12/2007
F7 = 25/12/2007 12:30:29.130
F8 = XX (Charset = UTF8 Codepage = 65001)
F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
F10 = (blob), Length = 100
F11 = 9223372036854775807
F12 = 65566
F13 = 12:30:45.000
F14 (Charset = UTF8 Codepage = 65001)
If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o'er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
'Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe'er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l'amour, continuez à jouer;
Donnez-m'en un excès, que, surexcité,
L'appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m'est venu à l'oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l'odeur! Assez; Pas plus:
«Ce n'est pas si doux maintenant qu'avant.
O esprit d'amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n'y entre,
De quelle validité et de quelle hauteur soe'er,
Mais tombe dans l'abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
F15 = 0.628123467270
Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
GRANTS = NULL
MYFIELD1 = My Field (Charset = UTF8 Codepage = 65001)
MYFIELD2 = MY Field (Charset = UTF8 Codepage = 65001)
Rows printed = 2
Delete a record
Journal Entry Made
Journal Entry at 2023/06/17 15:06:19.3050:
Type = Query
Attachment ID = 2
Session ID = 1
Transaction ID = 13
Query Text = "Delete From IBXTEST A Where A.TABLEKEY = 1"
Print Dataset for Dataset29
Row No = 1
TABLEKEY = 2
F1 = 199
F2 = 0.314000010490
F3 = 0.314123456780
F4 = 101.314
F5 = 101.99
F6 = 25/12/2007
F7 = 25/12/2007 12:30:29.130
F8 = XX (Charset = UTF8 Codepage = 65001)
F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
F10 = (blob), Length = 100
F11 = 9223372036854775807
F12 = 65566
F13 = 12:30:45.000
F14 (Charset = UTF8 Codepage = 65001)
If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o'er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
'Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe'er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l'amour, continuez à jouer;
Donnez-m'en un excès, que, surexcité,
L'appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m'est venu à l'oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l'odeur! Assez; Pas plus:
«Ce n'est pas si doux maintenant qu'avant.
O esprit d'amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n'y entre,
De quelle validité et de quelle hauteur soe'er,
Mais tombe dans l'abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
F15 = 0.628123467270
Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
GRANTS = NULL
MYFIELD1 = My Field (Charset = UTF8 Codepage = 65001)
MYFIELD2 = MY Field (Charset = UTF8 Codepage = 65001)
Rows printed = 1
Rollback
Journal Entry Made
Journal Entry at 2023/06/17 15:06:19.4150:
Type = Rollback
Attachment ID = 2
Session ID = 1
Transaction ID = 13
Journal Entry Made
Journal Entry at 2023/06/17 15:06:19.4160:
Type = Transaction Start
Attachment ID = 2
Session ID = 1
Transaction ID = 14
Transaction Name = "{78B089E6-579A-4C7F-9FAD-AFE448815F17}"
TPB = [isc_tpb_concurrency,isc_tpb_wait,isc_tpb_write]
Default Completion = TACommit
Print Dataset for Dataset29
Row No = 1
TABLEKEY = 1
F1 = 2
F2 = 0.314000010490
F3 = 0.314123456780
F4 = 101.314
F5 = 101.99
F6 = 25/12/2007
F7 = 25/12/2007 12:30:29.130
F8 = XX (Charset = UTF8 Codepage = 65001)
F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
F10 = (blob), Length = 100
F11 = 9223372036854775807
F12 = 65566
F13 = 12:30:45.000
F14 (Charset = UTF8 Codepage = 65001)
If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o'er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
'Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe'er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l'amour, continuez à jouer;
Donnez-m'en un excès, que, surexcité,
L'appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m'est venu à l'oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l'odeur! Assez; Pas plus:
«Ce n'est pas si doux maintenant qu'avant.
O esprit d'amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n'y entre,
De quelle validité et de quelle hauteur soe'er,
Mais tombe dans l'abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
F15 = 0.628123467270
Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
GRANTS = NULL
MYFIELD1 = NULL
MYFIELD2 = NULL
Row No = 2
TABLEKEY = 2
F1 = 199
F2 = 0.314000010490
F3 = 0.314123456780
F4 = 101.314
F5 = 101.99
F6 = 25/12/2007
F7 = 25/12/2007 12:30:29.130
F8 = XX (Charset = UTF8 Codepage = 65001)
F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
F10 = (blob), Length = 100
F11 = 9223372036854775807
F12 = 65566
F13 = 12:30:45.000
F14 (Charset = UTF8 Codepage = 65001)
If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o'er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
'Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe'er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l'amour, continuez à jouer;
Donnez-m'en un excès, que, surexcité,
L'appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m'est venu à l'oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l'odeur! Assez; Pas plus:
«Ce n'est pas si doux maintenant qu'avant.
O esprit d'amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n'y entre,
De quelle validité et de quelle hauteur soe'er,
Mais tombe dans l'abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
F15 = 0.628123467270
Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
GRANTS = NULL
MYFIELD1 = My Field (Charset = UTF8 Codepage = 65001)
MYFIELD2 = MY Field (Charset = UTF8 Codepage = 65001)
Rows printed = 2
Commit Retaining
Journal Entry Made
Journal Entry at 2023/06/17 15:06:19.7000:
Type = Query
Attachment ID = 2
Session ID = 1
Transaction ID = 14
Query Text = "Insert Into IBXTEST(TABLEKEY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, "f12", F13, F14, MyArray, GRANTS) Values(3, 2, 0.314, 0.31412345678, 101.314, 101.99, '2007-12-25', '2007-12-25 12:30:29.1300','XX', 'The Quick Brown Fox jumps over the lazy dog',
FFD8FFE000104A46494600010101004800480000FFE11E0545786966000049492A00080000000C00
0E010200200000009E0000000F01020014000000BE0000001001020008000000D200000012010300
01000000010000001A01050001000000DA000000
, 9223372036854775807, 65566, '12:30:45.0000', 'If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o''er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
''Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe''er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l''amour, continuez à jouer;
Donnez-m''en un excès, que, surexcité,
L''appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m''est venu à l''oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l''odeur! Assez; Pas plus:
«Ce n''est pas si doux maintenant qu''avant.
O esprit d''amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n''y entre,
De quelle validité et de quelle hauteur soe''er,
Mais tombe dans l''abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
',
100
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
, NULL) Returning MyArray, F15"
Journal Entry Made
Journal Entry at 2023/06/17 15:06:19.7160:
Type = Commit Retaining
Attachment ID = 2
Session ID = 1
Transaction ID = 16
Old Transaction ID = 14
Print Dataset for Dataset29
Row No = 1
TABLEKEY = 1
F1 = 2
F2 = 0.314000010490
F3 = 0.314123456780
F4 = 101.314
F5 = 101.99
F6 = 25/12/2007
F7 = 25/12/2007 12:30:29.130
F8 = XX (Charset = UTF8 Codepage = 65001)
F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
F10 = (blob), Length = 100
F11 = 9223372036854775807
F12 = 65566
F13 = 12:30:45.000
F14 (Charset = UTF8 Codepage = 65001)
If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o'er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
'Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe'er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l'amour, continuez à jouer;
Donnez-m'en un excès, que, surexcité,
L'appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m'est venu à l'oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l'odeur! Assez; Pas plus:
«Ce n'est pas si doux maintenant qu'avant.
O esprit d'amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n'y entre,
De quelle validité et de quelle hauteur soe'er,
Mais tombe dans l'abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
F15 = 0.628123467270
Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
GRANTS = NULL
MYFIELD1 = NULL
MYFIELD2 = NULL
Row No = 2
TABLEKEY = 2
F1 = 199
F2 = 0.314000010490
F3 = 0.314123456780
F4 = 101.314
F5 = 101.99
F6 = 25/12/2007
F7 = 25/12/2007 12:30:29.130
F8 = XX (Charset = UTF8 Codepage = 65001)
F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
F10 = (blob), Length = 100
F11 = 9223372036854775807
F12 = 65566
F13 = 12:30:45.000
F14 (Charset = UTF8 Codepage = 65001)
If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o'er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
'Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe'er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l'amour, continuez à jouer;
Donnez-m'en un excès, que, surexcité,
L'appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m'est venu à l'oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l'odeur! Assez; Pas plus:
«Ce n'est pas si doux maintenant qu'avant.
O esprit d'amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n'y entre,
De quelle validité et de quelle hauteur soe'er,
Mais tombe dans l'abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
F15 = 0.628123467270
Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
GRANTS = NULL
MYFIELD1 = My Field (Charset = UTF8 Codepage = 65001)
MYFIELD2 = MY Field (Charset = UTF8 Codepage = 65001)
Row No = 3
TABLEKEY = 3
F1 = 2
F2 = 0.314000010490
F3 = 0.314123456780
F4 = 101.314
F5 = 101.99
F6 = 25/12/2007
F7 = 25/12/2007 12:30:29.130
F8 = XX (Charset = UTF8 Codepage = 65001)
F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
F10 = (blob), Length = 100
F11 = 9223372036854775807
F12 = 65566
F13 = 12:30:45.000
F14 (Charset = UTF8 Codepage = 65001)
If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o'er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
'Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe'er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l'amour, continuez à jouer;
Donnez-m'en un excès, que, surexcité,
L'appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m'est venu à l'oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l'odeur! Assez; Pas plus:
«Ce n'est pas si doux maintenant qu'avant.
O esprit d'amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n'y entre,
De quelle validité et de quelle hauteur soe'er,
Mais tombe dans l'abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
F15 = 0.628123467270
Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
GRANTS = NULL
MYFIELD1 = NULL
MYFIELD2 = NULL
Rows printed = 3
Commit
Journal Entry Made
Journal Entry at 2023/06/17 15:06:20.0690:
Type = Commit
Attachment ID = 2
Session ID = 1
Transaction ID = 16
Journal Entry Made
Journal Entry at 2023/06/17 15:06:20.0730:
Type = Transaction Start
Attachment ID = 2
Session ID = 1
Transaction ID = 17
Transaction Name = "{78B089E6-579A-4C7F-9FAD-AFE448815F17}"
TPB = [isc_tpb_concurrency,isc_tpb_wait,isc_tpb_write]
Default Completion = TACommit
Print Dataset for Dataset29
Row No = 1
TABLEKEY = 1
F1 = 2
F2 = 0.314000010490
F3 = 0.314123456780
F4 = 101.314
F5 = 101.99
F6 = 25/12/2007
F7 = 25/12/2007 12:30:29.130
F8 = XX (Charset = UTF8 Codepage = 65001)
F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
F10 = (blob), Length = 100
F11 = 9223372036854775807
F12 = 65566
F13 = 12:30:45.000
F14 (Charset = UTF8 Codepage = 65001)
If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o'er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
'Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe'er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l'amour, continuez à jouer;
Donnez-m'en un excès, que, surexcité,
L'appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m'est venu à l'oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l'odeur! Assez; Pas plus:
«Ce n'est pas si doux maintenant qu'avant.
O esprit d'amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n'y entre,
De quelle validité et de quelle hauteur soe'er,
Mais tombe dans l'abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
F15 = 0.628123467270
Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
GRANTS = NULL
MYFIELD1 = NULL
MYFIELD2 = NULL
Row No = 2
TABLEKEY = 2
F1 = 199
F2 = 0.314000010490
F3 = 0.314123456780
F4 = 101.314
F5 = 101.99
F6 = 25/12/2007
F7 = 25/12/2007 12:30:29.130
F8 = XX (Charset = UTF8 Codepage = 65001)
F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
F10 = (blob), Length = 100
F11 = 9223372036854775807
F12 = 65566
F13 = 12:30:45.000
F14 (Charset = UTF8 Codepage = 65001)
If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o'er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
'Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe'er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l'amour, continuez à jouer;
Donnez-m'en un excès, que, surexcité,
L'appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m'est venu à l'oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l'odeur! Assez; Pas plus:
«Ce n'est pas si doux maintenant qu'avant.
O esprit d'amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n'y entre,
De quelle validité et de quelle hauteur soe'er,
Mais tombe dans l'abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
F15 = 0.628123467270
Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
GRANTS = NULL
MYFIELD1 = My Field (Charset = UTF8 Codepage = 65001)
MYFIELD2 = MY Field (Charset = UTF8 Codepage = 65001)
Row No = 3
TABLEKEY = 3
F1 = 2
F2 = 0.314000010490
F3 = 0.314123456780
F4 = 101.314
F5 = 101.99
F6 = 25/12/2007
F7 = 25/12/2007 12:30:29.130
F8 = XX (Charset = UTF8 Codepage = 65001)
F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
F10 = (blob), Length = 100
F11 = 9223372036854775807
F12 = 65566
F13 = 12:30:45.000
F14 (Charset = UTF8 Codepage = 65001)
If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o'er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
'Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe'er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l'amour, continuez à jouer;
Donnez-m'en un excès, que, surexcité,
L'appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m'est venu à l'oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l'odeur! Assez; Pas plus:
«Ce n'est pas si doux maintenant qu'avant.
O esprit d'amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n'y entre,
De quelle validité et de quelle hauteur soe'er,
Mais tombe dans l'abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
F15 = 0.628123467270
Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
GRANTS = NULL
MYFIELD1 = NULL
MYFIELD2 = NULL
Rows printed = 3
Journal Entry Made
Journal Entry at 2023/06/17 15:06:20.4450:
Type = Rollback
Attachment ID = 2
Session ID = 1
Transaction ID = 17
Journal Table
IBX$SESSIONID = 1
IBX$TRANSACTIONID = 9
IBX$OLDTRANSACTIONID = NULL
IBX$USER = SYSDBA (Charset Id = 4 Codepage = 65001)
IBX$CREATED = 2023/06/17 15:06:18.5810
IBX$SESSIONID = 1
IBX$TRANSACTIONID = 14
IBX$OLDTRANSACTIONID = NULL
IBX$USER = SYSDBA (Charset Id = 4 Codepage = 65001)
IBX$CREATED = 2023/06/17 15:06:19.4160
IBX$SESSIONID = 1
IBX$TRANSACTIONID = 16
IBX$OLDTRANSACTIONID = 14
IBX$USER = SYSDBA (Charset Id = 4 Codepage = 65001)
IBX$CREATED = 2023/06/17 15:06:19.7200
Low Level Journal File Print out
Journal Entries
Journal Entry = jeTransStart(Transaction Start)
Timestamp = 2023/06/17 15:06:18.5830
Attachment ID = 2
Session ID = 1
Transaction ID = 9
Transaction Name = "{78B089E6-579A-4C7F-9FAD-AFE448815F17}"
TPB: Item Count = 3
isc_tpb_concurrency
isc_tpb_wait
isc_tpb_write
Default Completion = TACommit
Journal Entry = jeQuery(Query)
Timestamp = 2023/06/17 15:06:18.6440
Attachment ID = 2
Session ID = 1
Transaction ID = 9
Query = Insert Into IBXTEST(TABLEKEY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, "f12", F13, F14, MyArray, GRANTS) Values(1, 2, 0.314, 0.31412345678, 101.314, 101.99, '2007-12-25', '2007-12-25 12:30:29.1300','XX', 'The Quick Brown Fox jumps over the lazy dog',
FFD8FFE000104A46494600010101004800480000FFE11E0545786966000049492A00080000000C00
0E010200200000009E0000000F01020014000000BE0000001001020008000000D200000012010300
01000000010000001A01050001000000DA000000
, 9223372036854775807, 65566, '12:30:45.0000', 'If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o''er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
''Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe''er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l''amour, continuez à jouer;
Donnez-m''en un excès, que, surexcité,
L''appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m''est venu à l''oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l''odeur! Assez; Pas plus:
«Ce n''est pas si doux maintenant qu''avant.
O esprit d''amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n''y entre,
De quelle validité et de quelle hauteur soe''er,
Mais tombe dans l''abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
',
100
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
, NULL) Returning MyArray, F15
Journal Entry = jeQuery(Query)
Timestamp = 2023/06/17 15:06:18.6680
Attachment ID = 2
Session ID = 1
Transaction ID = 9
Query = Insert Into IBXTEST(TABLEKEY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, "f12", F13, F14, MyArray, GRANTS) Values(2, 2, 0.314, 0.31412345678, 101.314, 101.99, '2007-12-25', '2007-12-25 12:30:29.1300','XX', 'The Quick Brown Fox jumps over the lazy dog',
FFD8FFE000104A46494600010101004800480000FFE11E0545786966000049492A00080000000C00
0E010200200000009E0000000F01020014000000BE0000001001020008000000D200000012010300
01000000010000001A01050001000000DA000000
, 9223372036854775807, 65566, '12:30:45.0000', 'If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o''er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
''Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe''er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l''amour, continuez à jouer;
Donnez-m''en un excès, que, surexcité,
L''appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m''est venu à l''oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l''odeur! Assez; Pas plus:
«Ce n''est pas si doux maintenant qu''avant.
O esprit d''amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n''y entre,
De quelle validité et de quelle hauteur soe''er,
Mais tombe dans l''abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
',
100
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
, NULL) Returning MyArray, F15
Journal Entry = jeQuery(Query)
Timestamp = 2023/06/17 15:06:18.6920
Attachment ID = 2
Session ID = 1
Transaction ID = 9
Query = Update IBXTEST A Set A.F1 = 199, A.F2 = 0.314000010490417, A.F3 = 0.31412345678, A.F4 = 101.314, A.F5 = 101.99, A.F6 = '2007-12-25', A.F7 = '2007-12-25 12:30:29.1300', A.F8 = 'XX', A.F9 = 'The Quick Brown Fox jumps over the lazy dog', A.F10 =
FFD8FFE000104A46494600010101004800480000FFE11E0545786966000049492A00080000000C00
0E010200200000009E0000000F01020014000000BE0000001001020008000000D200000012010300
01000000010000001A01050001000000DA000000
, A.F11 = 9223372036854775807, A."f12" = 65566, A.F13 = '12:30:45.0000', A.F14 = 'If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o''er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
''Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe''er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l''amour, continuez à jouer;
Donnez-m''en un excès, que, surexcité,
L''appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m''est venu à l''oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l''odeur! Assez; Pas plus:
«Ce n''est pas si doux maintenant qu''avant.
O esprit d''amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n''y entre,
De quelle validité et de quelle hauteur soe''er,
Mais tombe dans l''abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
', A.MyArray =
100
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
, A."My Field" = 'My Field', A."MY Field" = 'MY Field', A.GRANTS = NULL Where A.TABLEKEY = 2 RETURNING A.MyArray, A.F15
Journal Entry = jeTransCommit(Commit)
Timestamp = 2023/06/17 15:06:18.7090
Attachment ID = 2
Session ID = 1
Transaction ID = 9
Journal Entry = jeTransStart(Transaction Start)
Timestamp = 2023/06/17 15:06:18.7120
Attachment ID = 2
Session ID = 1
Transaction ID = 11
Transaction Name = "{78B089E6-579A-4C7F-9FAD-AFE448815F17}"
TPB: Item Count = 3
isc_tpb_concurrency
isc_tpb_wait
isc_tpb_write
Default Completion = TACommit
Journal Entry = jeQuery(Query)
Timestamp = 2023/06/17 15:06:18.9700
Attachment ID = 2
Session ID = 1
Transaction ID = 11
Query = Delete From IBXTEST A Where A.TABLEKEY = 1
Journal Entry = jeTransRollbackRet(Rollback Retaining)
Timestamp = 2023/06/17 15:06:19.0790
Attachment ID = 2
Session ID = 1
Transaction ID = 13
Old TransactionID = 11
Journal Entry = jeQuery(Query)
Timestamp = 2023/06/17 15:06:19.3050
Attachment ID = 2
Session ID = 1
Transaction ID = 13
Query = Delete From IBXTEST A Where A.TABLEKEY = 1
Journal Entry = jeTransRollback(Rollback)
Timestamp = 2023/06/17 15:06:19.4150
Attachment ID = 2
Session ID = 1
Transaction ID = 13
Journal Entry = jeTransStart(Transaction Start)
Timestamp = 2023/06/17 15:06:19.4160
Attachment ID = 2
Session ID = 1
Transaction ID = 14
Transaction Name = "{78B089E6-579A-4C7F-9FAD-AFE448815F17}"
TPB: Item Count = 3
isc_tpb_concurrency
isc_tpb_wait
isc_tpb_write
Default Completion = TACommit
Journal Entry = jeQuery(Query)
Timestamp = 2023/06/17 15:06:19.7000
Attachment ID = 2
Session ID = 1
Transaction ID = 14
Query = Insert Into IBXTEST(TABLEKEY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, "f12", F13, F14, MyArray, GRANTS) Values(3, 2, 0.314, 0.31412345678, 101.314, 101.99, '2007-12-25', '2007-12-25 12:30:29.1300','XX', 'The Quick Brown Fox jumps over the lazy dog',
FFD8FFE000104A46494600010101004800480000FFE11E0545786966000049492A00080000000C00
0E010200200000009E0000000F01020014000000BE0000001001020008000000D200000012010300
01000000010000001A01050001000000DA000000
, 9223372036854775807, 65566, '12:30:45.0000', 'If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o''er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
''Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe''er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l''amour, continuez à jouer;
Donnez-m''en un excès, que, surexcité,
L''appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m''est venu à l''oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l''odeur! Assez; Pas plus:
«Ce n''est pas si doux maintenant qu''avant.
O esprit d''amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n''y entre,
De quelle validité et de quelle hauteur soe''er,
Mais tombe dans l''abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
',
100
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
, NULL) Returning MyArray, F15
Journal Entry = jeTransCommitRet(Commit Retaining)
Timestamp = 2023/06/17 15:06:19.7160
Attachment ID = 2
Session ID = 1
Transaction ID = 16
Old TransactionID = 14
Journal Entry = jeTransCommit(Commit)
Timestamp = 2023/06/17 15:06:20.0690
Attachment ID = 2
Session ID = 1
Transaction ID = 16
Journal Entry = jeTransStart(Transaction Start)
Timestamp = 2023/06/17 15:06:20.0730
Attachment ID = 2
Session ID = 1
Transaction ID = 17
Transaction Name = "{78B089E6-579A-4C7F-9FAD-AFE448815F17}"
TPB: Item Count = 3
isc_tpb_concurrency
isc_tpb_wait
isc_tpb_write
Default Completion = TACommit
Journal Entry = jeTransRollback(Rollback)
Timestamp = 2023/06/17 15:06:20.4450
Attachment ID = 2
Session ID = 1
Transaction ID = 17
Print out Journal File using TIBJournal
Journal Entry at 2023/06/17 15:06:18.5830:
Type = Transaction Start
Attachment ID = 2
Session ID = 1
Transaction ID = 9
Transaction Name = "{78B089E6-579A-4C7F-9FAD-AFE448815F17}"
TPB = [isc_tpb_concurrency,isc_tpb_wait,isc_tpb_write]
Default Completion = TACommit
Journal Entry at 2023/06/17 15:06:18.6440:
Type = Query
Attachment ID = 2
Session ID = 1
Transaction ID = 9
Query Text = "Insert Into IBXTEST(TABLEKEY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, "f12", F13, F14, MyArray, GRANTS) Values(1, 2, 0.314, 0.31412345678, 101.314, 101.99, '2007-12-25', '2007-12-25 12:30:29.1300','XX', 'The Quick Brown Fox jumps over the lazy dog',
FFD8FFE000104A46494600010101004800480000FFE11E0545786966000049492A00080000000C00
0E010200200000009E0000000F01020014000000BE0000001001020008000000D200000012010300
01000000010000001A01050001000000DA000000
, 9223372036854775807, 65566, '12:30:45.0000', 'If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o''er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
''Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe''er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l''amour, continuez à jouer;
Donnez-m''en un excès, que, surexcité,
L''appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m''est venu à l''oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l''odeur! Assez; Pas plus:
«Ce n''est pas si doux maintenant qu''avant.
O esprit d''amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n''y entre,
De quelle validité et de quelle hauteur soe''er,
Mais tombe dans l''abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
',
100
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
, NULL) Returning MyArray, F15"
Journal Entry at 2023/06/17 15:06:18.6680:
Type = Query
Attachment ID = 2
Session ID = 1
Transaction ID = 9
Query Text = "Insert Into IBXTEST(TABLEKEY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, "f12", F13, F14, MyArray, GRANTS) Values(2, 2, 0.314, 0.31412345678, 101.314, 101.99, '2007-12-25', '2007-12-25 12:30:29.1300','XX', 'The Quick Brown Fox jumps over the lazy dog',
FFD8FFE000104A46494600010101004800480000FFE11E0545786966000049492A00080000000C00
0E010200200000009E0000000F01020014000000BE0000001001020008000000D200000012010300
01000000010000001A01050001000000DA000000
, 9223372036854775807, 65566, '12:30:45.0000', 'If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o''er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
''Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe''er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l''amour, continuez à jouer;
Donnez-m''en un excès, que, surexcité,
L''appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m''est venu à l''oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l''odeur! Assez; Pas plus:
«Ce n''est pas si doux maintenant qu''avant.
O esprit d''amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n''y entre,
De quelle validité et de quelle hauteur soe''er,
Mais tombe dans l''abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
',
100
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
, NULL) Returning MyArray, F15"
Journal Entry at 2023/06/17 15:06:18.6920:
Type = Query
Attachment ID = 2
Session ID = 1
Transaction ID = 9
Query Text = "Update IBXTEST A Set A.F1 = 199, A.F2 = 0.314000010490417, A.F3 = 0.31412345678, A.F4 = 101.314, A.F5 = 101.99, A.F6 = '2007-12-25', A.F7 = '2007-12-25 12:30:29.1300', A.F8 = 'XX', A.F9 = 'The Quick Brown Fox jumps over the lazy dog', A.F10 =
FFD8FFE000104A46494600010101004800480000FFE11E0545786966000049492A00080000000C00
0E010200200000009E0000000F01020014000000BE0000001001020008000000D200000012010300
01000000010000001A01050001000000DA000000
, A.F11 = 9223372036854775807, A."f12" = 65566, A.F13 = '12:30:45.0000', A.F14 = 'If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o''er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
''Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe''er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l''amour, continuez à jouer;
Donnez-m''en un excès, que, surexcité,
L''appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m''est venu à l''oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l''odeur! Assez; Pas plus:
«Ce n''est pas si doux maintenant qu''avant.
O esprit d''amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n''y entre,
De quelle validité et de quelle hauteur soe''er,
Mais tombe dans l''abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
', A.MyArray =
100
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
, A."My Field" = 'My Field', A."MY Field" = 'MY Field', A.GRANTS = NULL Where A.TABLEKEY = 2 RETURNING A.MyArray, A.F15"
Journal Entry at 2023/06/17 15:06:18.7090:
Type = Commit
Attachment ID = 2
Session ID = 1
Transaction ID = 9
Journal Entry at 2023/06/17 15:06:18.7120:
Type = Transaction Start
Attachment ID = 2
Session ID = 1
Transaction ID = 11
Transaction Name = "{78B089E6-579A-4C7F-9FAD-AFE448815F17}"
TPB = [isc_tpb_concurrency,isc_tpb_wait,isc_tpb_write]
Default Completion = TACommit
Journal Entry at 2023/06/17 15:06:18.9700:
Type = Query
Attachment ID = 2
Session ID = 1
Transaction ID = 11
Query Text = "Delete From IBXTEST A Where A.TABLEKEY = 1"
Journal Entry at 2023/06/17 15:06:19.0790:
Type = Rollback Retaining
Attachment ID = 2
Session ID = 1
Transaction ID = 13
Old Transaction ID = 11
Journal Entry at 2023/06/17 15:06:19.3050:
Type = Query
Attachment ID = 2
Session ID = 1
Transaction ID = 13
Query Text = "Delete From IBXTEST A Where A.TABLEKEY = 1"
Journal Entry at 2023/06/17 15:06:19.4150:
Type = Rollback
Attachment ID = 2
Session ID = 1
Transaction ID = 13
Journal Entry at 2023/06/17 15:06:19.4160:
Type = Transaction Start
Attachment ID = 2
Session ID = 1
Transaction ID = 14
Transaction Name = "{78B089E6-579A-4C7F-9FAD-AFE448815F17}"
TPB = [isc_tpb_concurrency,isc_tpb_wait,isc_tpb_write]
Default Completion = TACommit
Journal Entry at 2023/06/17 15:06:19.7000:
Type = Query
Attachment ID = 2
Session ID = 1
Transaction ID = 14
Query Text = "Insert Into IBXTEST(TABLEKEY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, "f12", F13, F14, MyArray, GRANTS) Values(3, 2, 0.314, 0.31412345678, 101.314, 101.99, '2007-12-25', '2007-12-25 12:30:29.1300','XX', 'The Quick Brown Fox jumps over the lazy dog',
FFD8FFE000104A46494600010101004800480000FFE11E0545786966000049492A00080000000C00
0E010200200000009E0000000F01020014000000BE0000001001020008000000D200000012010300
01000000010000001A01050001000000DA000000
, 9223372036854775807, 65566, '12:30:45.0000', 'If music be the food of love, play on;
Give me excess of it, that, surfeiting,
The appetite may sicken, and so die.
That strain again! it had a dying fall:
O, it came o''er my ear like the sweet south,
That breathes upon a bank of violets,
Stealing and giving odour! Enough; no more:
''Tis not so sweet now as it was before.
O spirit of love! how quick and fresh art thou,
That, notwithstanding thy capacity 10
Receiveth as the sea, nought enters there,
Of what validity and pitch soe''er,
But falls into abatement and low price,
Even in a minute: so full of shapes is fancy
That it alone is high fantastical.
Si la musique est la nourriture de l''amour, continuez à jouer;
Donnez-m''en un excès, que, surexcité,
L''appétit peut devenir malade et ainsi mourir.
Cette souche encore! il a eu une chute mourante:
Oh, ça m''est venu à l''oreille comme le doux sud,
Qui souffle sur une banque de violettes,
Voler et donner de l''odeur! Assez; Pas plus:
«Ce n''est pas si doux maintenant qu''avant.
O esprit d''amour! comme tu es rapide et fraîche,
Que, malgré ta capacité 10
Reçoit comme la mer, rien n''y entre,
De quelle validité et de quelle hauteur soe''er,
Mais tombe dans l''abattement et le prix bas,
Même en une minute: si plein de formes est fantaisie
Que cela seul est fantastique.
',
100
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
, NULL) Returning MyArray, F15"
Journal Entry at 2023/06/17 15:06:19.7160:
Type = Commit Retaining
Attachment ID = 2
Session ID = 1
Transaction ID = 16
Old Transaction ID = 14
Journal Entry at 2023/06/17 15:06:20.0690:
Type = Commit
Attachment ID = 2
Session ID = 1
Transaction ID = 16
Journal Entry at 2023/06/17 15:06:20.0730:
Type = Transaction Start
Attachment ID = 2
Session ID = 1
Transaction ID = 17
Transaction Name = "{78B089E6-579A-4C7F-9FAD-AFE448815F17}"
TPB = [isc_tpb_concurrency,isc_tpb_wait,isc_tpb_write]
Default Completion = TACommit
Journal Entry at 2023/06/17 15:06:20.4450:
Type = Rollback
Attachment ID = 2
Session ID = 1
Transaction ID = 17
Creating Database from resources/Test29.sql
Create Table IBXTest (
TableKey Integer not null,
F1 Smallint,
F2 Float,
F3 Double Precision,
F4 Decimal(9,3),
F5 Decimal(18,4),
F6 Date,
F7 Timestamp,
F8 Char (2),
F9 VarChar(256),
F10 Blob,
F11 BigInt,
"f12" Integer,
F13 Time,
F14 Blob sub_type text,
F15 Double Precision Computed by (F2 + F3),
MyArray Integer [0:16],
"GRANTS" VarChar(20),
"My Field" VarChar(32),
"MY Field" VarChar(32),
Primary Key(TableKey)
);
Create Generator IBXGen;
Comparing original database with restored database
Run diff command returns 256
Output from diff command
216c216
< ALTER SEQUENCE IBXGEN RESTART WITH 3;
---
> ALTER SEQUENCE IBXGEN RESTART WITH 0;
------------------------------------------------------
Test Suite Ends