IBX Test Suite
Copyright MWA Software 2016-2021
Starting Tests
Client API Version = 4.0
Firebird Environment Variable = /opt/firebird/4.0.4
Firebird Bin Directory = /opt/firebird/4.0.4/bin
Firebird Conf Directory = /opt/firebird/4.0.4/
Firebird Client Library Path = /opt/firebird/4.0.4/lib/libfbclient.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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;180 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;180 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;130 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;130 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;140 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;110 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;110 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;110;115 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;110;115 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;120 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;120 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;120 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;120;121 (Charset = UTF8 Codepage = 65001)
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 = 38500
FULL_NAME = Glon, Jacques
DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters / Field Office: France (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;120;123 (Charset = UTF8 Codepage = 65001)
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 = 33000
FULL_NAME = Ferrari, Roberto
DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters / Field Office: Italy (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;120;125 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;621 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;621 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;621 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;621 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;622 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;622 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;622 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;623 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;623 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;623 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;623 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;623 (Charset = UTF8 Codepage = 65001)
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. (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;670 (Charset = UTF8 Codepage = 65001)
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. (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;670 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;670;671 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;670;671 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;670;671 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;670;672 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;670;672 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;900 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;900 (Charset = UTF8 Codepage = 65001)
Rows printed = 42
Current memory = 19,668,016
Delta memory = 17,408
Max memory = 19,785,648
Elapsed time= 0.009 sec
Cpu = 0.000 sec
Buffers = 2048
Reads = 2
Writes = 0
Fetches = 161
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;180 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;180 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;130 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;130 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;140 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;110 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;110 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;110;115 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;110;115 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;120 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;120 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;120 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;120;121 (Charset = UTF8 Codepage = 65001)
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 = 38500
FULL_NAME = Glon, Jacques
DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters / Field Office: France (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;120;123 (Charset = UTF8 Codepage = 65001)
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 = 33000
FULL_NAME = Ferrari, Roberto
DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters / Field Office: Italy (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;120;125 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;621 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;621 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;621 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;621 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;622 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;622 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;622 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;623 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;623 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;623 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;623 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;623 (Charset = UTF8 Codepage = 65001)
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. (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;670 (Charset = UTF8 Codepage = 65001)
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. (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;670 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;670;671 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;670;671 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;670;671 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;670;672 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;670;672 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;900 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;900 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;180 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;130 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;621 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;622 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;120;121 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;622 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;670;672 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;140 (Charset = UTF8 Codepage = 65001)
Rows printed = 1
------------------------------------------------------
Running Test 02: Database Event Handlers and Idle disconnect
Before Connect
Connected to inet://localhost/employee
DPB: Item Count = 3
isc_dpb_user_name = SYSDBA
isc_dpb_password = xxxxxxxx
isc_dpb_lc_ctype = UTF8
Before Disconnect
inet://localhost/employee Disconnected after 5 ms
Before Connect
Connected to inet://localhost/employee
DPB: Item Count = 3
isc_dpb_user_name = SYSDBA
isc_dpb_password = xxxxxxxx
isc_dpb_lc_ctype = UTF8
Before Disconnect
inet://localhost/employee Disconnected after 1984 ms
Idle Timer Expired for Test_Database_02
Database Closed
Transaction Events
Before Connect
Connected to inet://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 0 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 2001 ms
Idle Timer Expired for Test_Transaction_02
Before Disconnect
inet://localhost/employee Disconnected after 2020 ms
SQL Dialect Downgrade test
Before Connect
Connected to inet://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
inet://localhost//tmp/ibx-testsuite/testsuite1.fdb created
Before Disconnect
inet://localhost//tmp/ibx-testsuite/testsuite1.fdb Disconnected after 5 ms
Before Connect
Warning: SQL Dialect Downgrade of inet://localhost//tmp/ibx-testsuite/testsuite1.fdb
Connected to inet://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
inet://localhost//tmp/ibx-testsuite/testsuite1.fdb Disconnected after 4 ms
------------------------------------------------------
Running Test 03: Database Information
Authentication Method = Srp256
Remote Protocol = TCPv4
Attachment SQLDialect = 3
Firebird/Linux/AMD/Intel/x64 (access method), version "LI-V4.0.4.3010 Firebird 4.0"
Firebird/Linux/AMD/Intel/x64 (remote server), version "LI-V4.0.4.3010 Firebird 4.0/tcp (zeus)/P17:CZ"
Firebird/Linux/AMD/Intel/x64 (remote interface), version "LI-V4.0.4.3010 Firebird 4.0/tcp (zeus)/P17:CZ"
on disk structure version 13.0
FB Version: Firebird/Linux/AMD/Intel/x64 (access method), version "LI-V4.0.4.3010 Firebird 4.0", Firebird/Linux/AMD/Intel/x64 (remote server), version "LI-V4.0.4.3010 Firebird 4.0/tcp (zeus)/P17:CZ", Firebird/Linux/AMD/Intel/x64 (remote interface), version "LI-V4.0.4.3010 Firebird 4.0/tcp (zeus)/P17:CZ", on disk structure version 13.0
Firebird Library Pathname = /opt/firebird/4.0.4/lib/libfbclient.so
DB SQLDialect = 3
Allocation = 346
Base Level = 4
DB File Name = /opt/firebird/4.0.4/examples/empbuild/employee.fdb
DB Site Name = zeus
DB Implementation No = 7
Database Created: 08/11/2023 12:11:40
DB Implementation Class = 0
Space is Reserved
ODS Minor Version = 0
ODS Major Version = 13
Page Size = 8192
Version = LI-V6.3.4.3010 Firebird 4.0
Current Memory = 19504688
Forced Writes Enabled
Max Memory = 19638032
Number of Buffers = 2048
Sweep Interval = 20000
User Names: SYSDBA
Fetches = 2080
Marks = 8
Reads = 107
Writes = 2
Pages Free = 311
Pages Used = 35
Transaction Count = 1
Read Idx Count
RDB$FIELDS = 18
RDB$INDICES = 71
RDB$RELATION_FIELDS = 18
RDB$RELATIONS = 25
RDB$SECURITY_CLASSES = 12
RDB$TYPES = 2
RDB$TRIGGERS = 27
RDB$USER_PRIVILEGES = 947
RDB$GENERATORS = 5
RDB$CHARACTER_SETS = 2
RDB$COLLATIONS = 2
RDB$ROLES = 1
Read Seq Count
RDB$PAGES = 98
RDB$DATABASE = 26
RDB$RELATIONS = 65
Database is Read/Write
Hex Dump of Database Page 100:
5 0 0 0 1 0 0 0 0 0 0 0 64 0 0 0 C 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 = inet://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
------------------------------------------------------
Running Test 05: Firebird 4 Data Types
Creating Database from resources/Test05.sql
Create Table IBXTest (
TableKey Integer not null,
F1 Timestamp with Time Zone,
F2 Time with Time Zone,
F3 DecFloat(16),
F4 DecFloat(34),
F5 Numeric (24,6),
F6 INT128,
Primary Key(TableKey)
) SQL SECURITY DEFINER;
ALTER DATABASE SET DEFAULT SQL SECURITY DEFINER;
Create Generator IBXGen;
Extracting Database Schema
SET SQL DIALECT 3;
SET AUTODDL ON;
/* CREATE DATABASE 'inet://localhost//tmp/ibx-testsuite/testsuite1.fdb' PAGE_SIZE 8192
DEFAULT CHARACTER SET UTF8; */
ALTER DATABASE SET DEFAULT SQL SECURITY DEFINER;
/* Table: IBXTEST, Owner: SYSDBA */
CREATE TABLE IBXTEST
(
TABLEKEY INTEGER NOT NULL,
F1 TIMESTAMP WITH TIME ZONE,
F2 TIME WITH TIME ZONE,
F3 DECFLOAT(16),
F4 DECFLOAT(34),
F5 NUMERIC(24,6),
F6 INT128,
PRIMARY KEY (TABLEKEY)
) SQL SECURITY DEFINER;
CREATE SEQUENCE IBXGEN;
/* Comments on System Objects */
/* Grant Roles for this database */
/* Grant permissions for this database */
Add a record
Row No = 1
TABLEKEY = 1
F1 = 11/11/1918 00:11:00.1111 +01:00
F2 = 22:02:10.0050 -08:00
F3 = 12345678912.1200
F4 = 64100000000.011
F5 = 123456123456123456123456.123456
F6 = 123456789123456789
Rows printed = 1
F1 in UTC Time = 10/11/1918 23:11:00.111
F2 in UTC Time = 06:02:10.0050
TZ Text Option = GMT
Row No = 1
TABLEKEY = 1
F1 = 10/11/1918 23:11:00.1111
F2 = 06:02:10.0050
F3 = 12345678912.1200
F4 = 64100000000.011
F5 = 123456123456123456123456.123456
F6 = 123456789123456789
Rows printed = 1
TZ Text Option = Original format
Row No = 1
TABLEKEY = 1
F1 = 11/11/1918 00:11:00.1111 CET
F2 = 22:02:10.0050 America/Los_Angeles
F3 = 12345678912.1200
F4 = 64100000000.011
F5 = 123456123456123456123456.123456
F6 = 123456789123456789
Rows printed = 1
TZ Text Option = offset with Default time zone date of 2020/7/1
Row No = 1
TABLEKEY = 1
F1 = 11/11/1918 00:11:00.1111 +01:00
F2 = 23:02:10.0050 -07:00
F3 = 12345678912.1200
F4 = 64100000000.011
F5 = 123456123456123456123456.123456
F6 = 123456789123456789
Rows printed = 1
Update a record with a non default time zone date
Row No = 1
TABLEKEY = 1
F1 = 11/11/1918 00:11:00.1111 +01:00
F2 = 11:02:10.0150 -05:00
F3 = 12345678912.1200
F4 = 64100000000.011
F5 = 123456123456123456123456.123456
F6 = 123456789123456789
Rows printed = 1
Restore original default time zone date
Row No = 1
TABLEKEY = 1
F1 = 11/11/1918 00:11:00.1111 +01:00
F2 = 10:02:10.0150 -05:00
F3 = 12345678912.1200
F4 = 64100000000.011
F5 = 123456123456123456123456.123456
F6 = 123456789123456789
Rows printed = 1
------------------------------------------------------
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 = 4
Not Null
Size = 1024
SQLType =SQL_VARYING
sub type = 0
Table =
Owner =
Column Name =
Alias Name = DEPT_KEY_PATH
Field Name = DEPT_KEY_PATH
Scale = 0
Charset id = 4
Not Null
Size = 256
Select Expression
-> Refetch
-> Sort (record length: 1612, key length: 8)
-> Nested Loop Join (inner)
-> Recursion
-> Filter
-> Table "DEPARTMENT" as "DEPTS DEPARTMENT" Access By ID
-> Bitmap
-> Index "RDB$FOREIGN6" Range Scan (full match)
-> Filter
-> Table "DEPARTMENT" as "DEPTS D" Access By ID
-> Bitmap
-> Index "RDB$FOREIGN6" Range Scan (full match)
-> Filter
-> Table "EMPLOYEE" as "A" Access By ID
-> Bitmap
-> Index "RDB$FOREIGN8" Range Scan (full match)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;600 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;621 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;100;130 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;100;180 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;622 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;100;130 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;900 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;623 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;600;670;671 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;600;670;671 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;100;120 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;623 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;100;110 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;100;120 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;100;120 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;623 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;621 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;900 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;100;180 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;100;110 (Charset Id = 4 Codepage = 65001)
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. (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;600;670 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;622 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;100;140 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;621 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;100 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;600;670;672 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000 (Charset Id = 4 Codepage = 65001)
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. (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;600;670 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;600 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;100;110;115 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;600;670;671 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;623 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;100;110;115 (Charset Id = 4 Codepage = 65001)
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 = 33,000.00
FULL_NAME = Ferrari, Roberto
DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters / Field Office: Italy (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;100;120;125 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;100 (Charset Id = 4 Codepage = 65001)
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 = 38,500.00
FULL_NAME = Glon, Jacques
DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters / Field Office: France (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;100;120;123 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;623 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;621 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;100;120;121 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;600;670;672 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;622 (Charset Id = 4 Codepage = 65001)
Current memory = 19,669,424
Delta memory = 19,360
Max memory = 19,761,888
Elapsed time= 0.015 sec
Cpu = 0.010 sec
Buffers = 2048
Reads = 2
Writes = 0
Fetches = 203
------------------------------------------------------
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;100;180 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;100;130 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;100;130 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;600 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;621 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;622 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;623 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;600;670;671 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;600;670;671 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;900 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;100;180 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;100;130 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;600 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;621 (Charset Id = 4 Codepage = 65001)
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 (Charset Id = 4 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;622 (Charset Id = 4 Codepage = 65001)
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
-REASSIGN_SALES
-Reassign the sales records before deleting this employee.
-At procedure 'DELETE_EMPLOYEE' line: 19, col: 3
Scollable Cursors
Do Fetch Next:
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
Do Fetch Last:
Test Completed with Error: Engine Code: 335544378
feature is not supported
------------------------------------------------------
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;120 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;621 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;130 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;180 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;622 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;130 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;900 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;623 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;670;671 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;670;671 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;120 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;600;620;623 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;110 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;120 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000;100;120 (Charset = UTF8 Codepage = 65001)
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 'inet://localhost/employee' PAGE_SIZE 8192
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 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 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
^
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,
* 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;
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 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;
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
^
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.sql
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: ITEST, Owner: SYSDBA */
CREATE TABLE ITEST
(
"KEY" INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 0) NOT NULL,
SOMETEXT VARCHAR(64),
PRIMARY KEY ("KEY")
);
/* Table: ITEST2, Owner: SYSDBA */
CREATE TABLE ITEST2
(
"KEY" INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 0 INCREMENT BY 1) NOT NULL,
SOMETEXT VARCHAR(64),
PRIMARY KEY ("KEY")
);
/* 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: ITEST */
INSERT INTO ITEST ("KEY",SOMETEXT) VALUES(1,'Testing');
INSERT INTO ITEST ("KEY",SOMETEXT) VALUES(3,'Another');
INSERT INTO ITEST ("KEY",SOMETEXT) VALUES(4,'Test');
INSERT INTO ITEST ("KEY",SOMETEXT) VALUES(7,'Test');
INSERT INTO ITEST ("KEY",SOMETEXT) VALUES(8,'Again');
INSERT INTO ITEST ("KEY",SOMETEXT) VALUES(9,'Test');
INSERT INTO ITEST ("KEY",SOMETEXT) VALUES(10,' 2');
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,
"Payment Status"
) 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,
CASE When A.SALARY > 10000 then 'higher paid' else 'lower paid' End
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 ^;
/* Package Definitions */
CREATE PACKAGE FB$OUT
AS
begin
procedure enable;
procedure disable;
procedure put_line (line fb$out_type);
procedure clear;
procedure get_lines returns (lines fb$out_type);
end
^
CREATE PACKAGE SELECT$TEST
AS
Begin
Procedure ShowItems(IPARAM Integer) RETURNS (OutParam integer);
End
^
SET TERM ;^
COMMIT WORK;
SET AUTODDL ON;
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 EMPLOYEE_PAY_STATUS
(
EMP_NUM SMALLINT
)
RETURNS
(
PAY_STATUS VARCHAR(6) CHARACTER SET NONE,
SALARY NUMERIC(10,2)
)
AS
BEGIN 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;
COMMIT WORK;
SET AUTODDL OFF;
SET TERM ^;
/* Stored Function declarations */
CREATE FUNCTION F (X INTEGER)
RETURNS INTEGER
AS BEGIN END
^
SET TERM ;^
COMMIT WORK;
SET AUTODDL ON;
SET TERM ^;
/* Triggers only will work for SQL triggers */
CREATE TRIGGER "After Create Database"
ACTIVE ON CONNECT POSITION 0
as
begin
End
^
CREATE TRIGGER "BEFORE CREATE TABLE"
ACTIVE BEFORE CREATE TABLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE TABLE"
ACTIVE AFTER CREATE TABLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER TABLE"
ACTIVE BEFORE ALTER TABLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER TABLE"
ACTIVE AFTER ALTER TABLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE/Alter TABLE"
ACTIVE AFTER CREATE TABLE OR ALTER TABLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP TABLE"
ACTIVE BEFORE Drop TABLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP TABLE"
ACTIVE AFTER Drop TABLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE PROCEDURE"
ACTIVE BEFORE CREATE PROCEDURE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE PROCEDURE"
ACTIVE AFTER CREATE PROCEDURE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER PROCEDURE"
ACTIVE BEFORE ALTER PROCEDURE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER PROCEDURE"
ACTIVE AFTER ALTER PROCEDURE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP PROCEDURE"
ACTIVE BEFORE Drop PROCEDURE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP PROCEDURE"
ACTIVE AFTER Drop PROCEDURE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE FUNCTION"
ACTIVE BEFORE CREATE FUNCTION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE FUNCTION"
ACTIVE AFTER CREATE FUNCTION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER FUNCTION"
ACTIVE BEFORE ALTER FUNCTION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER FUNCTION"
ACTIVE AFTER ALTER FUNCTION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP FUNCTION"
ACTIVE BEFORE Drop FUNCTION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP FUNCTION"
ACTIVE AFTER Drop FUNCTION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE TRIGGER"
ACTIVE BEFORE CREATE TRIGGER POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE TRIGGER"
ACTIVE AFTER CREATE TRIGGER POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER TRIGGER"
ACTIVE BEFORE ALTER TRIGGER POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER TRIGGER"
ACTIVE AFTER ALTER TRIGGER POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP TRIGGER"
ACTIVE BEFORE Drop TRIGGER POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP TRIGGER"
ACTIVE AFTER Drop TRIGGER POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE EXCEPTION"
ACTIVE BEFORE CREATE EXCEPTION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE EXCEPTION"
ACTIVE AFTER CREATE EXCEPTION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER EXCEPTION"
ACTIVE BEFORE ALTER EXCEPTION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER EXCEPTION"
ACTIVE AFTER ALTER EXCEPTION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP EXCEPTION"
ACTIVE BEFORE Drop EXCEPTION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP EXCEPTION"
ACTIVE AFTER Drop EXCEPTION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE VIEW"
ACTIVE BEFORE CREATE VIEW POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE VIEW"
ACTIVE AFTER CREATE VIEW POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER VIEW"
ACTIVE BEFORE ALTER VIEW POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER VIEW"
ACTIVE AFTER ALTER VIEW POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP VIEW"
ACTIVE BEFORE Drop VIEW POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP VIEW"
ACTIVE AFTER Drop VIEW POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE DOMAIN"
ACTIVE BEFORE CREATE DOMAIN POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE DOMAIN"
ACTIVE AFTER CREATE DOMAIN POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER DOMAIN"
ACTIVE BEFORE ALTER DOMAIN POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER DOMAIN"
ACTIVE AFTER ALTER DOMAIN POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP DOMAIN"
ACTIVE BEFORE Drop DOMAIN POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP DOMAIN"
ACTIVE AFTER Drop DOMAIN POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE ROLE"
ACTIVE BEFORE CREATE ROLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE ROLE"
ACTIVE AFTER CREATE ROLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER ROLE"
ACTIVE BEFORE ALTER ROLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER ROLE"
ACTIVE AFTER ALTER ROLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP ROLE"
ACTIVE BEFORE Drop ROLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP ROLE"
ACTIVE AFTER Drop ROLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE INDEX"
ACTIVE BEFORE CREATE INDEX POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE INDEX"
ACTIVE AFTER CREATE INDEX POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER INDEX"
ACTIVE BEFORE ALTER INDEX POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER INDEX"
ACTIVE AFTER ALTER INDEX POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP INDEX"
ACTIVE BEFORE Drop INDEX POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP INDEX"
ACTIVE AFTER Drop INDEX POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE SEQUENCE"
ACTIVE BEFORE CREATE SEQUENCE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE SEQUENCE"
ACTIVE AFTER CREATE SEQUENCE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER SEQUENCE"
ACTIVE BEFORE ALTER SEQUENCE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER SEQUENCE"
ACTIVE AFTER ALTER SEQUENCE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP SEQUENCE"
ACTIVE BEFORE Drop SEQUENCE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP SEQUENCE"
ACTIVE AFTER Drop SEQUENCE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE USER"
ACTIVE BEFORE CREATE USER POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE USER"
ACTIVE AFTER CREATE USER POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER USER"
ACTIVE BEFORE ALTER USER POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER USER"
ACTIVE AFTER ALTER USER POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP USER"
ACTIVE BEFORE Drop USER POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP USER"
ACTIVE AFTER Drop USER POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE COLLATION"
ACTIVE BEFORE CREATE COLLATION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE COLLATION"
ACTIVE AFTER CREATE COLLATION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP COLLATION"
ACTIVE BEFORE Drop COLLATION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP COLLATION"
ACTIVE AFTER Drop COLLATION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER CHARACTER SET"
ACTIVE BEFORE ALTER CHARACTER SET POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER CHARACTER SET"
ACTIVE AFTER ALTER CHARACTER SET POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE PACKAGE"
ACTIVE BEFORE CREATE PACKAGE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE PACKAGE"
ACTIVE AFTER CREATE PACKAGE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER PACKAGE"
ACTIVE BEFORE ALTER PACKAGE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER PACKAGE"
ACTIVE AFTER ALTER PACKAGE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP PACKAGE"
ACTIVE BEFORE Drop PACKAGE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP PACKAGE"
ACTIVE AFTER Drop PACKAGE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE PACKAGE BODY"
ACTIVE BEFORE CREATE PACKAGE BODY POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE PACKAGE BODY"
ACTIVE AFTER CREATE PACKAGE BODY POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP PACKAGE BODY"
ACTIVE BEFORE Drop PACKAGE BODY POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP PACKAGE BODY"
ACTIVE AFTER Drop PACKAGE BODY POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ANY DDL STATEMENT"
ACTIVE BEFORE ANY DDL STATEMENT POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ANY DDL STATEMENT"
ACTIVE AFTER ANY DDL STATEMENT POSITION 0
AS BEGIN END
^
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 ^;
/* Package Definitions */
CREATE PACKAGE BODY FB$OUT
AS
begin
procedure enable
as
begin
rdb$set_context('USER_SESSION', 'fb$out.enabled', '1');
end
procedure disable
as
begin
rdb$set_context('USER_SESSION', 'fb$out.enabled', null);
end
procedure put_line (line fb$out_type)
as
begin
if (rdb$get_context('USER_SESSION', 'fb$out.enabled') = '1') then
begin
in autonomous transaction do
begin
insert into fb$out_table (line_num, content)
values (next value for fb$out_seq, :line);
end
end
end
procedure clear
as
begin
in autonomous transaction do
delete from fb$out_table;
end
procedure get_lines returns (lines fb$out_type)
as
declare line fb$out_type;
begin
lines = '';
in autonomous transaction do
begin
for select content from fb$out_table order by line_num into line
do
begin
if (octet_length(lines) > 0) then
lines = lines || ascii_char(13) || ascii_char(10);
lines = lines || :line;
end
end
execute procedure clear;
end
end
^
CREATE PACKAGE BODY SELECT$TEST
AS
Begin
Procedure ShowItems(IPARAM Integer) RETURNS (OutParam integer)
As
Begin
SUSPEND;
End
End
^
SET TERM ;^
COMMIT WORK;
SET AUTODDL ON;
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 EMPLOYEE_PAY_STATUS
(
EMP_NUM SMALLINT
)
RETURNS
(
PAY_STATUS VARCHAR(6) CHARACTER SET NONE,
SALARY NUMERIC(10,2)
)
AS
Declare aCursor CURSOR FOR (
Select EMP_NO,SALARY From EMPLOYEE WHERE LAST_NAME = 'unknown');
BEGIN
Select SALARY, Case
When SALARY > 10000 and SALARY <= 100000 then 'higher'
When SALARY > 100000 then 'gross'
else 'lower' End
From employee
WHERE emp_no = :EMP_NUM
into :SALARY, :PAY_STATUS;
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;
COMMIT WORK;
SET AUTODDL OFF;
SET TERM ^;
/* Stored Function Body */
ALTER FUNCTION F (X INTEGER)
RETURNS INTEGER
AS
BEGIN
RETURN X+1;
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 */
/* Role: TESTROLE, Owner: SYSDBA */
CREATE ROLE TESTROLE SET SYSTEM PRIVILEGES TO CREATE_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 FB$OUT_TABLE TO PACKAGE FB$OUT ;
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 ;
GRANT EXECUTE ON PACKAGE FB$OUT TO USER PUBLIC ;
GRANT CREATE TABLE TO USER BOB ;
GRANT CREATE COLLATION TO USER BOB ;
GRANT CREATE CHARACTER SET TO USER ALICE ;
GRANT CREATE COLLATION TO USER ALICE ;
GRANT CREATE DOMAIN TO USER ALICE ;
GRANT CREATE EXCEPTION TO USER ALICE ;
GRANT CREATE FILTER TO USER ALICE ;
GRANT CREATE FUNCTION TO USER ALICE ;
GRANT CREATE GENERATOR TO USER ALICE ;
GRANT CREATE PACKAGE TO USER ALICE ;
GRANT CREATE PROCEDURE TO USER ALICE ;
GRANT CREATE ROLE TO USER ALICE ;
GRANT CREATE TABLE TO USER ALICE ;
GRANT CREATE VIEW TO USER ALICE ;
GRANT DROP ANY TABLE TO USER ALICE ;
GRANT ALTER ANY VIEW TO USER ALICE ;
GRANT DROP ANY GENERATOR TO USER ALICE ;
Extracting Database Schema and Data
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: ITEST, Owner: SYSDBA */
CREATE TABLE ITEST
(
"KEY" INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 0 INCREMENT BY 1) NOT NULL,
SOMETEXT VARCHAR(64),
PRIMARY KEY ("KEY")
);
/* Table: ITEST2, Owner: SYSDBA */
CREATE TABLE ITEST2
(
"KEY" INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 0 INCREMENT BY 1) NOT NULL,
SOMETEXT VARCHAR(64),
PRIMARY KEY ("KEY")
);
/* 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: ITEST */
INSERT INTO ITEST ("KEY",SOMETEXT) VALUES(1,'Testing');
INSERT INTO ITEST ("KEY",SOMETEXT) VALUES(3,'Another');
INSERT INTO ITEST ("KEY",SOMETEXT) VALUES(4,'Test');
INSERT INTO ITEST ("KEY",SOMETEXT) VALUES(7,'Test');
INSERT INTO ITEST ("KEY",SOMETEXT) VALUES(8,'Again');
INSERT INTO ITEST ("KEY",SOMETEXT) VALUES(9,'Test');
INSERT INTO ITEST ("KEY",SOMETEXT) VALUES(10,' 2');
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,
"Payment Status"
) 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,
CASE When A.SALARY > 10000 then 'higher paid' else 'lower paid' End
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 ^;
/* Package Definitions */
CREATE PACKAGE FB$OUT
AS
begin
procedure enable;
procedure disable;
procedure put_line (line fb$out_type);
procedure clear;
procedure get_lines returns (lines fb$out_type);
end
^
CREATE PACKAGE SELECT$TEST
AS
Begin
Procedure ShowItems(IPARAM Integer) RETURNS (OutParam integer);
End
^
SET TERM ;^
COMMIT WORK;
SET AUTODDL ON;
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 EMPLOYEE_PAY_STATUS
(
EMP_NUM SMALLINT
)
RETURNS
(
PAY_STATUS VARCHAR(6) CHARACTER SET NONE,
SALARY NUMERIC(10,2)
)
AS BEGIN 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;
COMMIT WORK;
SET AUTODDL OFF;
SET TERM ^;
/* Stored Function declarations */
CREATE FUNCTION F (X INTEGER)
RETURNS INTEGER
AS BEGIN END
^
SET TERM ;^
COMMIT WORK;
SET AUTODDL ON;
SET TERM ^;
/* Triggers only will work for SQL triggers */
CREATE TRIGGER "After Create Database"
ACTIVE ON CONNECT POSITION 0
as
begin
End
^
CREATE TRIGGER "BEFORE CREATE TABLE"
ACTIVE BEFORE CREATE TABLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE TABLE"
ACTIVE AFTER CREATE TABLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER TABLE"
ACTIVE BEFORE ALTER TABLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER TABLE"
ACTIVE AFTER ALTER TABLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE/Alter TABLE"
ACTIVE AFTER CREATE TABLE OR ALTER TABLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP TABLE"
ACTIVE BEFORE Drop TABLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP TABLE"
ACTIVE AFTER Drop TABLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE PROCEDURE"
ACTIVE BEFORE CREATE PROCEDURE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE PROCEDURE"
ACTIVE AFTER CREATE PROCEDURE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER PROCEDURE"
ACTIVE BEFORE ALTER PROCEDURE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER PROCEDURE"
ACTIVE AFTER ALTER PROCEDURE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP PROCEDURE"
ACTIVE BEFORE Drop PROCEDURE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP PROCEDURE"
ACTIVE AFTER Drop PROCEDURE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE FUNCTION"
ACTIVE BEFORE CREATE FUNCTION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE FUNCTION"
ACTIVE AFTER CREATE FUNCTION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER FUNCTION"
ACTIVE BEFORE ALTER FUNCTION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER FUNCTION"
ACTIVE AFTER ALTER FUNCTION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP FUNCTION"
ACTIVE BEFORE Drop FUNCTION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP FUNCTION"
ACTIVE AFTER Drop FUNCTION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE TRIGGER"
ACTIVE BEFORE CREATE TRIGGER POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE TRIGGER"
ACTIVE AFTER CREATE TRIGGER POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER TRIGGER"
ACTIVE BEFORE ALTER TRIGGER POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER TRIGGER"
ACTIVE AFTER ALTER TRIGGER POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP TRIGGER"
ACTIVE BEFORE Drop TRIGGER POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP TRIGGER"
ACTIVE AFTER Drop TRIGGER POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE EXCEPTION"
ACTIVE BEFORE CREATE EXCEPTION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE EXCEPTION"
ACTIVE AFTER CREATE EXCEPTION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER EXCEPTION"
ACTIVE BEFORE ALTER EXCEPTION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER EXCEPTION"
ACTIVE AFTER ALTER EXCEPTION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP EXCEPTION"
ACTIVE BEFORE Drop EXCEPTION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP EXCEPTION"
ACTIVE AFTER Drop EXCEPTION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE VIEW"
ACTIVE BEFORE CREATE VIEW POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE VIEW"
ACTIVE AFTER CREATE VIEW POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER VIEW"
ACTIVE BEFORE ALTER VIEW POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER VIEW"
ACTIVE AFTER ALTER VIEW POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP VIEW"
ACTIVE BEFORE Drop VIEW POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP VIEW"
ACTIVE AFTER Drop VIEW POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE DOMAIN"
ACTIVE BEFORE CREATE DOMAIN POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE DOMAIN"
ACTIVE AFTER CREATE DOMAIN POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER DOMAIN"
ACTIVE BEFORE ALTER DOMAIN POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER DOMAIN"
ACTIVE AFTER ALTER DOMAIN POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP DOMAIN"
ACTIVE BEFORE Drop DOMAIN POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP DOMAIN"
ACTIVE AFTER Drop DOMAIN POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE ROLE"
ACTIVE BEFORE CREATE ROLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE ROLE"
ACTIVE AFTER CREATE ROLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER ROLE"
ACTIVE BEFORE ALTER ROLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER ROLE"
ACTIVE AFTER ALTER ROLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP ROLE"
ACTIVE BEFORE Drop ROLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP ROLE"
ACTIVE AFTER Drop ROLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE INDEX"
ACTIVE BEFORE CREATE INDEX POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE INDEX"
ACTIVE AFTER CREATE INDEX POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER INDEX"
ACTIVE BEFORE ALTER INDEX POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER INDEX"
ACTIVE AFTER ALTER INDEX POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP INDEX"
ACTIVE BEFORE Drop INDEX POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP INDEX"
ACTIVE AFTER Drop INDEX POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE SEQUENCE"
ACTIVE BEFORE CREATE SEQUENCE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE SEQUENCE"
ACTIVE AFTER CREATE SEQUENCE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER SEQUENCE"
ACTIVE BEFORE ALTER SEQUENCE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER SEQUENCE"
ACTIVE AFTER ALTER SEQUENCE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP SEQUENCE"
ACTIVE BEFORE Drop SEQUENCE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP SEQUENCE"
ACTIVE AFTER Drop SEQUENCE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE USER"
ACTIVE BEFORE CREATE USER POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE USER"
ACTIVE AFTER CREATE USER POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER USER"
ACTIVE BEFORE ALTER USER POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER USER"
ACTIVE AFTER ALTER USER POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP USER"
ACTIVE BEFORE Drop USER POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP USER"
ACTIVE AFTER Drop USER POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE COLLATION"
ACTIVE BEFORE CREATE COLLATION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE COLLATION"
ACTIVE AFTER CREATE COLLATION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP COLLATION"
ACTIVE BEFORE Drop COLLATION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP COLLATION"
ACTIVE AFTER Drop COLLATION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER CHARACTER SET"
ACTIVE BEFORE ALTER CHARACTER SET POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER CHARACTER SET"
ACTIVE AFTER ALTER CHARACTER SET POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE PACKAGE"
ACTIVE BEFORE CREATE PACKAGE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE PACKAGE"
ACTIVE AFTER CREATE PACKAGE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER PACKAGE"
ACTIVE BEFORE ALTER PACKAGE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER PACKAGE"
ACTIVE AFTER ALTER PACKAGE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP PACKAGE"
ACTIVE BEFORE Drop PACKAGE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP PACKAGE"
ACTIVE AFTER Drop PACKAGE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE PACKAGE BODY"
ACTIVE BEFORE CREATE PACKAGE BODY POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE PACKAGE BODY"
ACTIVE AFTER CREATE PACKAGE BODY POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP PACKAGE BODY"
ACTIVE BEFORE Drop PACKAGE BODY POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP PACKAGE BODY"
ACTIVE AFTER Drop PACKAGE BODY POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ANY DDL STATEMENT"
ACTIVE BEFORE ANY DDL STATEMENT POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ANY DDL STATEMENT"
ACTIVE AFTER ANY DDL STATEMENT POSITION 0
AS BEGIN END
^
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 ^;
/* Package Definitions */
CREATE PACKAGE BODY FB$OUT
AS
begin
procedure enable
as
begin
rdb$set_context('USER_SESSION', 'fb$out.enabled', '1');
end
procedure disable
as
begin
rdb$set_context('USER_SESSION', 'fb$out.enabled', null);
end
procedure put_line (line fb$out_type)
as
begin
if (rdb$get_context('USER_SESSION', 'fb$out.enabled') = '1') then
begin
in autonomous transaction do
begin
insert into fb$out_table (line_num, content)
values (next value for fb$out_seq, :line);
end
end
end
procedure clear
as
begin
in autonomous transaction do
delete from fb$out_table;
end
procedure get_lines returns (lines fb$out_type)
as
declare line fb$out_type;
begin
lines = '';
in autonomous transaction do
begin
for select content from fb$out_table order by line_num into line
do
begin
if (octet_length(lines) > 0) then
lines = lines || ascii_char(13) || ascii_char(10);
lines = lines || :line;
end
end
execute procedure clear;
end
end
^
CREATE PACKAGE BODY SELECT$TEST
AS
Begin
Procedure ShowItems(IPARAM Integer) RETURNS (OutParam integer)
As
Begin
SUSPEND;
End
End
^
SET TERM ;^
COMMIT WORK;
SET AUTODDL ON;
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 EMPLOYEE_PAY_STATUS
(
EMP_NUM SMALLINT
)
RETURNS
(
PAY_STATUS VARCHAR(6) CHARACTER SET NONE,
SALARY NUMERIC(10,2)
)
AS
Declare aCursor CURSOR FOR (
Select EMP_NO,SALARY From EMPLOYEE WHERE LAST_NAME = 'unknown');
BEGIN
Select SALARY, Case
When SALARY > 10000 and SALARY <= 100000 then 'higher'
When SALARY > 100000 then 'gross'
else 'lower' End
From employee
WHERE emp_no = :EMP_NUM
into :SALARY, :PAY_STATUS;
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;
COMMIT WORK;
SET AUTODDL OFF;
SET TERM ^;
/* Stored Function Body */
ALTER FUNCTION F (X INTEGER)
RETURNS INTEGER
AS
BEGIN
RETURN X+1;
END
^
SET TERM ;^
COMMIT WORK;
SET AUTODDL ON;
/* Comments on System Objects */
/* Grant Roles for this database */
/* Role: TESTROLE, Owner: SYSDBA */
CREATE ROLE TESTROLE SET SYSTEM PRIVILEGES TO CREATE_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(LAST_NAME,FIRST_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 FB$OUT_TABLE TO PACKAGE FB$OUT ;
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 ;
GRANT EXECUTE ON PACKAGE FB$OUT TO USER PUBLIC ;
GRANT CREATE TABLE TO USER BOB ;
GRANT CREATE COLLATION TO USER BOB ;
GRANT CREATE CHARACTER SET TO USER ALICE ;
GRANT CREATE COLLATION TO USER ALICE ;
GRANT CREATE DOMAIN TO USER ALICE ;
GRANT CREATE EXCEPTION TO USER ALICE ;
GRANT CREATE FILTER TO USER ALICE ;
GRANT CREATE FUNCTION TO USER ALICE ;
GRANT CREATE GENERATOR TO USER ALICE ;
GRANT CREATE PACKAGE TO USER ALICE ;
GRANT CREATE PROCEDURE TO USER ALICE ;
GRANT CREATE ROLE TO USER ALICE ;
GRANT CREATE TABLE TO USER ALICE ;
GRANT CREATE VIEW TO USER ALICE ;
GRANT DROP ANY TABLE TO USER ALICE ;
GRANT ALTER ANY VIEW TO USER ALICE ;
GRANT DROP ANY GENERATOR TO USER ALICE ;
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: ITEST, Owner: SYSDBA */
CREATE TABLE ITEST
(
"KEY" INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 0 INCREMENT BY 1) NOT NULL,
SOMETEXT VARCHAR(64),
PRIMARY KEY ("KEY")
);
/* Table: ITEST2, Owner: SYSDBA */
CREATE TABLE ITEST2
(
"KEY" INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 0 INCREMENT BY 1) NOT NULL,
SOMETEXT VARCHAR(64),
PRIMARY KEY ("KEY")
);
/* 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: ITEST */
INSERT INTO ITEST ("KEY",SOMETEXT) VALUES(1,'Testing');
INSERT INTO ITEST ("KEY",SOMETEXT) VALUES(3,'Another');
INSERT INTO ITEST ("KEY",SOMETEXT) VALUES(4,'Test');
INSERT INTO ITEST ("KEY",SOMETEXT) VALUES(7,'Test');
INSERT INTO ITEST ("KEY",SOMETEXT) VALUES(8,'Again');
INSERT INTO ITEST ("KEY",SOMETEXT) VALUES(9,'Test');
INSERT INTO ITEST ("KEY",SOMETEXT) VALUES(10,' 2');
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,
"Payment Status"
) 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,
CASE When A.SALARY > 10000 then 'higher paid' else 'lower paid' End
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 ^;
/* Package Definitions */
CREATE PACKAGE FB$OUT
AS
begin
procedure enable;
procedure disable;
procedure put_line (line fb$out_type);
procedure clear;
procedure get_lines returns (lines fb$out_type);
end
^
CREATE PACKAGE SELECT$TEST
AS
Begin
Procedure ShowItems(IPARAM Integer) RETURNS (OutParam integer);
End
^
SET TERM ;^
COMMIT WORK;
SET AUTODDL ON;
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 EMPLOYEE_PAY_STATUS
(
EMP_NUM SMALLINT
)
RETURNS
(
PAY_STATUS VARCHAR(6) CHARACTER SET NONE,
SALARY NUMERIC(10,2)
)
AS BEGIN 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;
COMMIT WORK;
SET AUTODDL OFF;
SET TERM ^;
/* Stored Function declarations */
CREATE FUNCTION F (X INTEGER)
RETURNS INTEGER
AS BEGIN END
^
SET TERM ;^
COMMIT WORK;
SET AUTODDL ON;
SET TERM ^;
/* Triggers only will work for SQL triggers */
CREATE TRIGGER "After Create Database"
ACTIVE ON CONNECT POSITION 0
as
begin
End
^
CREATE TRIGGER "BEFORE CREATE TABLE"
ACTIVE BEFORE CREATE TABLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE TABLE"
ACTIVE AFTER CREATE TABLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER TABLE"
ACTIVE BEFORE ALTER TABLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER TABLE"
ACTIVE AFTER ALTER TABLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE/Alter TABLE"
ACTIVE AFTER CREATE TABLE OR ALTER TABLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP TABLE"
ACTIVE BEFORE Drop TABLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP TABLE"
ACTIVE AFTER Drop TABLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE PROCEDURE"
ACTIVE BEFORE CREATE PROCEDURE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE PROCEDURE"
ACTIVE AFTER CREATE PROCEDURE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER PROCEDURE"
ACTIVE BEFORE ALTER PROCEDURE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER PROCEDURE"
ACTIVE AFTER ALTER PROCEDURE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP PROCEDURE"
ACTIVE BEFORE Drop PROCEDURE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP PROCEDURE"
ACTIVE AFTER Drop PROCEDURE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE FUNCTION"
ACTIVE BEFORE CREATE FUNCTION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE FUNCTION"
ACTIVE AFTER CREATE FUNCTION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER FUNCTION"
ACTIVE BEFORE ALTER FUNCTION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER FUNCTION"
ACTIVE AFTER ALTER FUNCTION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP FUNCTION"
ACTIVE BEFORE Drop FUNCTION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP FUNCTION"
ACTIVE AFTER Drop FUNCTION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE TRIGGER"
ACTIVE BEFORE CREATE TRIGGER POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE TRIGGER"
ACTIVE AFTER CREATE TRIGGER POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER TRIGGER"
ACTIVE BEFORE ALTER TRIGGER POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER TRIGGER"
ACTIVE AFTER ALTER TRIGGER POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP TRIGGER"
ACTIVE BEFORE Drop TRIGGER POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP TRIGGER"
ACTIVE AFTER Drop TRIGGER POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE EXCEPTION"
ACTIVE BEFORE CREATE EXCEPTION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE EXCEPTION"
ACTIVE AFTER CREATE EXCEPTION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER EXCEPTION"
ACTIVE BEFORE ALTER EXCEPTION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER EXCEPTION"
ACTIVE AFTER ALTER EXCEPTION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP EXCEPTION"
ACTIVE BEFORE Drop EXCEPTION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP EXCEPTION"
ACTIVE AFTER Drop EXCEPTION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE VIEW"
ACTIVE BEFORE CREATE VIEW POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE VIEW"
ACTIVE AFTER CREATE VIEW POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER VIEW"
ACTIVE BEFORE ALTER VIEW POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER VIEW"
ACTIVE AFTER ALTER VIEW POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP VIEW"
ACTIVE BEFORE Drop VIEW POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP VIEW"
ACTIVE AFTER Drop VIEW POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE DOMAIN"
ACTIVE BEFORE CREATE DOMAIN POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE DOMAIN"
ACTIVE AFTER CREATE DOMAIN POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER DOMAIN"
ACTIVE BEFORE ALTER DOMAIN POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER DOMAIN"
ACTIVE AFTER ALTER DOMAIN POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP DOMAIN"
ACTIVE BEFORE Drop DOMAIN POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP DOMAIN"
ACTIVE AFTER Drop DOMAIN POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE ROLE"
ACTIVE BEFORE CREATE ROLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE ROLE"
ACTIVE AFTER CREATE ROLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER ROLE"
ACTIVE BEFORE ALTER ROLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER ROLE"
ACTIVE AFTER ALTER ROLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP ROLE"
ACTIVE BEFORE Drop ROLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP ROLE"
ACTIVE AFTER Drop ROLE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE INDEX"
ACTIVE BEFORE CREATE INDEX POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE INDEX"
ACTIVE AFTER CREATE INDEX POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER INDEX"
ACTIVE BEFORE ALTER INDEX POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER INDEX"
ACTIVE AFTER ALTER INDEX POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP INDEX"
ACTIVE BEFORE Drop INDEX POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP INDEX"
ACTIVE AFTER Drop INDEX POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE SEQUENCE"
ACTIVE BEFORE CREATE SEQUENCE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE SEQUENCE"
ACTIVE AFTER CREATE SEQUENCE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER SEQUENCE"
ACTIVE BEFORE ALTER SEQUENCE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER SEQUENCE"
ACTIVE AFTER ALTER SEQUENCE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP SEQUENCE"
ACTIVE BEFORE Drop SEQUENCE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP SEQUENCE"
ACTIVE AFTER Drop SEQUENCE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE USER"
ACTIVE BEFORE CREATE USER POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE USER"
ACTIVE AFTER CREATE USER POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER USER"
ACTIVE BEFORE ALTER USER POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER USER"
ACTIVE AFTER ALTER USER POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP USER"
ACTIVE BEFORE Drop USER POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP USER"
ACTIVE AFTER Drop USER POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE COLLATION"
ACTIVE BEFORE CREATE COLLATION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE COLLATION"
ACTIVE AFTER CREATE COLLATION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP COLLATION"
ACTIVE BEFORE Drop COLLATION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP COLLATION"
ACTIVE AFTER Drop COLLATION POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER CHARACTER SET"
ACTIVE BEFORE ALTER CHARACTER SET POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER CHARACTER SET"
ACTIVE AFTER ALTER CHARACTER SET POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE PACKAGE"
ACTIVE BEFORE CREATE PACKAGE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE PACKAGE"
ACTIVE AFTER CREATE PACKAGE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ALTER PACKAGE"
ACTIVE BEFORE ALTER PACKAGE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ALTER PACKAGE"
ACTIVE AFTER ALTER PACKAGE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP PACKAGE"
ACTIVE BEFORE Drop PACKAGE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP PACKAGE"
ACTIVE AFTER Drop PACKAGE POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE CREATE PACKAGE BODY"
ACTIVE BEFORE CREATE PACKAGE BODY POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER CREATE PACKAGE BODY"
ACTIVE AFTER CREATE PACKAGE BODY POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE DROP PACKAGE BODY"
ACTIVE BEFORE Drop PACKAGE BODY POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER DROP PACKAGE BODY"
ACTIVE AFTER Drop PACKAGE BODY POSITION 0
AS BEGIN END
^
CREATE TRIGGER "BEFORE ANY DDL STATEMENT"
ACTIVE BEFORE ANY DDL STATEMENT POSITION 0
AS BEGIN END
^
CREATE TRIGGER "AFTER ANY DDL STATEMENT"
ACTIVE AFTER ANY DDL STATEMENT POSITION 0
AS BEGIN END
^
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 ^;
/* Package Definitions */
CREATE PACKAGE BODY FB$OUT
AS
begin
procedure enable
as
begin
rdb$set_context('USER_SESSION', 'fb$out.enabled', '1');
end
procedure disable
as
begin
rdb$set_context('USER_SESSION', 'fb$out.enabled', null);
end
procedure put_line (line fb$out_type)
as
begin
if (rdb$get_context('USER_SESSION', 'fb$out.enabled') = '1') then
begin
in autonomous transaction do
begin
insert into fb$out_table (line_num, content)
values (next value for fb$out_seq, :line);
end
end
end
procedure clear
as
begin
in autonomous transaction do
delete from fb$out_table;
end
procedure get_lines returns (lines fb$out_type)
as
declare line fb$out_type;
begin
lines = '';
in autonomous transaction do
begin
for select content from fb$out_table order by line_num into line
do
begin
if (octet_length(lines) > 0) then
lines = lines || ascii_char(13) || ascii_char(10);
lines = lines || :line;
end
end
execute procedure clear;
end
end
^
CREATE PACKAGE BODY SELECT$TEST
AS
Begin
Procedure ShowItems(IPARAM Integer) RETURNS (OutParam integer)
As
Begin
SUSPEND;
End
End
^
SET TERM ;^
COMMIT WORK;
SET AUTODDL ON;
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 EMPLOYEE_PAY_STATUS
(
EMP_NUM SMALLINT
)
RETURNS
(
PAY_STATUS VARCHAR(6) CHARACTER SET NONE,
SALARY NUMERIC(10,2)
)
AS
Declare aCursor CURSOR FOR (
Select EMP_NO,SALARY From EMPLOYEE WHERE LAST_NAME = 'unknown');
BEGIN
Select SALARY, Case
When SALARY > 10000 and SALARY <= 100000 then 'higher'
When SALARY > 100000 then 'gross'
else 'lower' End
From employee
WHERE emp_no = :EMP_NUM
into :SALARY, :PAY_STATUS;
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;
COMMIT WORK;
SET AUTODDL OFF;
SET TERM ^;
/* Stored Function Body */
ALTER FUNCTION F (X INTEGER)
RETURNS INTEGER
AS
BEGIN
RETURN X+1;
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 */
/* Role: TESTROLE, Owner: SYSDBA */
CREATE ROLE TESTROLE SET SYSTEM PRIVILEGES TO CREATE_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(LAST_NAME,FIRST_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 FB$OUT_TABLE TO PACKAGE FB$OUT ;
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 ;
GRANT EXECUTE ON PACKAGE FB$OUT TO USER PUBLIC ;
GRANT CREATE TABLE TO USER BOB ;
GRANT CREATE COLLATION TO USER BOB ;
GRANT CREATE CHARACTER SET TO USER ALICE ;
GRANT CREATE COLLATION TO USER ALICE ;
GRANT CREATE DOMAIN TO USER ALICE ;
GRANT CREATE EXCEPTION TO USER ALICE ;
GRANT CREATE FILTER TO USER ALICE ;
GRANT CREATE FUNCTION TO USER ALICE ;
GRANT CREATE GENERATOR TO USER ALICE ;
GRANT CREATE PACKAGE TO USER ALICE ;
GRANT CREATE PROCEDURE TO USER ALICE ;
GRANT CREATE ROLE TO USER ALICE ;
GRANT CREATE TABLE TO USER ALICE ;
GRANT CREATE VIEW TO USER ALICE ;
GRANT DROP ANY TABLE TO USER ALICE ;
GRANT ALTER ANY VIEW TO USER ALICE ;
GRANT DROP ANY GENERATOR TO USER ALICE ;
Schema written to Test10.out
Run diff command returns 256
Output from diff command
4c4
< CREATE DATABASE 'inet://localhost//tmp/ibx-testsuite/testsuite1.fdb' PAGE_SIZE 8192
---
> /* CREATE DATABASE 'inet://localhost//tmp/ibx-testsuite/testsuite1.fdb' PAGE_SIZE 8192
6c6
< DEFAULT CHARACTER SET NONE;
---
> DEFAULT CHARACTER SET NONE; */
127c127
< "KEY" INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 0) NOT NULL,
---
> "KEY" INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 0 INCREMENT BY 1) NOT NULL,
1160,1161c1160
< AS
< BEGIN SUSPEND; EXIT; END
---
> AS BEGIN SUSPEND; EXIT; END
1169,1170c1168
< AS
< BEGIN EXIT; END
---
> AS BEGIN EXIT; END
1181,1182c1179
< AS
< BEGIN SUSPEND; EXIT; END
---
> AS BEGIN SUSPEND; EXIT; END
1189,1190c1186
< AS
< BEGIN EXIT; END
---
> AS BEGIN EXIT; END
1201,1202c1197
< AS
< BEGIN SUSPEND; EXIT; END
---
> AS BEGIN SUSPEND; EXIT; END
1214,1215c1209
< AS
< BEGIN EXIT; END
---
> AS BEGIN EXIT; END
1226,1227c1220
< AS
< BEGIN SUSPEND; EXIT; END
---
> AS BEGIN SUSPEND; EXIT; END
1234,1235c1227
< AS
< BEGIN EXIT; END
---
> AS BEGIN EXIT; END
1251,1252c1243
< AS
< BEGIN SUSPEND; EXIT; END
---
> AS BEGIN SUSPEND; EXIT; END
1264,1265c1255
< AS
< BEGIN SUSPEND; EXIT; END
---
> AS BEGIN SUSPEND; EXIT; END
1272,1273c1262
< AS
< BEGIN EXIT; END
---
> AS BEGIN EXIT; END
1287,1288c1276
< AS
< BEGIN SUSPEND; EXIT; END
---
> AS BEGIN SUSPEND; EXIT; END
1295,1296c1283
< AS
< BEGIN EXIT; END
---
> AS BEGIN EXIT; END
1300,1301c1287
< AS
< BEGIN EXIT; END
---
> AS BEGIN EXIT; END
2346c2332
< GRANT SELECT,Update(FIRST_NAME,LAST_NAME) ON TABLE EMPLOYEE TO USER BOB ;
---
> GRANT SELECT,Update(LAST_NAME,FIRST_NAME) ON TABLE EMPLOYEE TO USER BOB ;
------------------------------------------------------
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/4.0.4/lib/libfbclient.so
Connect String = localhost:service_mgr
Server Version = LI-V4.0.4.3010 Firebird 4.0
Server Implementation = Firebird/Linux/AMD/Intel/x64
Service Version = 2
Firebird Release = 4.0.4 (Build no. 3010)
No. of attachments = 0
No. of databases = 0
Base Location = /opt/firebird/4.0.4/
Lock File Location = /tmp/firebird/
Security Database Location = /opt/firebird/4.0.4/security4.fdb
Message File Location = /opt/firebird/4.0.4/
Database Statistics for employee
Database "/opt/firebird/4.0.4/examples/empbuild/employee.fdb"
Gstat execution time Thu May 23 14:47:06 2024
Database header page information:
Flags 0
Generation 1758
System Change Number 0
Page size 8192
ODS version 13.0
Oldest transaction 172
Oldest active 2546
Oldest snapshot 2546
Next transaction 2546
Sequence number 0
Next attachment ID 884
Implementation HW=AMD/Intel/x64 little-endian OS=Linux CC=gcc
Shadow count 0
Page buffers 0
Next header page 0
Database dialect 3
Creation date Nov 8, 2023 12:11:40
Attributes force write
Variable header data:
Database GUID: {80D1DCAC-19D5-4524-9356-ECBAF4BF0F1D}
*END*
Database file sequence:
File /opt/firebird/4.0.4/examples/empbuild/employee.fdb is the only file
Analyzing database pages ...
COUNTRY (128)
Primary pointer page: 222, Index root page: 223
Pointer pages: 1, data page slots: 1
Data pages: 1, average fill: 8%
Primary pages: 1, secondary pages: 0, swept pages: 0
Empty pages: 0, full pages: 0
Fill distribution:
0 - 19% = 1
20 - 39% = 0
40 - 59% = 0
60 - 79% = 0
80 - 99% = 0
CUSTOMER (137)
Primary pointer page: 276, Index root page: 277
Pointer pages: 1, data page slots: 1
Data pages: 1, average fill: 26%
Primary pages: 1, secondary pages: 0, swept pages: 0
Empty pages: 0, full pages: 0
Fill distribution:
0 - 19% = 0
20 - 39% = 1
40 - 59% = 0
60 - 79% = 0
80 - 99% = 0
DEPARTMENT (130)
Primary pointer page: 236, Index root page: 237
Pointer pages: 1, data page slots: 1
Data pages: 1, average fill: 24%
Primary pages: 1, secondary pages: 0, swept pages: 0
Empty pages: 0, full pages: 0
Fill distribution:
0 - 19% = 0
20 - 39% = 1
40 - 59% = 0
60 - 79% = 0
80 - 99% = 0
EMPLOYEE (131)
Primary pointer page: 243, Index root page: 244
Pointer pages: 1, data page slots: 1
Data pages: 1, average fill: 44%
Primary pages: 1, secondary pages: 0, swept pages: 0
Empty pages: 0, full pages: 0
Fill distribution:
0 - 19% = 0
20 - 39% = 0
40 - 59% = 1
60 - 79% = 0
80 - 99% = 0
EMPLOYEE_PROJECT (134)
Primary pointer page: 258, Index root page: 259
Pointer pages: 1, data page slots: 1
Data pages: 1, average fill: 10%
Primary pages: 1, secondary pages: 0, swept pages: 0
Empty pages: 0, full pages: 0
Fill distribution:
0 - 19% = 1
20 - 39% = 0
40 - 59% = 0
60 - 79% = 0
80 - 99% = 0
JOB (129)
Primary pointer page: 229, Index root page: 230
Pointer pages: 1, data page slots: 2
Data pages: 2, average fill: 54%
Primary pages: 1, secondary pages: 1, swept pages: 0
Empty pages: 0, full pages: 0
Fill distribution:
0 - 19% = 0
20 - 39% = 1
40 - 59% = 0
60 - 79% = 1
80 - 99% = 0
PROJECT (133)
Primary pointer page: 251, Index root page: 252
Pointer pages: 1, data page slots: 2
Data pages: 2, average fill: 7%
Primary pages: 1, secondary pages: 1, swept pages: 0
Empty pages: 0, full pages: 0
Fill distribution:
0 - 19% = 2
20 - 39% = 0
40 - 59% = 0
60 - 79% = 0
80 - 99% = 0
PROJ_DEPT_BUDGET (135)
Primary pointer page: 265, Index root page: 266
Pointer pages: 1, data page slots: 2
Data pages: 2, average fill: 20%
Primary pages: 1, secondary pages: 1, swept pages: 0
Empty pages: 0, full pages: 0
Fill distribution:
0 - 19% = 1
20 - 39% = 1
40 - 59% = 0
60 - 79% = 0
80 - 99% = 0
SALARY_HISTORY (136)
Primary pointer page: 270, Index root page: 271
Pointer pages: 1, data page slots: 1
Data pages: 1, average fill: 30%
Primary pages: 1, secondary pages: 0, swept pages: 0
Empty pages: 0, full pages: 0
Fill distribution:
0 - 19% = 0
20 - 39% = 1
40 - 59% = 0
60 - 79% = 0
80 - 99% = 0
SALES (138)
Primary pointer page: 283, Index root page: 284
Pointer pages: 1, data page slots: 1
Data pages: 1, average fill: 35%
Primary pages: 1, secondary pages: 0, swept pages: 0
Empty pages: 0, full pages: 0
Fill distribution:
0 - 19% = 0
20 - 39% = 1
40 - 59% = 0
60 - 79% = 0
80 - 99% = 0
Gstat completion time Thu May 23 14:47:06 2024
Server Log
zeus Wed Mar 20 10:47:37 2024
firebird/4.0.4/bin/fbguard: guardian starting /opt/firebird/4.0.4/bin/firebird
Online Validation
14:47:06.35 Validation started
14:47:06.35 Relation 128 (COUNTRY)
14:47:06.35 process pointer page 0 of 1
14:47:06.35 Index 1 (RDB$PRIMARY1)
14:47:06.35 Relation 128 (COUNTRY) is ok
14:47:06.35 Relation 129 (JOB)
14:47:06.35 process pointer page 0 of 1
14:47:06.35 Index 1 (RDB$PRIMARY2)
14:47:06.35 Index 2 (RDB$FOREIGN3)
14:47:06.35 Index 3 (MAXSALX)
14:47:06.35 Index 4 (MINSALX)
14:47:06.35 Relation 129 (JOB) is ok
14:47:06.35 Relation 130 (DEPARTMENT)
14:47:06.36 process pointer page 0 of 1
14:47:06.36 Index 1 (RDB$4)
14:47:06.36 Index 2 (RDB$PRIMARY5)
14:47:06.36 Index 3 (RDB$FOREIGN6)
14:47:06.36 Index 4 (BUDGETX)
14:47:06.36 Index 5 (RDB$FOREIGN10)
14:47:06.36 Relation 130 (DEPARTMENT) is ok
14:47:06.36 Relation 131 (EMPLOYEE)
14:47:06.36 process pointer page 0 of 1
14:47:06.36 Index 1 (RDB$PRIMARY7)
14:47:06.36 Index 2 (RDB$FOREIGN8)
14:47:06.36 Index 3 (RDB$FOREIGN9)
14:47:06.36 Index 4 (NAMEX)
14:47:06.36 Relation 131 (EMPLOYEE) is ok
14:47:06.36 Relation 133 (PROJECT)
14:47:06.36 process pointer page 0 of 1
14:47:06.36 Index 1 (RDB$11)
14:47:06.36 Index 2 (RDB$PRIMARY12)
14:47:06.36 Index 3 (RDB$FOREIGN13)
14:47:06.36 Index 4 (PRODTYPEX)
14:47:06.36 Relation 133 (PROJECT) is ok
14:47:06.36 Relation 134 (EMPLOYEE_PROJECT)
14:47:06.36 process pointer page 0 of 1
14:47:06.36 Index 1 (RDB$PRIMARY14)
14:47:06.36 Index 2 (RDB$FOREIGN15)
14:47:06.36 Index 3 (RDB$FOREIGN16)
14:47:06.36 Relation 134 (EMPLOYEE_PROJECT) is ok
14:47:06.36 Relation 135 (PROJ_DEPT_BUDGET)
14:47:06.36 process pointer page 0 of 1
14:47:06.36 Index 1 (RDB$PRIMARY17)
14:47:06.36 Index 2 (RDB$FOREIGN18)
14:47:06.36 Index 3 (RDB$FOREIGN19)
14:47:06.36 Relation 135 (PROJ_DEPT_BUDGET) is ok
14:47:06.36 Relation 136 (SALARY_HISTORY)
14:47:06.36 process pointer page 0 of 1
14:47:06.36 Index 1 (RDB$PRIMARY20)
14:47:06.36 Index 2 (RDB$FOREIGN21)
14:47:06.36 Index 3 (CHANGEX)
14:47:06.36 Index 4 (UPDATERX)
14:47:06.36 Relation 136 (SALARY_HISTORY) is ok
14:47:06.36 Relation 137 (CUSTOMER)
14:47:06.36 process pointer page 0 of 1
14:47:06.36 Index 1 (RDB$PRIMARY22)
14:47:06.36 Index 2 (RDB$FOREIGN23)
14:47:06.36 Index 3 (CUSTNAMEX)
14:47:06.36 Index 4 (CUSTREGION)
14:47:06.37 Relation 137 (CUSTOMER) is ok
14:47:06.37 Relation 138 (SALES)
14:47:06.37 process pointer page 0 of 1
14:47:06.37 Index 1 (RDB$PRIMARY24)
14:47:06.37 Index 2 (RDB$FOREIGN25)
14:47:06.37 Index 3 (RDB$FOREIGN26)
14:47:06.37 Index 4 (NEEDX)
14:47:06.37 Index 5 (QTYX)
14:47:06.37 Index 6 (SALESTATX)
14:47:06.37 Relation 138 (SALES) is ok
14:47:06.37 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 =
SEC$MIDDLE_NAME =
SEC$LAST_NAME =
SEC$PASSWORD = NULL
SEC$ADMIN = True
Rows printed = 1
Add user
Updated User List
Row No = 1
UserID = 0
GroupID = 0
SEC$USER_NAME = SYSDBA
SEC$FIRST_NAME =
SEC$MIDDLE_NAME =
SEC$LAST_NAME =
SEC$PASSWORD = NULL
SEC$ADMIN = True
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 =
SEC$MIDDLE_NAME =
SEC$LAST_NAME =
SEC$PASSWORD = NULL
SEC$ADMIN = True
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 =
SEC$MIDDLE_NAME =
SEC$LAST_NAME =
SEC$PASSWORD = NULL
SEC$ADMIN = True
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 =
SEC$MIDDLE_NAME =
SEC$LAST_NAME =
SEC$PASSWORD = NULL
SEC$ADMIN = True
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 =
SEC$MIDDLE_NAME =
SEC$LAST_NAME =
SEC$PASSWORD = NULL
SEC$ADMIN = True
Rows printed = 1
Employee Database is Online = TRUE
Employee Database is Online = FALSE
Employee Database is Online = TRUE
Starting Backup
Backup Completed - File Size = 81408 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 = 33000
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 = 38500
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 = 33000
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 = 38500
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000 (Charset = UTF8 Codepage = 65001)
Rows printed = 2
Current memory = 19,666,096
Delta memory = 15,312
Max memory = 19,785,824
Elapsed time= 0.002 sec
Cpu = 0.000 sec
Buffers = 2048
Reads = 2
Writes = 0
Fetches = 14
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000 (Charset = UTF8 Codepage = 65001)
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:
Select Expression
-> First N Records
-> Nested Loop Join (inner)
-> Recursion
-> Filter
-> Table "DEPARTMENT" as "DEPTS DEPARTMENT" Access By ID
-> Bitmap
-> Index "RDB$FOREIGN6" Range Scan (full match)
-> Filter
-> Table "DEPARTMENT" as "DEPTS D" Access By ID
-> Bitmap
-> Index "RDB$FOREIGN6" Range Scan (full match)
-> Filter
-> Table "EMPLOYEE" as "A" Access By ID
-> Bitmap
-> Index "RDB$FOREIGN8" Range Scan (full match)
*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, R.RDB$IDENTITY_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 R.RDB$IDENTITY_TYPE is not NULL or X.RDB$CONSTRAINT_TYPE is not null)
Plan:
Select Expression
-> Filter
-> Nested Loop Join (outer)
-> Nested Loop Join (inner)
-> Filter
-> Table "RDB$RELATION_FIELDS" as "R" Access By ID
-> Bitmap
-> Index "RDB$INDEX_4" Range Scan (full match)
-> Filter
-> Table "RDB$FIELDS" as "F" Access By ID
-> Bitmap
-> Index "RDB$INDEX_2" Unique Scan
-> Filter
-> Nested Loop Join (inner)
-> Filter
-> Table "RDB$RELATION_CONSTRAINTS" as "X C" Access By ID
-> Bitmap
-> Index "RDB$INDEX_42" Range Scan (full match)
-> Filter
-> Table "RDB$INDEX_SEGMENTS" as "X S" Access By ID
-> Bitmap
-> Index "RDB$INDEX_6" Range Scan (full match)
*Monitor*
[Application: IBX Test Suite]
: [Execute] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE, R.RDB$IDENTITY_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 R.RDB$IDENTITY_TYPE 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, R.RDB$IDENTITY_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 R.RDB$IDENTITY_TYPE 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, R.RDB$IDENTITY_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 R.RDB$IDENTITY_TYPE 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, R.RDB$IDENTITY_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 R.RDB$IDENTITY_TYPE 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, R.RDB$IDENTITY_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 R.RDB$IDENTITY_TYPE 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:
Select Expression
-> First N Records
-> Nested Loop Join (inner)
-> Recursion
-> Filter
-> Table "DEPARTMENT" as "DEPTS DEPARTMENT" Access By ID
-> Bitmap
-> Index "RDB$FOREIGN6" Range Scan (full match)
-> Filter
-> Table "DEPARTMENT" as "DEPTS D" Access By ID
-> Bitmap
-> Index "RDB$FOREIGN6" Range Scan (full match)
-> Filter
-> Table "EMPLOYEE" as "A" Access By ID
-> Bitmap
-> Index "RDB$FOREIGN8" Range Scan (full match)
*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, R.RDB$IDENTITY_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 R.RDB$IDENTITY_TYPE is not NULL or X.RDB$CONSTRAINT_TYPE is not null)
Plan:
Select Expression
-> Filter
-> Nested Loop Join (outer)
-> Nested Loop Join (inner)
-> Filter
-> Table "RDB$RELATION_FIELDS" as "R" Access By ID
-> Bitmap
-> Index "RDB$INDEX_4" Range Scan (full match)
-> Filter
-> Table "RDB$FIELDS" as "F" Access By ID
-> Bitmap
-> Index "RDB$INDEX_2" Unique Scan
-> Filter
-> Nested Loop Join (inner)
-> Filter
-> Table "RDB$RELATION_CONSTRAINTS" as "X C" Access By ID
-> Bitmap
-> Index "RDB$INDEX_42" Range Scan (full match)
-> Filter
-> Table "RDB$INDEX_SEGMENTS" as "X S" Access By ID
-> Bitmap
-> Index "RDB$INDEX_6" Range Scan (full match)
*Monitor*
[Application: IBX Test Suite]
: [Execute] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE, R.RDB$IDENTITY_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 R.RDB$IDENTITY_TYPE 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, R.RDB$IDENTITY_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 R.RDB$IDENTITY_TYPE 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, R.RDB$IDENTITY_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 R.RDB$IDENTITY_TYPE 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, R.RDB$IDENTITY_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 R.RDB$IDENTITY_TYPE 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, R.RDB$IDENTITY_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 R.RDB$IDENTITY_TYPE 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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000 (Charset = UTF8 Codepage = 65001)
Rows printed = 2
Current memory = 19,666,096
Delta memory = 15,312
Max memory = 19,785,824
Elapsed time= 0.103 sec
Cpu = 0.010 sec
Buffers = 2048
Reads = 2
Writes = 0
Fetches = 14
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000 (Charset = UTF8 Codepage = 65001)
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:
Select Expression
-> First N Records
-> Nested Loop Join (inner)
-> Recursion
-> Filter
-> Table "DEPARTMENT" as "DEPTS DEPARTMENT" Access By ID
-> Bitmap
-> Index "RDB$FOREIGN6" Range Scan (full match)
-> Filter
-> Table "DEPARTMENT" as "DEPTS D" Access By ID
-> Bitmap
-> Index "RDB$FOREIGN6" Range Scan (full match)
-> Filter
-> Table "EMPLOYEE" as "A" Access By ID
-> Bitmap
-> Index "RDB$FOREIGN8" Range Scan (full match)
*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, R.RDB$IDENTITY_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 R.RDB$IDENTITY_TYPE is not NULL or X.RDB$CONSTRAINT_TYPE is not null)
Plan:
Select Expression
-> Filter
-> Nested Loop Join (outer)
-> Nested Loop Join (inner)
-> Filter
-> Table "RDB$RELATION_FIELDS" as "R" Access By ID
-> Bitmap
-> Index "RDB$INDEX_4" Range Scan (full match)
-> Filter
-> Table "RDB$FIELDS" as "F" Access By ID
-> Bitmap
-> Index "RDB$INDEX_2" Unique Scan
-> Filter
-> Nested Loop Join (inner)
-> Filter
-> Table "RDB$RELATION_CONSTRAINTS" as "X C" Access By ID
-> Bitmap
-> Index "RDB$INDEX_42" Range Scan (full match)
-> Filter
-> Table "RDB$INDEX_SEGMENTS" as "X S" Access By ID
-> Bitmap
-> Index "RDB$INDEX_6" Range Scan (full match)
*Monitor*
[Application: IBX Test Suite]
: [Execute] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE, R.RDB$IDENTITY_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 R.RDB$IDENTITY_TYPE 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, R.RDB$IDENTITY_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 R.RDB$IDENTITY_TYPE 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, R.RDB$IDENTITY_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 R.RDB$IDENTITY_TYPE 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, R.RDB$IDENTITY_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 R.RDB$IDENTITY_TYPE 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, R.RDB$IDENTITY_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 R.RDB$IDENTITY_TYPE 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:
Select Expression
-> First N Records
-> Nested Loop Join (inner)
-> Recursion
-> Filter
-> Table "DEPARTMENT" as "DEPTS DEPARTMENT" Access By ID
-> Bitmap
-> Index "RDB$FOREIGN6" Range Scan (full match)
-> Filter
-> Table "DEPARTMENT" as "DEPTS D" Access By ID
-> Bitmap
-> Index "RDB$FOREIGN6" Range Scan (full match)
-> Filter
-> Table "EMPLOYEE" as "A" Access By ID
-> Bitmap
-> Index "RDB$FOREIGN8" Range Scan (full match)
*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, R.RDB$IDENTITY_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 R.RDB$IDENTITY_TYPE is not NULL or X.RDB$CONSTRAINT_TYPE is not null)
Plan:
Select Expression
-> Filter
-> Nested Loop Join (outer)
-> Nested Loop Join (inner)
-> Filter
-> Table "RDB$RELATION_FIELDS" as "R" Access By ID
-> Bitmap
-> Index "RDB$INDEX_4" Range Scan (full match)
-> Filter
-> Table "RDB$FIELDS" as "F" Access By ID
-> Bitmap
-> Index "RDB$INDEX_2" Unique Scan
-> Filter
-> Nested Loop Join (inner)
-> Filter
-> Table "RDB$RELATION_CONSTRAINTS" as "X C" Access By ID
-> Bitmap
-> Index "RDB$INDEX_42" Range Scan (full match)
-> Filter
-> Table "RDB$INDEX_SEGMENTS" as "X S" Access By ID
-> Bitmap
-> Index "RDB$INDEX_6" Range Scan (full match)
*Monitor*
[Application: IBX Test Suite]
: [Execute] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE, R.RDB$IDENTITY_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 R.RDB$IDENTITY_TYPE 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, R.RDB$IDENTITY_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 R.RDB$IDENTITY_TYPE 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, R.RDB$IDENTITY_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 R.RDB$IDENTITY_TYPE 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, R.RDB$IDENTITY_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 R.RDB$IDENTITY_TYPE 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, R.RDB$IDENTITY_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 R.RDB$IDENTITY_TYPE 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
------------------------------------------------------
Running Test 15: IBStored Proc with packages
/*
* The contents of this file are subject to the Initial
* Developer's Public License Version 1.0 (the "License");
* you may not use this file except in compliance with the
* License. You may obtain a copy of the License at
* http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_idpl.
*
* Software distributed under the License is distributed AS IS,
* WITHOUT WARRANTY OF ANY KIND, either express or implied.
* See the License for the specific language governing rights
* and limitations under the License.
*
* The Original Code was created by Adriano dos Santos Fernandes
* for the Firebird Open Source RDBMS project.
*
* Copyright (c) 2009 Adriano dos Santos Fernandes
* and all contributors signed below.
*
* All Rights Reserved.
* Contributor(s): ______________________________________.
*/
create sequence fb$out_seq;
create domain fb$out_type as blob sub_type text character set utf8 not null;
create global temporary table fb$out_table (
line_num int,
content fb$out_type
) on commit preserve rows;
set term !;
create or alter package fb$out
as
begin
procedure enable;
procedure disable;
procedure put_line (line fb$out_type);
procedure clear;
procedure get_lines returns (lines fb$out_type);
end!
set term ;!
grant all on table fb$out_table to package fb$out;
grant execute on package fb$out to public;
/*
* The contents of this file are subject to the Initial
* Developer's Public License Version 1.0 (the "License");
* you may not use this file except in compliance with the
* License. You may obtain a copy of the License at
* http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_idpl.
*
* Software distributed under the License is distributed AS IS,
* WITHOUT WARRANTY OF ANY KIND, either express or implied.
* See the License for the specific language governing rights
* and limitations under the License.
*
* The Original Code was created by Adriano dos Santos Fernandes
* for the Firebird Open Source RDBMS project.
*
* Copyright (c) 2009 Adriano dos Santos Fernandes
* and all contributors signed below.
*
* All Rights Reserved.
* Contributor(s): ______________________________________.
*/
set term !;
recreate package body fb$out
as
begin
procedure enable
as
begin
rdb$set_context('USER_SESSION', 'fb$out.enabled', '1');
end
procedure disable
as
begin
rdb$set_context('USER_SESSION', 'fb$out.enabled', null);
end
procedure put_line (line fb$out_type)
as
begin
if (rdb$get_context('USER_SESSION', 'fb$out.enabled') = '1') then
begin
in autonomous transaction do
begin
insert into fb$out_table (line_num, content)
values (next value for fb$out_seq, :line);
end
end
end
procedure clear
as
begin
in autonomous transaction do
delete from fb$out_table;
end
procedure get_lines returns (lines fb$out_type)
as
declare line fb$out_type;
begin
lines = '';
in autonomous transaction do
begin
for select content from fb$out_table order by line_num into line
do
begin
if (octet_length(lines) > 0) then
lines = lines || ascii_char(13) || ascii_char(10);
lines = lines || :line;
end
end
execute procedure clear;
end
end!
set term ;!
/*
* The contents of this file are subject to the Initial
* Developer's Public License Version 1.0 (the "License");
* you may not use this file except in compliance with the
* License. You may obtain a copy of the License at
* http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_idpl.
*
* Software distributed under the License is distributed AS IS,
* WITHOUT WARRANTY OF ANY KIND, either express or implied.
* See the License for the specific language governing rights
* and limitations under the License.
*
* The Original Code was created by Adriano dos Santos Fernandes
* for the Firebird Open Source RDBMS project.
*
* Copyright (c) 2009 Adriano dos Santos Fernandes
* and all contributors signed below.
*
* All Rights Reserved.
* Contributor(s): ______________________________________.
*/
/*
* This example demonstrate packages creating and using FB$OUT, a package that write and read
* messages in a session and is suitable for debug PSQL code.
*/
set names utf8;
/*create database 'test.fdb';
input 'fbout-header.sql';
input 'fbout-body.sql';*/
set term !;
create procedure test
as
declare i integer;
begin
execute procedure fb$out.put_line ('um');
execute procedure fb$out.put_line ('dois');
execute procedure fb$out.enable;
execute procedure fb$out.put_line ('três');
execute procedure fb$out.put_line ('quatro');
execute procedure fb$out.disable;
execute procedure fb$out.put_line ('cinco');
execute procedure fb$out.enable;
execute procedure fb$out.put_line ('seis');
begin
i = 'a';
execute procedure fb$out.put_line ('sete');
when any do
begin
end
end
end!
set term ;!
grant execute on procedure test to public;
/*execute procedure test;
execute procedure fb$out.get_lines;
execute procedure fb$out.get_lines;*/
-------------------------------------------------------
Exec TEST proc
Show FB$OUT_TABLE
Row No = 1
LINE_NUM = 1
CONTENT (Charset = UTF8 Codepage = 65001)
três
Row No = 2
LINE_NUM = 2
CONTENT (Charset = UTF8 Codepage = 65001)
quatro
Row No = 3
LINE_NUM = 3
CONTENT (Charset = UTF8 Codepage = 65001)
seis
Rows printed = 3
três
quatro
seis
------------------------------------------------------
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
Create Table IBXTest2 (
Key1 integer not null,
Key2 integer not null,
primary key(key1,key2)
);
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"
-Problematic key value is ("KEYFIELD" = 3)
Exception handled: Engine Code: 335544665
violation of PRIMARY or UNIQUE KEY constraint "INTEG_2" on table "IBDATASETTEST"
-Problematic key value is ("KEYFIELD" = 3)
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
Insert/Delete after first 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 = 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
Insert/Delete at last 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 = 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
Refresh Dataset wit two primary keys
Row No = 1
KEY1 = 1
KEY2 = 1
Row No = 2
KEY1 = 1
KEY2 = 2
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
Create Table IBXTest2 (
Key1 integer not null,
Key2 integer not null,
primary key(key1,key2)
);
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"
-Problematic key value is ("KEYFIELD" = 4)
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
Create Table IBXTest2 (
Key1 integer not null,
Key2 integer not null,
primary key(key1,key2)
);
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 23/5/2024 14:47:42.920
Data load completed at 23/5/2024 14:48:40.472 Elapsed Time = 57552 ms, 100000 records loaded
Message Hash = 8e867ad0b3e37da7efc8fe9c6b0ee51a
Database Read started at 23/5/2024 14:48:40.473
Read Dataset completed at 23/5/2024 14:48:45.169 Elapsed Time = 4696 ms, 100000 records read
Message Hash = 8e867ad0b3e37da7efc8fe9c6b0ee51a
Test Completed successfully
23/5/2024 14:48:45.170 Test 21 passes as long as the checksums are identical
------------------------------------------------------
Running Test 22: TIBUpdate Tests
RoleName = NONE
User List
Row No = 1
SEC$DESCRIPTION = NULL
SEC$PLUGIN = Srp (Charset = UTF8 Codepage = 65001)
SEC$ADMIN = True
SEC$ACTIVE = True
SEC$USER_NAME = SYSDBA (Charset = UTF8 Codepage = 65001)
SEC$FIRST_NAME = NULL
SEC$MIDDLE_NAME = NULL
SEC$LAST_NAME = NULL
SEC$PASSWORD = NULL
LOGGEDIN = True
DBCREATOR = False
Rows printed = 1
Add a user
Updated User List
Row No = 1
SEC$DESCRIPTION = NULL
SEC$PLUGIN = Srp (Charset = UTF8 Codepage = 65001)
SEC$ADMIN = False
SEC$ACTIVE = False
SEC$USER_NAME = TESTER (Charset = UTF8 Codepage = 65001)
SEC$FIRST_NAME = Chief (Charset = UTF8 Codepage = 65001)
SEC$MIDDLE_NAME = NULL
SEC$LAST_NAME = Tester (Charset = UTF8 Codepage = 65001)
SEC$PASSWORD = NULL
LOGGEDIN = False
DBCREATOR = False
Row No = 2
SEC$DESCRIPTION = NULL
SEC$PLUGIN = Srp (Charset = UTF8 Codepage = 65001)
SEC$ADMIN = True
SEC$ACTIVE = True
SEC$USER_NAME = SYSDBA (Charset = UTF8 Codepage = 65001)
SEC$FIRST_NAME = NULL
SEC$MIDDLE_NAME = NULL
SEC$LAST_NAME = NULL
SEC$PASSWORD = NULL
LOGGEDIN = True
DBCREATOR = False
Rows printed = 2
Modify a User
Updated User List
Row No = 1
SEC$DESCRIPTION = NULL
SEC$PLUGIN = Srp (Charset = UTF8 Codepage = 65001)
SEC$ADMIN = False
SEC$ACTIVE = False
SEC$USER_NAME = TESTER (Charset = UTF8 Codepage = 65001)
SEC$FIRST_NAME = Chief (Charset = UTF8 Codepage = 65001)
SEC$MIDDLE_NAME = Database (Charset = UTF8 Codepage = 65001)
SEC$LAST_NAME = Tester (Charset = UTF8 Codepage = 65001)
SEC$PASSWORD = NULL
LOGGEDIN = False
DBCREATOR = True
Row No = 2
SEC$DESCRIPTION = NULL
SEC$PLUGIN = Srp (Charset = UTF8 Codepage = 65001)
SEC$ADMIN = True
SEC$ACTIVE = True
SEC$USER_NAME = SYSDBA (Charset = UTF8 Codepage = 65001)
SEC$FIRST_NAME = NULL
SEC$MIDDLE_NAME = NULL
SEC$LAST_NAME = NULL
SEC$PASSWORD = NULL
LOGGEDIN = True
DBCREATOR = False
Rows printed = 2
Delete a user
Updated User List
Row No = 1
SEC$DESCRIPTION = NULL
SEC$PLUGIN = Srp (Charset = UTF8 Codepage = 65001)
SEC$ADMIN = True
SEC$ACTIVE = True
SEC$USER_NAME = SYSDBA (Charset = UTF8 Codepage = 65001)
SEC$FIRST_NAME = NULL
SEC$MIDDLE_NAME = NULL
SEC$LAST_NAME = NULL
SEC$PASSWORD = NULL
LOGGEDIN = True
DBCREATOR = False
Rows printed = 1
------------------------------------------------------
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 = 65535)
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 = 65535)
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 = 65535)
------------------------------------------------------
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:backup version is 9
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: table PHONE_LIST is a view
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:adjusting views dbkey length
gbak:updating ownership of packages, procedures and tables
gbak:adding missing privileges
gbak:adjusting system generators
gbak:finishing, closing, and going home
gbak:adjusting the ONLINE and FORCED WRITES flags
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000 (Charset = UTF8 Codepage = 65001)
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 (Charset = UTF8 Codepage = 65001)
DEPT_KEY_PATH = 000 (Charset = UTF8 Codepage = 65001)
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 8192
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 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 */
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 8192 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 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 exceptions
gbak:writing functions
gbak:writing stored procedures
gbak:writing packages
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 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 privilege for user SYSDBA
gbak:writing security classes
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:writing publications
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
-SQL error code = -104
-Unexpected end of command - line 2, column 1 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:backup version is 11
gbak:created database /home/tony/.MWA Software/testsuite1.fdb, page_size 8192 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 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:creating indexes
gbak:committing metadata
gbak: activating and creating deferred index RDB$PRIMARY2
gbak: activating and creating deferred index RDB$PRIMARY1
gbak:adjusting views dbkey length
gbak:updating ownership of packages, procedures and tables
gbak:adding missing privileges
gbak:adjusting system generators
gbak:finishing, closing, and going home
gbak:adjusting the ONLINE and FORCED WRITES flags
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 8192
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 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 */
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 8192 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 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 exceptions
gbak:writing functions
gbak:writing stored procedures
gbak:writing packages
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 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 privilege for user SYSDBA
gbak:writing security classes
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:writing publications
gbak:closing file, committing, and finishing. 3072 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:backup version is 11
gbak:created database /home/tony/.MWA Software/testsuite1.fdb, page_size 8192 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 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:creating indexes
gbak:committing metadata
gbak: activating and creating deferred index RDB$PRIMARY2
gbak: activating and creating deferred index RDB$PRIMARY1
gbak:adjusting views dbkey length
gbak:updating ownership of packages, procedures and tables
gbak:adding missing privileges
gbak:adjusting system generators
gbak:finishing, closing, and going home
gbak:adjusting the ONLINE and FORCED WRITES flags
Database after restore
SET SQL DIALECT 3;
SET AUTODDL ON;
/* CREATE DATABASE '/home/tony/.MWA Software/testsuite1.fdb' PAGE_SIZE 8192
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 3;
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 2024/05/23 14:48:54.7280:
Type = Transaction Start
Attachment ID = 4
Session ID = 1
Transaction ID = 12
Transaction Name = "{2F66CFD6-BDD3-4F0A-8E3F-F5C501B0DBFC}"
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 2024/05/23 14:48:54.8000:
Type = Query
Attachment ID = 4
Session ID = 1
Transaction ID = 12
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 2024/05/23 14:48:54.8280:
Type = Query
Attachment ID = 4
Session ID = 1
Transaction ID = 12
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 2024/05/23 14:48:54.8520:
Type = Query
Attachment ID = 4
Session ID = 1
Transaction ID = 12
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 2024/05/23 14:48:54.8780:
Type = Commit
Attachment ID = 4
Session ID = 1
Transaction ID = 12
Journal Entry Made
Journal Entry at 2024/05/23 14:48:54.8810:
Type = Transaction Start
Attachment ID = 4
Session ID = 1
Transaction ID = 14
Transaction Name = "{2F66CFD6-BDD3-4F0A-8E3F-F5C501B0DBFC}"
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 2024/05/23 14:48:55.1490:
Type = Query
Attachment ID = 4
Session ID = 1
Transaction ID = 14
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 2024/05/23 14:48:55.2590:
Type = Rollback Retaining
Attachment ID = 4
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)
Rows printed = 2
Delete a record
Journal Entry Made
Journal Entry at 2024/05/23 14:48:55.4910:
Type = Query
Attachment ID = 4
Session ID = 1
Transaction ID = 16
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 2024/05/23 14:48:55.6030:
Type = Rollback
Attachment ID = 4
Session ID = 1
Transaction ID = 16
Journal Entry Made
Journal Entry at 2024/05/23 14:48:55.6060:
Type = Transaction Start
Attachment ID = 4
Session ID = 1
Transaction ID = 17
Transaction Name = "{2F66CFD6-BDD3-4F0A-8E3F-F5C501B0DBFC}"
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 2024/05/23 14:48:55.8960:
Type = Query
Attachment ID = 4
Session ID = 1
Transaction ID = 17
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 2024/05/23 14:48:55.9150:
Type = Commit Retaining
Attachment ID = 4
Session ID = 1
Transaction ID = 19
Old Transaction ID = 17
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 2024/05/23 14:48:56.2570:
Type = Commit
Attachment ID = 4
Session ID = 1
Transaction ID = 19
Journal Entry Made
Journal Entry at 2024/05/23 14:48:56.2600:
Type = Transaction Start
Attachment ID = 4
Session ID = 1
Transaction ID = 20
Transaction Name = "{2F66CFD6-BDD3-4F0A-8E3F-F5C501B0DBFC}"
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 2024/05/23 14:48:56.6460:
Type = Rollback
Attachment ID = 4
Session ID = 1
Transaction ID = 20
Journal Table
IBX$SESSIONID = 1
IBX$TRANSACTIONID = 12
IBX$OLDTRANSACTIONID = NULL
IBX$USER = SYSDBA (Charset Id = 4 Codepage = 65001)
IBX$CREATED = 2024/05/23 14:48:54.7260
IBX$SESSIONID = 1
IBX$TRANSACTIONID = 17
IBX$OLDTRANSACTIONID = NULL
IBX$USER = SYSDBA (Charset Id = 4 Codepage = 65001)
IBX$CREATED = 2024/05/23 14:48:55.6050
IBX$SESSIONID = 1
IBX$TRANSACTIONID = 19
IBX$OLDTRANSACTIONID = 17
IBX$USER = SYSDBA (Charset Id = 4 Codepage = 65001)
IBX$CREATED = 2024/05/23 14:48:55.9170
Low Level Journal File Print out
Journal Entries
Journal Entry = jeTransStart(Transaction Start)
Timestamp = 2024/05/23 14:48:54.7280
Attachment ID = 4
Session ID = 1
Transaction ID = 12
Transaction Name = "{2F66CFD6-BDD3-4F0A-8E3F-F5C501B0DBFC}"
TPB: Item Count = 3
isc_tpb_concurrency
isc_tpb_wait
isc_tpb_write
Default Completion = TACommit
Journal Entry = jeQuery(Query)
Timestamp = 2024/05/23 14:48:54.8000
Attachment ID = 4
Session ID = 1
Transaction ID = 12
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 = 2024/05/23 14:48:54.8280
Attachment ID = 4
Session ID = 1
Transaction ID = 12
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 = 2024/05/23 14:48:54.8520
Attachment ID = 4
Session ID = 1
Transaction ID = 12
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 = 2024/05/23 14:48:54.8780
Attachment ID = 4
Session ID = 1
Transaction ID = 12
Journal Entry = jeTransStart(Transaction Start)
Timestamp = 2024/05/23 14:48:54.8810
Attachment ID = 4
Session ID = 1
Transaction ID = 14
Transaction Name = "{2F66CFD6-BDD3-4F0A-8E3F-F5C501B0DBFC}"
TPB: Item Count = 3
isc_tpb_concurrency
isc_tpb_wait
isc_tpb_write
Default Completion = TACommit
Journal Entry = jeQuery(Query)
Timestamp = 2024/05/23 14:48:55.1490
Attachment ID = 4
Session ID = 1
Transaction ID = 14
Query = Delete From IBXTEST A Where A.TABLEKEY = 1
Journal Entry = jeTransRollbackRet(Rollback Retaining)
Timestamp = 2024/05/23 14:48:55.2590
Attachment ID = 4
Session ID = 1
Transaction ID = 16
Old TransactionID = 14
Journal Entry = jeQuery(Query)
Timestamp = 2024/05/23 14:48:55.4910
Attachment ID = 4
Session ID = 1
Transaction ID = 16
Query = Delete From IBXTEST A Where A.TABLEKEY = 1
Journal Entry = jeTransRollback(Rollback)
Timestamp = 2024/05/23 14:48:55.6030
Attachment ID = 4
Session ID = 1
Transaction ID = 16
Journal Entry = jeTransStart(Transaction Start)
Timestamp = 2024/05/23 14:48:55.6060
Attachment ID = 4
Session ID = 1
Transaction ID = 17
Transaction Name = "{2F66CFD6-BDD3-4F0A-8E3F-F5C501B0DBFC}"
TPB: Item Count = 3
isc_tpb_concurrency
isc_tpb_wait
isc_tpb_write
Default Completion = TACommit
Journal Entry = jeQuery(Query)
Timestamp = 2024/05/23 14:48:55.8960
Attachment ID = 4
Session ID = 1
Transaction ID = 17
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 = 2024/05/23 14:48:55.9150
Attachment ID = 4
Session ID = 1
Transaction ID = 19
Old TransactionID = 17
Journal Entry = jeTransCommit(Commit)
Timestamp = 2024/05/23 14:48:56.2570
Attachment ID = 4
Session ID = 1
Transaction ID = 19
Journal Entry = jeTransStart(Transaction Start)
Timestamp = 2024/05/23 14:48:56.2600
Attachment ID = 4
Session ID = 1
Transaction ID = 20
Transaction Name = "{2F66CFD6-BDD3-4F0A-8E3F-F5C501B0DBFC}"
TPB: Item Count = 3
isc_tpb_concurrency
isc_tpb_wait
isc_tpb_write
Default Completion = TACommit
Journal Entry = jeTransRollback(Rollback)
Timestamp = 2024/05/23 14:48:56.6460
Attachment ID = 4
Session ID = 1
Transaction ID = 20
Print out Journal File using TIBJournal
Journal Entry at 2024/05/23 14:48:54.7280:
Type = Transaction Start
Attachment ID = 4
Session ID = 1
Transaction ID = 12
Transaction Name = "{2F66CFD6-BDD3-4F0A-8E3F-F5C501B0DBFC}"
TPB = [isc_tpb_concurrency,isc_tpb_wait,isc_tpb_write]
Default Completion = TACommit
Journal Entry at 2024/05/23 14:48:54.8000:
Type = Query
Attachment ID = 4
Session ID = 1
Transaction ID = 12
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 2024/05/23 14:48:54.8280:
Type = Query
Attachment ID = 4
Session ID = 1
Transaction ID = 12
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 2024/05/23 14:48:54.8520:
Type = Query
Attachment ID = 4
Session ID = 1
Transaction ID = 12
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 2024/05/23 14:48:54.8780:
Type = Commit
Attachment ID = 4
Session ID = 1
Transaction ID = 12
Journal Entry at 2024/05/23 14:48:54.8810:
Type = Transaction Start
Attachment ID = 4
Session ID = 1
Transaction ID = 14
Transaction Name = "{2F66CFD6-BDD3-4F0A-8E3F-F5C501B0DBFC}"
TPB = [isc_tpb_concurrency,isc_tpb_wait,isc_tpb_write]
Default Completion = TACommit
Journal Entry at 2024/05/23 14:48:55.1490:
Type = Query
Attachment ID = 4
Session ID = 1
Transaction ID = 14
Query Text = "Delete From IBXTEST A Where A.TABLEKEY = 1"
Journal Entry at 2024/05/23 14:48:55.2590:
Type = Rollback Retaining
Attachment ID = 4
Session ID = 1
Transaction ID = 16
Old Transaction ID = 14
Journal Entry at 2024/05/23 14:48:55.4910:
Type = Query
Attachment ID = 4
Session ID = 1
Transaction ID = 16
Query Text = "Delete From IBXTEST A Where A.TABLEKEY = 1"
Journal Entry at 2024/05/23 14:48:55.6030:
Type = Rollback
Attachment ID = 4
Session ID = 1
Transaction ID = 16
Journal Entry at 2024/05/23 14:48:55.6060:
Type = Transaction Start
Attachment ID = 4
Session ID = 1
Transaction ID = 17
Transaction Name = "{2F66CFD6-BDD3-4F0A-8E3F-F5C501B0DBFC}"
TPB = [isc_tpb_concurrency,isc_tpb_wait,isc_tpb_write]
Default Completion = TACommit
Journal Entry at 2024/05/23 14:48:55.8960:
Type = Query
Attachment ID = 4
Session ID = 1
Transaction ID = 17
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 2024/05/23 14:48:55.9150:
Type = Commit Retaining
Attachment ID = 4
Session ID = 1
Transaction ID = 19
Old Transaction ID = 17
Journal Entry at 2024/05/23 14:48:56.2570:
Type = Commit
Attachment ID = 4
Session ID = 1
Transaction ID = 19
Journal Entry at 2024/05/23 14:48:56.2600:
Type = Transaction Start
Attachment ID = 4
Session ID = 1
Transaction ID = 20
Transaction Name = "{2F66CFD6-BDD3-4F0A-8E3F-F5C501B0DBFC}"
TPB = [isc_tpb_concurrency,isc_tpb_wait,isc_tpb_write]
Default Completion = TACommit
Journal Entry at 2024/05/23 14:48:56.6460:
Type = Rollback
Attachment ID = 4
Session ID = 1
Transaction ID = 20
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 4;
---
> ALTER SEQUENCE IBXGEN RESTART WITH 1;
------------------------------------------------------
Test Suite Ends