IBX Test Suite Copyright MWA Software 2016-2021 Starting Tests Client API Version = 2.5 Firebird Environment Variable = /opt/firebird/2.5.9 Firebird Client Library Path = /opt/firebird/2.5.9/lib/libfbembed.so Running Test 01: Open and read from Employee Database Read dataset unidirectional buffering Row No = 1 EMP_NO = 12 FIRST_NAME = Terri LAST_NAME = Lee PHONE_EXT = 256 HIRE_DATE = 01/5/1990 DEPT_NO = 000 JOB_CODE = Admin JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 53793 FULL_NAME = Lee, Terri DEPT_PATH = Corporate Headquarters DEPT_KEY_PATH = 000 Row No = 2 EMP_NO = 105 FIRST_NAME = Oliver H. LAST_NAME = Bender PHONE_EXT = 255 HIRE_DATE = 08/10/1992 DEPT_NO = 000 JOB_CODE = CEO JOB_GRADE = 1 JOB_COUNTRY = USA SALARY = 212850 FULL_NAME = Bender, Oliver H. DEPT_PATH = Corporate Headquarters DEPT_KEY_PATH = 000 Row No = 3 EMP_NO = 85 FIRST_NAME = Mary S. LAST_NAME = MacDonald PHONE_EXT = 477 HIRE_DATE = 01/6/1992 DEPT_NO = 100 JOB_CODE = VP JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 111262.5 FULL_NAME = MacDonald, Mary S. DEPT_PATH = Corporate Headquarters / Sales and Marketing DEPT_KEY_PATH = 000;100 Row No = 4 EMP_NO = 127 FIRST_NAME = Michael LAST_NAME = Yanowski PHONE_EXT = 492 HIRE_DATE = 09/8/1993 DEPT_NO = 100 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 44000 FULL_NAME = Yanowski, Michael DEPT_PATH = Corporate Headquarters / Sales and Marketing DEPT_KEY_PATH = 000;100 Row No = 5 EMP_NO = 8 FIRST_NAME = Leslie LAST_NAME = Johnson PHONE_EXT = 410 HIRE_DATE = 05/4/1989 DEPT_NO = 180 JOB_CODE = Mktg JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 64635 FULL_NAME = Johnson, Leslie DEPT_PATH = Corporate Headquarters / Sales and Marketing / Marketing DEPT_KEY_PATH = 000;100;180 Row No = 6 EMP_NO = 52 FIRST_NAME = Carol LAST_NAME = Nordstrom PHONE_EXT = 420 HIRE_DATE = 02/10/1991 DEPT_NO = 180 JOB_CODE = PRel JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 42742.5 FULL_NAME = Nordstrom, Carol DEPT_PATH = Corporate Headquarters / Sales and Marketing / Marketing DEPT_KEY_PATH = 000;100;180 Row No = 7 EMP_NO = 5 FIRST_NAME = Kim LAST_NAME = Lambert PHONE_EXT = 22 HIRE_DATE = 06/2/1989 DEPT_NO = 130 JOB_CODE = Eng JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 102750 FULL_NAME = Lambert, Kim DEPT_PATH = Corporate Headquarters / Sales and Marketing / Field Office: East Coast DEPT_KEY_PATH = 000;100;130 Row No = 8 EMP_NO = 11 FIRST_NAME = K. J. LAST_NAME = Weston PHONE_EXT = 34 HIRE_DATE = 17/1/1990 DEPT_NO = 130 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 86292.94 FULL_NAME = Weston, K. J. DEPT_PATH = Corporate Headquarters / Sales and Marketing / Field Office: East Coast DEPT_KEY_PATH = 000;100;130 Row No = 9 EMP_NO = 72 FIRST_NAME = Claudia LAST_NAME = Sutherland PHONE_EXT = NULL HIRE_DATE = 20/4/1992 DEPT_NO = 140 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = Canada SALARY = 100914 FULL_NAME = Sutherland, Claudia DEPT_PATH = Corporate Headquarters / Sales and Marketing / Field Office: Canada DEPT_KEY_PATH = 000;100;140 Row No = 10 EMP_NO = 34 FIRST_NAME = Janet LAST_NAME = Baldwin PHONE_EXT = 2 HIRE_DATE = 21/3/1991 DEPT_NO = 110 JOB_CODE = Sales JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 61637.81 FULL_NAME = Baldwin, Janet DEPT_PATH = Corporate Headquarters / Sales and Marketing / Pacific Rim Headquarters DEPT_KEY_PATH = 000;100;110 Row No = 11 EMP_NO = 61 FIRST_NAME = Luke LAST_NAME = Leung PHONE_EXT = 3 HIRE_DATE = 18/2/1992 DEPT_NO = 110 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 68805 FULL_NAME = Leung, Luke DEPT_PATH = Corporate Headquarters / Sales and Marketing / Pacific Rim Headquarters DEPT_KEY_PATH = 000;100;110 Row No = 12 EMP_NO = 110 FIRST_NAME = Yuki LAST_NAME = Ichida PHONE_EXT = 22 HIRE_DATE = 04/2/1993 DEPT_NO = 115 JOB_CODE = Eng JOB_GRADE = 3 JOB_COUNTRY = Japan SALARY = 6000000 FULL_NAME = Ichida, Yuki DEPT_PATH = Corporate Headquarters / Sales and Marketing / Pacific Rim Headquarters / Field Office: Japan DEPT_KEY_PATH = 000;100;110;115 Row No = 13 EMP_NO = 118 FIRST_NAME = Takashi LAST_NAME = Yamamoto PHONE_EXT = 23 HIRE_DATE = 01/7/1993 DEPT_NO = 115 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = Japan SALARY = 7480000 FULL_NAME = Yamamoto, Takashi DEPT_PATH = Corporate Headquarters / Sales and Marketing / Pacific Rim Headquarters / Field Office: Japan DEPT_KEY_PATH = 000;100;110;115 Row No = 14 EMP_NO = 28 FIRST_NAME = Ann LAST_NAME = Bennet PHONE_EXT = 5 HIRE_DATE = 01/2/1991 DEPT_NO = 120 JOB_CODE = Admin JOB_GRADE = 5 JOB_COUNTRY = England SALARY = 22935 FULL_NAME = Bennet, Ann DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters DEPT_KEY_PATH = 000;100;120 Row No = 15 EMP_NO = 36 FIRST_NAME = Roger LAST_NAME = Reeves PHONE_EXT = 6 HIRE_DATE = 25/4/1991 DEPT_NO = 120 JOB_CODE = Sales JOB_GRADE = 3 JOB_COUNTRY = England SALARY = 33620.63 FULL_NAME = Reeves, Roger DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters DEPT_KEY_PATH = 000;100;120 Row No = 16 EMP_NO = 37 FIRST_NAME = Willie LAST_NAME = Stansbury PHONE_EXT = 7 HIRE_DATE = 25/4/1991 DEPT_NO = 120 JOB_CODE = Eng JOB_GRADE = 4 JOB_COUNTRY = England SALARY = 39224.06 FULL_NAME = Stansbury, Willie DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters DEPT_KEY_PATH = 000;100;120 Row No = 17 EMP_NO = 141 FIRST_NAME = Pierre LAST_NAME = Osborne PHONE_EXT = NULL HIRE_DATE = 03/1/1994 DEPT_NO = 121 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = Switzerland SALARY = 110000 FULL_NAME = Osborne, Pierre DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters / Field Office: Switzerland DEPT_KEY_PATH = 000;100;120;121 Row No = 18 EMP_NO = 134 FIRST_NAME = Jacques LAST_NAME = Glon PHONE_EXT = NULL HIRE_DATE = 23/8/1993 DEPT_NO = 123 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = France SALARY = 390500 FULL_NAME = Glon, Jacques DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters / Field Office: France DEPT_KEY_PATH = 000;100;120;123 Row No = 19 EMP_NO = 121 FIRST_NAME = Roberto LAST_NAME = Ferrari PHONE_EXT = 1 HIRE_DATE = 12/7/1993 DEPT_NO = 125 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = Italy SALARY = 99000000 FULL_NAME = Ferrari, Roberto DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters / Field Office: Italy DEPT_KEY_PATH = 000;100;120;125 Row No = 20 EMP_NO = 2 FIRST_NAME = Robert LAST_NAME = Nelson PHONE_EXT = 250 HIRE_DATE = 28/12/1988 DEPT_NO = 600 JOB_CODE = VP JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 105900 FULL_NAME = Nelson, Robert DEPT_PATH = Corporate Headquarters / Engineering DEPT_KEY_PATH = 000;600 Row No = 21 EMP_NO = 109 FIRST_NAME = Kelly LAST_NAME = Brown PHONE_EXT = 202 HIRE_DATE = 04/2/1993 DEPT_NO = 600 JOB_CODE = Admin JOB_GRADE = 5 JOB_COUNTRY = USA SALARY = 27000 FULL_NAME = Brown, Kelly DEPT_PATH = Corporate Headquarters / Engineering DEPT_KEY_PATH = 000;600 Row No = 22 EMP_NO = 4 FIRST_NAME = Bruce LAST_NAME = Young PHONE_EXT = 233 HIRE_DATE = 28/12/1988 DEPT_NO = 621 JOB_CODE = Eng JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 97500 FULL_NAME = Young, Bruce DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Software Development DEPT_KEY_PATH = 000;600;620;621 Row No = 23 EMP_NO = 45 FIRST_NAME = Ashok LAST_NAME = Ramanathan PHONE_EXT = 209 HIRE_DATE = 01/8/1991 DEPT_NO = 621 JOB_CODE = Eng JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 80689.5 FULL_NAME = Ramanathan, Ashok DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Software Development DEPT_KEY_PATH = 000;600;620;621 Row No = 24 EMP_NO = 83 FIRST_NAME = Dana LAST_NAME = Bishop PHONE_EXT = 290 HIRE_DATE = 01/6/1992 DEPT_NO = 621 JOB_CODE = Eng JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 62550 FULL_NAME = Bishop, Dana DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Software Development DEPT_KEY_PATH = 000;600;620;621 Row No = 25 EMP_NO = 138 FIRST_NAME = T.J. LAST_NAME = Green PHONE_EXT = 218 HIRE_DATE = 01/11/1993 DEPT_NO = 621 JOB_CODE = Eng JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 36000 FULL_NAME = Green, T.J. DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Software Development DEPT_KEY_PATH = 000;600;620;621 Row No = 26 EMP_NO = 9 FIRST_NAME = Phil LAST_NAME = Forest PHONE_EXT = 229 HIRE_DATE = 17/4/1989 DEPT_NO = 622 JOB_CODE = Mngr JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 75060 FULL_NAME = Forest, Phil DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Quality Assurance DEPT_KEY_PATH = 000;600;620;622 Row No = 27 EMP_NO = 71 FIRST_NAME = Jennifer M. LAST_NAME = Burbank PHONE_EXT = 289 HIRE_DATE = 15/4/1992 DEPT_NO = 622 JOB_CODE = Eng JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 53167.5 FULL_NAME = Burbank, Jennifer M. DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Quality Assurance DEPT_KEY_PATH = 000;600;620;622 Row No = 28 EMP_NO = 145 FIRST_NAME = Mark LAST_NAME = Guckenheimer PHONE_EXT = 221 HIRE_DATE = 02/5/1994 DEPT_NO = 622 JOB_CODE = Eng JOB_GRADE = 5 JOB_COUNTRY = USA SALARY = 32000 FULL_NAME = Guckenheimer, Mark DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Quality Assurance DEPT_KEY_PATH = 000;600;620;622 Row No = 29 EMP_NO = 15 FIRST_NAME = Katherine LAST_NAME = Young PHONE_EXT = 231 HIRE_DATE = 14/6/1990 DEPT_NO = 623 JOB_CODE = Mngr JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 67241.25 FULL_NAME = Young, Katherine DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Customer Support DEPT_KEY_PATH = 000;600;620;623 Row No = 30 EMP_NO = 29 FIRST_NAME = Roger LAST_NAME = De Souza PHONE_EXT = 288 HIRE_DATE = 18/2/1991 DEPT_NO = 623 JOB_CODE = Eng JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 69482.63 FULL_NAME = De Souza, Roger DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Customer Support DEPT_KEY_PATH = 000;600;620;623 Row No = 31 EMP_NO = 44 FIRST_NAME = Leslie LAST_NAME = Phong PHONE_EXT = 216 HIRE_DATE = 03/6/1991 DEPT_NO = 623 JOB_CODE = Eng JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 56034.38 FULL_NAME = Phong, Leslie DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Customer Support DEPT_KEY_PATH = 000;600;620;623 Row No = 32 EMP_NO = 114 FIRST_NAME = Bill LAST_NAME = Parker PHONE_EXT = 247 HIRE_DATE = 01/6/1993 DEPT_NO = 623 JOB_CODE = Eng JOB_GRADE = 5 JOB_COUNTRY = USA SALARY = 35000 FULL_NAME = Parker, Bill DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Customer Support DEPT_KEY_PATH = 000;600;620;623 Row No = 33 EMP_NO = 136 FIRST_NAME = Scott LAST_NAME = Johnson PHONE_EXT = 265 HIRE_DATE = 13/9/1993 DEPT_NO = 623 JOB_CODE = Doc JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 60000 FULL_NAME = Johnson, Scott DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Customer Support DEPT_KEY_PATH = 000;600;620;623 Row No = 34 EMP_NO = 65 FIRST_NAME = Sue Anne LAST_NAME = O'Brien PHONE_EXT = 877 HIRE_DATE = 23/3/1992 DEPT_NO = 670 JOB_CODE = Admin JOB_GRADE = 5 JOB_COUNTRY = USA SALARY = 31275 FULL_NAME = O'Brien, Sue Anne DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. DEPT_KEY_PATH = 000;600;670 Row No = 35 EMP_NO = 107 FIRST_NAME = Kevin LAST_NAME = Cook PHONE_EXT = 894 HIRE_DATE = 01/2/1993 DEPT_NO = 670 JOB_CODE = Dir JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 111262.5 FULL_NAME = Cook, Kevin DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. DEPT_KEY_PATH = 000;600;670 Row No = 36 EMP_NO = 20 FIRST_NAME = Chris LAST_NAME = Papadopoulos PHONE_EXT = 887 HIRE_DATE = 01/1/1990 DEPT_NO = 671 JOB_CODE = Mngr JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 89655 FULL_NAME = Papadopoulos, Chris DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Research and Development DEPT_KEY_PATH = 000;600;670;671 Row No = 37 EMP_NO = 24 FIRST_NAME = Pete LAST_NAME = Fisher PHONE_EXT = 888 HIRE_DATE = 12/9/1990 DEPT_NO = 671 JOB_CODE = Eng JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 81810.19 FULL_NAME = Fisher, Pete DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Research and Development DEPT_KEY_PATH = 000;600;670;671 Row No = 38 EMP_NO = 113 FIRST_NAME = Mary LAST_NAME = Page PHONE_EXT = 845 HIRE_DATE = 12/4/1993 DEPT_NO = 671 JOB_CODE = Eng JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 48000 FULL_NAME = Page, Mary DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Research and Development DEPT_KEY_PATH = 000;600;670;671 Row No = 39 EMP_NO = 94 FIRST_NAME = Randy LAST_NAME = Williams PHONE_EXT = 892 HIRE_DATE = 08/8/1992 DEPT_NO = 672 JOB_CODE = Mngr JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 56295 FULL_NAME = Williams, Randy DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Customer Services DEPT_KEY_PATH = 000;600;670;672 Row No = 40 EMP_NO = 144 FIRST_NAME = John LAST_NAME = Montgomery PHONE_EXT = 820 HIRE_DATE = 30/3/1994 DEPT_NO = 672 JOB_CODE = Eng JOB_GRADE = 5 JOB_COUNTRY = USA SALARY = 35000 FULL_NAME = Montgomery, John DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Customer Services DEPT_KEY_PATH = 000;600;670;672 Row No = 41 EMP_NO = 14 FIRST_NAME = Stewart LAST_NAME = Hall PHONE_EXT = 227 HIRE_DATE = 04/6/1990 DEPT_NO = 900 JOB_CODE = Finan JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 69482.63 FULL_NAME = Hall, Stewart DEPT_PATH = Corporate Headquarters / Finance DEPT_KEY_PATH = 000;900 Row No = 42 EMP_NO = 46 FIRST_NAME = Walter LAST_NAME = Steadman PHONE_EXT = 210 HIRE_DATE = 09/8/1991 DEPT_NO = 900 JOB_CODE = CFO JOB_GRADE = 1 JOB_COUNTRY = USA SALARY = 116100 FULL_NAME = Steadman, Walter DEPT_PATH = Corporate Headquarters / Finance DEPT_KEY_PATH = 000;900 Rows printed = 42 Current memory = 964,688 Delta memory = 9,512 Max memory = 1,012,160 Elapsed time= 0.026 sec Cpu = 0.002 sec Buffers = 75 Reads = 3 Writes = 0 Fetches = 212 Selects = 0 Inserts = 0 Updates = 0 Deletes = 0 Reconnect Read dataset bidirectional buffering Row No = 1 EMP_NO = 12 FIRST_NAME = Terri LAST_NAME = Lee PHONE_EXT = 256 HIRE_DATE = 01/5/1990 DEPT_NO = 000 JOB_CODE = Admin JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 53793 FULL_NAME = Lee, Terri DEPT_PATH = Corporate Headquarters DEPT_KEY_PATH = 000 Row No = 2 EMP_NO = 105 FIRST_NAME = Oliver H. LAST_NAME = Bender PHONE_EXT = 255 HIRE_DATE = 08/10/1992 DEPT_NO = 000 JOB_CODE = CEO JOB_GRADE = 1 JOB_COUNTRY = USA SALARY = 212850 FULL_NAME = Bender, Oliver H. DEPT_PATH = Corporate Headquarters DEPT_KEY_PATH = 000 Row No = 3 EMP_NO = 85 FIRST_NAME = Mary S. LAST_NAME = MacDonald PHONE_EXT = 477 HIRE_DATE = 01/6/1992 DEPT_NO = 100 JOB_CODE = VP JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 111262.5 FULL_NAME = MacDonald, Mary S. DEPT_PATH = Corporate Headquarters / Sales and Marketing DEPT_KEY_PATH = 000;100 Row No = 4 EMP_NO = 127 FIRST_NAME = Michael LAST_NAME = Yanowski PHONE_EXT = 492 HIRE_DATE = 09/8/1993 DEPT_NO = 100 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 44000 FULL_NAME = Yanowski, Michael DEPT_PATH = Corporate Headquarters / Sales and Marketing DEPT_KEY_PATH = 000;100 Row No = 5 EMP_NO = 8 FIRST_NAME = Leslie LAST_NAME = Johnson PHONE_EXT = 410 HIRE_DATE = 05/4/1989 DEPT_NO = 180 JOB_CODE = Mktg JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 64635 FULL_NAME = Johnson, Leslie DEPT_PATH = Corporate Headquarters / Sales and Marketing / Marketing DEPT_KEY_PATH = 000;100;180 Row No = 6 EMP_NO = 52 FIRST_NAME = Carol LAST_NAME = Nordstrom PHONE_EXT = 420 HIRE_DATE = 02/10/1991 DEPT_NO = 180 JOB_CODE = PRel JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 42742.5 FULL_NAME = Nordstrom, Carol DEPT_PATH = Corporate Headquarters / Sales and Marketing / Marketing DEPT_KEY_PATH = 000;100;180 Row No = 7 EMP_NO = 5 FIRST_NAME = Kim LAST_NAME = Lambert PHONE_EXT = 22 HIRE_DATE = 06/2/1989 DEPT_NO = 130 JOB_CODE = Eng JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 102750 FULL_NAME = Lambert, Kim DEPT_PATH = Corporate Headquarters / Sales and Marketing / Field Office: East Coast DEPT_KEY_PATH = 000;100;130 Row No = 8 EMP_NO = 11 FIRST_NAME = K. J. LAST_NAME = Weston PHONE_EXT = 34 HIRE_DATE = 17/1/1990 DEPT_NO = 130 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 86292.94 FULL_NAME = Weston, K. J. DEPT_PATH = Corporate Headquarters / Sales and Marketing / Field Office: East Coast DEPT_KEY_PATH = 000;100;130 Row No = 9 EMP_NO = 72 FIRST_NAME = Claudia LAST_NAME = Sutherland PHONE_EXT = NULL HIRE_DATE = 20/4/1992 DEPT_NO = 140 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = Canada SALARY = 100914 FULL_NAME = Sutherland, Claudia DEPT_PATH = Corporate Headquarters / Sales and Marketing / Field Office: Canada DEPT_KEY_PATH = 000;100;140 Row No = 10 EMP_NO = 34 FIRST_NAME = Janet LAST_NAME = Baldwin PHONE_EXT = 2 HIRE_DATE = 21/3/1991 DEPT_NO = 110 JOB_CODE = Sales JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 61637.81 FULL_NAME = Baldwin, Janet DEPT_PATH = Corporate Headquarters / Sales and Marketing / Pacific Rim Headquarters DEPT_KEY_PATH = 000;100;110 Row No = 11 EMP_NO = 61 FIRST_NAME = Luke LAST_NAME = Leung PHONE_EXT = 3 HIRE_DATE = 18/2/1992 DEPT_NO = 110 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 68805 FULL_NAME = Leung, Luke DEPT_PATH = Corporate Headquarters / Sales and Marketing / Pacific Rim Headquarters DEPT_KEY_PATH = 000;100;110 Row No = 12 EMP_NO = 110 FIRST_NAME = Yuki LAST_NAME = Ichida PHONE_EXT = 22 HIRE_DATE = 04/2/1993 DEPT_NO = 115 JOB_CODE = Eng JOB_GRADE = 3 JOB_COUNTRY = Japan SALARY = 6000000 FULL_NAME = Ichida, Yuki DEPT_PATH = Corporate Headquarters / Sales and Marketing / Pacific Rim Headquarters / Field Office: Japan DEPT_KEY_PATH = 000;100;110;115 Row No = 13 EMP_NO = 118 FIRST_NAME = Takashi LAST_NAME = Yamamoto PHONE_EXT = 23 HIRE_DATE = 01/7/1993 DEPT_NO = 115 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = Japan SALARY = 7480000 FULL_NAME = Yamamoto, Takashi DEPT_PATH = Corporate Headquarters / Sales and Marketing / Pacific Rim Headquarters / Field Office: Japan DEPT_KEY_PATH = 000;100;110;115 Row No = 14 EMP_NO = 28 FIRST_NAME = Ann LAST_NAME = Bennet PHONE_EXT = 5 HIRE_DATE = 01/2/1991 DEPT_NO = 120 JOB_CODE = Admin JOB_GRADE = 5 JOB_COUNTRY = England SALARY = 22935 FULL_NAME = Bennet, Ann DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters DEPT_KEY_PATH = 000;100;120 Row No = 15 EMP_NO = 36 FIRST_NAME = Roger LAST_NAME = Reeves PHONE_EXT = 6 HIRE_DATE = 25/4/1991 DEPT_NO = 120 JOB_CODE = Sales JOB_GRADE = 3 JOB_COUNTRY = England SALARY = 33620.63 FULL_NAME = Reeves, Roger DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters DEPT_KEY_PATH = 000;100;120 Row No = 16 EMP_NO = 37 FIRST_NAME = Willie LAST_NAME = Stansbury PHONE_EXT = 7 HIRE_DATE = 25/4/1991 DEPT_NO = 120 JOB_CODE = Eng JOB_GRADE = 4 JOB_COUNTRY = England SALARY = 39224.06 FULL_NAME = Stansbury, Willie DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters DEPT_KEY_PATH = 000;100;120 Row No = 17 EMP_NO = 141 FIRST_NAME = Pierre LAST_NAME = Osborne PHONE_EXT = NULL HIRE_DATE = 03/1/1994 DEPT_NO = 121 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = Switzerland SALARY = 110000 FULL_NAME = Osborne, Pierre DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters / Field Office: Switzerland DEPT_KEY_PATH = 000;100;120;121 Row No = 18 EMP_NO = 134 FIRST_NAME = Jacques LAST_NAME = Glon PHONE_EXT = NULL HIRE_DATE = 23/8/1993 DEPT_NO = 123 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = France SALARY = 390500 FULL_NAME = Glon, Jacques DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters / Field Office: France DEPT_KEY_PATH = 000;100;120;123 Row No = 19 EMP_NO = 121 FIRST_NAME = Roberto LAST_NAME = Ferrari PHONE_EXT = 1 HIRE_DATE = 12/7/1993 DEPT_NO = 125 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = Italy SALARY = 99000000 FULL_NAME = Ferrari, Roberto DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters / Field Office: Italy DEPT_KEY_PATH = 000;100;120;125 Row No = 20 EMP_NO = 2 FIRST_NAME = Robert LAST_NAME = Nelson PHONE_EXT = 250 HIRE_DATE = 28/12/1988 DEPT_NO = 600 JOB_CODE = VP JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 105900 FULL_NAME = Nelson, Robert DEPT_PATH = Corporate Headquarters / Engineering DEPT_KEY_PATH = 000;600 Row No = 21 EMP_NO = 109 FIRST_NAME = Kelly LAST_NAME = Brown PHONE_EXT = 202 HIRE_DATE = 04/2/1993 DEPT_NO = 600 JOB_CODE = Admin JOB_GRADE = 5 JOB_COUNTRY = USA SALARY = 27000 FULL_NAME = Brown, Kelly DEPT_PATH = Corporate Headquarters / Engineering DEPT_KEY_PATH = 000;600 Row No = 22 EMP_NO = 4 FIRST_NAME = Bruce LAST_NAME = Young PHONE_EXT = 233 HIRE_DATE = 28/12/1988 DEPT_NO = 621 JOB_CODE = Eng JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 97500 FULL_NAME = Young, Bruce DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Software Development DEPT_KEY_PATH = 000;600;620;621 Row No = 23 EMP_NO = 45 FIRST_NAME = Ashok LAST_NAME = Ramanathan PHONE_EXT = 209 HIRE_DATE = 01/8/1991 DEPT_NO = 621 JOB_CODE = Eng JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 80689.5 FULL_NAME = Ramanathan, Ashok DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Software Development DEPT_KEY_PATH = 000;600;620;621 Row No = 24 EMP_NO = 83 FIRST_NAME = Dana LAST_NAME = Bishop PHONE_EXT = 290 HIRE_DATE = 01/6/1992 DEPT_NO = 621 JOB_CODE = Eng JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 62550 FULL_NAME = Bishop, Dana DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Software Development DEPT_KEY_PATH = 000;600;620;621 Row No = 25 EMP_NO = 138 FIRST_NAME = T.J. LAST_NAME = Green PHONE_EXT = 218 HIRE_DATE = 01/11/1993 DEPT_NO = 621 JOB_CODE = Eng JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 36000 FULL_NAME = Green, T.J. DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Software Development DEPT_KEY_PATH = 000;600;620;621 Row No = 26 EMP_NO = 9 FIRST_NAME = Phil LAST_NAME = Forest PHONE_EXT = 229 HIRE_DATE = 17/4/1989 DEPT_NO = 622 JOB_CODE = Mngr JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 75060 FULL_NAME = Forest, Phil DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Quality Assurance DEPT_KEY_PATH = 000;600;620;622 Row No = 27 EMP_NO = 71 FIRST_NAME = Jennifer M. LAST_NAME = Burbank PHONE_EXT = 289 HIRE_DATE = 15/4/1992 DEPT_NO = 622 JOB_CODE = Eng JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 53167.5 FULL_NAME = Burbank, Jennifer M. DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Quality Assurance DEPT_KEY_PATH = 000;600;620;622 Row No = 28 EMP_NO = 145 FIRST_NAME = Mark LAST_NAME = Guckenheimer PHONE_EXT = 221 HIRE_DATE = 02/5/1994 DEPT_NO = 622 JOB_CODE = Eng JOB_GRADE = 5 JOB_COUNTRY = USA SALARY = 32000 FULL_NAME = Guckenheimer, Mark DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Quality Assurance DEPT_KEY_PATH = 000;600;620;622 Row No = 29 EMP_NO = 15 FIRST_NAME = Katherine LAST_NAME = Young PHONE_EXT = 231 HIRE_DATE = 14/6/1990 DEPT_NO = 623 JOB_CODE = Mngr JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 67241.25 FULL_NAME = Young, Katherine DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Customer Support DEPT_KEY_PATH = 000;600;620;623 Row No = 30 EMP_NO = 29 FIRST_NAME = Roger LAST_NAME = De Souza PHONE_EXT = 288 HIRE_DATE = 18/2/1991 DEPT_NO = 623 JOB_CODE = Eng JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 69482.63 FULL_NAME = De Souza, Roger DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Customer Support DEPT_KEY_PATH = 000;600;620;623 Row No = 31 EMP_NO = 44 FIRST_NAME = Leslie LAST_NAME = Phong PHONE_EXT = 216 HIRE_DATE = 03/6/1991 DEPT_NO = 623 JOB_CODE = Eng JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 56034.38 FULL_NAME = Phong, Leslie DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Customer Support DEPT_KEY_PATH = 000;600;620;623 Row No = 32 EMP_NO = 114 FIRST_NAME = Bill LAST_NAME = Parker PHONE_EXT = 247 HIRE_DATE = 01/6/1993 DEPT_NO = 623 JOB_CODE = Eng JOB_GRADE = 5 JOB_COUNTRY = USA SALARY = 35000 FULL_NAME = Parker, Bill DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Customer Support DEPT_KEY_PATH = 000;600;620;623 Row No = 33 EMP_NO = 136 FIRST_NAME = Scott LAST_NAME = Johnson PHONE_EXT = 265 HIRE_DATE = 13/9/1993 DEPT_NO = 623 JOB_CODE = Doc JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 60000 FULL_NAME = Johnson, Scott DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Customer Support DEPT_KEY_PATH = 000;600;620;623 Row No = 34 EMP_NO = 65 FIRST_NAME = Sue Anne LAST_NAME = O'Brien PHONE_EXT = 877 HIRE_DATE = 23/3/1992 DEPT_NO = 670 JOB_CODE = Admin JOB_GRADE = 5 JOB_COUNTRY = USA SALARY = 31275 FULL_NAME = O'Brien, Sue Anne DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. DEPT_KEY_PATH = 000;600;670 Row No = 35 EMP_NO = 107 FIRST_NAME = Kevin LAST_NAME = Cook PHONE_EXT = 894 HIRE_DATE = 01/2/1993 DEPT_NO = 670 JOB_CODE = Dir JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 111262.5 FULL_NAME = Cook, Kevin DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. DEPT_KEY_PATH = 000;600;670 Row No = 36 EMP_NO = 20 FIRST_NAME = Chris LAST_NAME = Papadopoulos PHONE_EXT = 887 HIRE_DATE = 01/1/1990 DEPT_NO = 671 JOB_CODE = Mngr JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 89655 FULL_NAME = Papadopoulos, Chris DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Research and Development DEPT_KEY_PATH = 000;600;670;671 Row No = 37 EMP_NO = 24 FIRST_NAME = Pete LAST_NAME = Fisher PHONE_EXT = 888 HIRE_DATE = 12/9/1990 DEPT_NO = 671 JOB_CODE = Eng JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 81810.19 FULL_NAME = Fisher, Pete DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Research and Development DEPT_KEY_PATH = 000;600;670;671 Row No = 38 EMP_NO = 113 FIRST_NAME = Mary LAST_NAME = Page PHONE_EXT = 845 HIRE_DATE = 12/4/1993 DEPT_NO = 671 JOB_CODE = Eng JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 48000 FULL_NAME = Page, Mary DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Research and Development DEPT_KEY_PATH = 000;600;670;671 Row No = 39 EMP_NO = 94 FIRST_NAME = Randy LAST_NAME = Williams PHONE_EXT = 892 HIRE_DATE = 08/8/1992 DEPT_NO = 672 JOB_CODE = Mngr JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 56295 FULL_NAME = Williams, Randy DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Customer Services DEPT_KEY_PATH = 000;600;670;672 Row No = 40 EMP_NO = 144 FIRST_NAME = John LAST_NAME = Montgomery PHONE_EXT = 820 HIRE_DATE = 30/3/1994 DEPT_NO = 672 JOB_CODE = Eng JOB_GRADE = 5 JOB_COUNTRY = USA SALARY = 35000 FULL_NAME = Montgomery, John DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Customer Services DEPT_KEY_PATH = 000;600;670;672 Row No = 41 EMP_NO = 14 FIRST_NAME = Stewart LAST_NAME = Hall PHONE_EXT = 227 HIRE_DATE = 04/6/1990 DEPT_NO = 900 JOB_CODE = Finan JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 69482.63 FULL_NAME = Hall, Stewart DEPT_PATH = Corporate Headquarters / Finance DEPT_KEY_PATH = 000;900 Row No = 42 EMP_NO = 46 FIRST_NAME = Walter LAST_NAME = Steadman PHONE_EXT = 210 HIRE_DATE = 09/8/1991 DEPT_NO = 900 JOB_CODE = CFO JOB_GRADE = 1 JOB_COUNTRY = USA SALARY = 116100 FULL_NAME = Steadman, Walter DEPT_PATH = Corporate Headquarters / Finance DEPT_KEY_PATH = 000;900 Rows printed = 42 Server Side Filter: Hire Date < 1/1/90 Row No = 1 EMP_NO = 8 FIRST_NAME = Leslie LAST_NAME = Johnson PHONE_EXT = 410 HIRE_DATE = 05/4/1989 DEPT_NO = 180 JOB_CODE = Mktg JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 64635 FULL_NAME = Johnson, Leslie DEPT_PATH = Corporate Headquarters / Sales and Marketing / Marketing DEPT_KEY_PATH = 000;100;180 Row No = 2 EMP_NO = 5 FIRST_NAME = Kim LAST_NAME = Lambert PHONE_EXT = 22 HIRE_DATE = 06/2/1989 DEPT_NO = 130 JOB_CODE = Eng JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 102750 FULL_NAME = Lambert, Kim DEPT_PATH = Corporate Headquarters / Sales and Marketing / Field Office: East Coast DEPT_KEY_PATH = 000;100;130 Row No = 3 EMP_NO = 2 FIRST_NAME = Robert LAST_NAME = Nelson PHONE_EXT = 250 HIRE_DATE = 28/12/1988 DEPT_NO = 600 JOB_CODE = VP JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 105900 FULL_NAME = Nelson, Robert DEPT_PATH = Corporate Headquarters / Engineering DEPT_KEY_PATH = 000;600 Row No = 4 EMP_NO = 4 FIRST_NAME = Bruce LAST_NAME = Young PHONE_EXT = 233 HIRE_DATE = 28/12/1988 DEPT_NO = 621 JOB_CODE = Eng JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 97500 FULL_NAME = Young, Bruce DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Software Development DEPT_KEY_PATH = 000;600;620;621 Row No = 5 EMP_NO = 9 FIRST_NAME = Phil LAST_NAME = Forest PHONE_EXT = 229 HIRE_DATE = 17/4/1989 DEPT_NO = 622 JOB_CODE = Mngr JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 75060 FULL_NAME = Forest, Phil DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Quality Assurance DEPT_KEY_PATH = 000;600;620;622 Rows printed = 5 Client side Filter: Hire Date > 1/1/94 Row No = 1 EMP_NO = 141 FIRST_NAME = Pierre LAST_NAME = Osborne PHONE_EXT = NULL HIRE_DATE = 03/1/1994 DEPT_NO = 121 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = Switzerland SALARY = 110000 FULL_NAME = Osborne, Pierre DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters / Field Office: Switzerland DEPT_KEY_PATH = 000;100;120;121 Row No = 2 EMP_NO = 145 FIRST_NAME = Mark LAST_NAME = Guckenheimer PHONE_EXT = 221 HIRE_DATE = 02/5/1994 DEPT_NO = 622 JOB_CODE = Eng JOB_GRADE = 5 JOB_COUNTRY = USA SALARY = 32000 FULL_NAME = Guckenheimer, Mark DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Quality Assurance DEPT_KEY_PATH = 000;600;620;622 Row No = 3 EMP_NO = 144 FIRST_NAME = John LAST_NAME = Montgomery PHONE_EXT = 820 HIRE_DATE = 30/3/1994 DEPT_NO = 672 JOB_CODE = Eng JOB_GRADE = 5 JOB_COUNTRY = USA SALARY = 35000 FULL_NAME = Montgomery, John DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Customer Services DEPT_KEY_PATH = 000;600;670;672 Rows printed = 3 TIBQuery with open parameters - select only records with First Name = Claudia Row No = 1 EMP_NO = 72 FIRST_NAME = Claudia LAST_NAME = Sutherland PHONE_EXT = NULL HIRE_DATE = 20/4/1992 DEPT_NO = 140 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = Canada SALARY = 100914 FULL_NAME = Sutherland, Claudia DEPT_PATH = Corporate Headquarters / Sales and Marketing / Field Office: Canada DEPT_KEY_PATH = 000;100;140 Rows printed = 1 ------------------------------------------------------ Running Test 02: Database Event Handlers and Idle disconnect Before Connect Connected to localhost:employee DPB: Item Count = 3 isc_dpb_user_name = SYSDBA isc_dpb_password = xxxxxxxx isc_dpb_lc_ctype = UTF8 Before Disconnect localhost:employee Disconnected after 1 ms Before Connect Connected to localhost:employee DPB: Item Count = 3 isc_dpb_user_name = SYSDBA isc_dpb_password = xxxxxxxx isc_dpb_lc_ctype = UTF8 Before Disconnect localhost:employee Disconnected after 1999 ms Idle Timer Expired for Test_Database_02 Database Closed Transaction Events Before Connect Connected to localhost:employee DPB: Item Count = 3 isc_dpb_user_name = SYSDBA isc_dpb_password = xxxxxxxx isc_dpb_lc_ctype = UTF8 Requested TPB: Item Count = 3 isc_tpb_concurrency isc_tpb_wait isc_tpb_read Transaction Starts TPB: Item Count = 3 isc_tpb_concurrency isc_tpb_wait isc_tpb_read Transaction Ending Transaction Ended after 1 ms Transaction idle timer test Requested TPB: Item Count = 3 isc_tpb_concurrency isc_tpb_wait isc_tpb_read Transaction Starts TPB: Item Count = 3 isc_tpb_concurrency isc_tpb_wait isc_tpb_read Transaction Ending Transaction Ended after 2001 ms Idle Timer Expired for Test_Transaction_02 Before Disconnect localhost:employee Disconnected after 2017 ms SQL Dialect Downgrade test Before Connect Connected to localhost:/tmp/ibx-testsuite/testsuite1.fdb DPB: Item Count = 4 isc_dpb_user_name = SYSDBA isc_dpb_password = xxxxxxxx isc_dpb_lc_ctype = UTF8 isc_dpb_set_db_sql_dialect = 1 localhost:/tmp/ibx-testsuite/testsuite1.fdb created Before Disconnect localhost:/tmp/ibx-testsuite/testsuite1.fdb Disconnected after 2 ms Before Connect Warning: SQL Dialect Downgrade of localhost:/tmp/ibx-testsuite/testsuite1.fdb Connected to localhost:/tmp/ibx-testsuite/testsuite1.fdb DPB: Item Count = 3 isc_dpb_user_name = SYSDBA isc_dpb_password = xxxxxxxx isc_dpb_lc_ctype = UTF8 Before Disconnect localhost:/tmp/ibx-testsuite/testsuite1.fdb Disconnected after 4 ms ------------------------------------------------------ Running Test 03: Database Information Authentication Method = Legacy_Auth Remote Protocol = TCPv4 Attachment SQLDialect = 3 Firebird/linux AMD64 (access method), version "LI-V2.5.9.27139 Firebird 2.5" Firebird/linux AMD64 (remote server), version "LI-V2.5.9.27139 Firebird 2.5/tcp (zeus)/P12" Firebird/linux AMD64 (remote interface), version "LI-V2.5.9.27139 Firebird 2.5/tcp (zeus)/P12" on disk structure version 11.2 FB Version: Firebird/linux AMD64 (access method), version "LI-V2.5.9.27139 Firebird 2.5", Firebird/linux AMD64 (remote server), version "LI-V2.5.9.27139 Firebird 2.5/tcp (zeus)/P12", Firebird/linux AMD64 (remote interface), version "LI-V2.5.9.27139 Firebird 2.5/tcp (zeus)/P12", on disk structure version 11.2 Firebird Library Pathname = /opt/firebird/2.5.9/lib/libfbembed.so DB SQLDialect = 3 Allocation = 272 Base Level = 4 DB File Name = /opt/firebird/2.5.9/examples/empbuild/employee.fdb DB Site Name = zeus DB Implementation No = 7 Database Created: 17/6/2019 19:37:08 DB Implementation Class = 0 Space is Reserved ODS Minor Version = 2 ODS Major Version = 11 Page Size = 4096 Version = LI-V6.3.9.27139 Firebird 2.5 Current Memory = 881080 Forced Writes Enabled Max Memory = 931288 Number of Buffers = 75 Sweep Interval = 20000 User Names: SYSDBA Fetches = 2282 Marks = 6 Reads = 91 Writes = 6 Transaction Count = 1 Read Idx Count RDB$FIELDS = 105 RDB$RELATION_FIELDS = 193 RDB$RELATIONS = 137 RDB$TYPES = 5 RDB$TRIGGERS = 36 RDB$CHARACTER_SETS = 14 RDB$COLLATIONS = 10 Read Seq Count RDB$PAGES = 88 RDB$DATABASE = 1 RDB$RELATIONS = 53 Database is Read/Write Hex Dump of Database Page 100: 7 70 39 30 C 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 21 2 0 0 16 0 6F 1 0 0 27 0 50 2 0 0 0 0 7 49 4E 54 45 47 5F 31 A9 0 7 30 AA 0 7 31 AB 0 7 32 AC 0 7 33 AD 0 7 34 AE 0 7 35 AF 0 7 36 B0 0 7 37 B1 0 7 38 B2 0 7 39 A1 0 6 32 B3 0 7 30 B4 0 7 31 B5 0 7 32 B6 0 7 33 B7 0 7 34 B8 0 7 35 B9 0 7 36 BA 0 7 37 BB 0 7 38 BC 0 7 39 A2 0 6 33 BD 0 7 30 BE 0 7 31 BF 0 7 32 A0 1 7 33 A1 1 7 34 A2 1 7 35 A3 1 7 36 A4 1 7 37 A5 1 7 38 A6 1 7 39 A3 0 6 34 A7 1 7 30 A8 1 7 31 A9 1 7 32 AA 1 7 33 AB 1 7 34 AC 1 7 35 AF 7 7 36 B0 7 7 37 B1 7 7 38 B2 7 7 39 A4 0 6 35 B3 7 7 30 B4 7 7 31 B5 7 7 32 B6 7 7 33 B7 7 7 34 B8 7 7 35 B9 7 7 36 BA 7 7 37 BB 7 7 38 BC 7 7 39 A5 0 6 36 BD 7 7 30 BE 7 7 31 BF 7 7 32 A0 8 7 33 A1 8 7 34 A2 8 7 35 A3 8 7 36 A4 8 7 37 A5 8 7 38 A6 8 7 39 A6 0 6 37 A7 8 7 30 A8 8 7 31 A9 8 7 32 AA 8 7 33 AB 8 7 34 AC 8 7 35 AD 8 7 36 AE 8 7 37 AF 8 7 38 B0 8 7 39 A7 0 6 38 B1 8 7 30 A8 0 6 39 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ------------------------------------------------------ Running Test 04: Handling of data types up to Firebird 3 Creating Database from resources/Test04.sql Create Table IBXTest ( TableKey Integer not null, F1 Smallint, F2 Float, F3 Double Precision, F4 Decimal(9,3), F5 Decimal(18,4), F6 Date, F7 Timestamp, F8 Char (2), F9 VarChar(256), F10 Blob, F11 BigInt, "f12" Integer, F13 Time, F14 Blob sub_type text, F15 Double Precision Computed by (F2 + F3), MyArray Integer [0:16], "GRANTS" VarChar(20), "My Field" VarChar(32), "MY Field" VarChar(32), Primary Key(TableKey) ); Transaction Exec Query "Create Table IBXTest ( TableKey Integer not null, F1 Smallint, F2 Float, F3 Double Precision, F4 Decimal(9,3), F5 Decimal(18,4), F6 Date, F7 Timestamp, F8 Char (2), F9 VarChar(256), F10 Blob, F11 BigInt, "f12" Integer, F13 Time, F14 Blob sub_type text, F15 Double Precision Computed by (F2 + F3), MyArray Integer [0:16], "GRANTS" VarChar(20), "My Field" VarChar(32), "MY Field" VarChar(32), Primary Key(TableKey) ) " Create Generator IBXGen; Transaction Exec Query "Create Generator IBXGen " Transaction Exec Query "Select A.TABLEKEY, A.F1, A.F2, A.F3, A.F4, A.F5, A.F6, A.F7, A.F8, A.F9, A.F10, A.F11, A."f12", A.F13, A.F14, A.MyArray, A.GRANTS, A."My Field" as MYFIELD1, A."MY Field" as MYFIELD2 From IBXTEST A " Add a record Transaction Exec Query "Select Gen_ID(IBXGEN,1) From RDB$Database " Transaction Insert Transaction Exec Query "Insert Into IBXTEST(TABLEKEY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, "f12", F13, F14, MyArray, GRANTS) Values(:TABLEKEY, :F1, :F2, :F3, :F4, :F5, :F6, :F7,:F8, :F9, :F10, :F11, :F12, :F13, :F14, :MyArray, :GRANTS) Returning MyArray, F10, F14, F15 " Transaction Post Add and edit a record Transaction Exec Query "Select Gen_ID(IBXGEN,1) From RDB$Database " Transaction Insert Transaction Exec Query "Insert Into IBXTEST(TABLEKEY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, "f12", F13, F14, MyArray, GRANTS) Values(:TABLEKEY, :F1, :F2, :F3, :F4, :F5, :F6, :F7,:F8, :F9, :F10, :F11, :F12, :F13, :F14, :MyArray, :GRANTS) Returning MyArray, F10, F14, F15 " Transaction Post Transaction Edit Transaction Exec Query "Update IBXTEST A Set A.F1 = :F1, A.F2 = :F2, A.F3 = :F3, A.F4 = :F4, A.F5 = :F5, A.F6 = :F6, A.F7 = :F7, A.F8 = :F8, A.F9 = :F9, A.F10 = :F10, A.F11 = :F11, A."f12" = :F12, A.F13 = :F13, A.F14 = :F14, A.MyArray = :MyArray, A."My Field" = :MYFIELD1, A."MY Field" = :MYFIELD2, A.GRANTS = :GRANTS Where A.TABLEKEY = :OLD_TABLEKEY " Transaction Post Clear Blob and Array Transaction Exec Query "Select Gen_ID(IBXGEN,1) From RDB$Database " Transaction Insert Transaction Exec Query "Insert Into IBXTEST(TABLEKEY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, "f12", F13, F14, MyArray, GRANTS) Values(:TABLEKEY, :F1, :F2, :F3, :F4, :F5, :F6, :F7,:F8, :F9, :F10, :F11, :F12, :F13, :F14, :MyArray, :GRANTS) Returning MyArray, F10, F14, F15 " Transaction Post Transaction Edit Transaction Exec Query "Update IBXTEST A Set A.F1 = :F1, A.F2 = :F2, A.F3 = :F3, A.F4 = :F4, A.F5 = :F5, A.F6 = :F6, A.F7 = :F7, A.F8 = :F8, A.F9 = :F9, A.F10 = :F10, A.F11 = :F11, A."f12" = :F12, A.F13 = :F13, A.F14 = :F14, A.MyArray = :MyArray, A."My Field" = :MYFIELD1, A."MY Field" = :MYFIELD2, A.GRANTS = :GRANTS Where A.TABLEKEY = :OLD_TABLEKEY " Transaction Exec Query "Select A.TABLEKEY, A.F1, A.F2, A.F3, A.F4, A.F5, A.F6, A.F7, A.F8, A.F9, A.F10, A.F11, A."f12", A.F13, A.F14, A.MyArray, A.GRANTS, A."My Field" as MYFIELD1, A."MY Field" as MYFIELD2 From IBXTEST A Where A.TABLEKEY = :TABLEKEY " Transaction Post Transaction Exec Query "Select A.TABLEKEY, A.F1, A.F2, A.F3, A.F4, A.F5, A.F6, A.F7, A.F8, A.F9, A.F10, A.F11, A."f12", A.F13, A.F14, A.MyArray, A.GRANTS, A."My Field" as MYFIELD1, A."MY Field" as MYFIELD2 From IBXTEST A " Row No = 1 TABLEKEY = 1 F1 = 2 F2 = 0.314000010490 F3 = 0.314123456780 F4 = 101.314 F5 = 101.99 F6 = 25/12/2007 F7 = 25/12/2007 12:30:29.130 F8 = XX (Charset = UTF8 Codepage = 65001) F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001) F10 = (blob), Length = 543916 F11 = 9223372036854775807 F12 = 65566 F13 = 12:30:45.000 F14 (Charset = UTF8 Codepage = 65001) If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o'er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: 'Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe'er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l'amour, continuez à jouer; Donnez-m'en un excès, que, surexcité, L'appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m'est venu à l'oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l'odeur! Assez; Pas plus: «Ce n'est pas si doux maintenant qu'avant. O esprit d'amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n'y entre, De quelle validité et de quelle hauteur soe'er, Mais tombe dans l'abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84) GRANTS = NULL MYFIELD1 = NULL MYFIELD2 = NULL Row No = 2 TABLEKEY = 2 F1 = 2 F2 = 0.314000010490 F3 = 0.314123456780 F4 = 101.314 F5 = 101.99 F6 = 25/12/2007 F7 = 25/12/2007 12:30:29.130 F8 = XX (Charset = UTF8 Codepage = 65001) F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001) F10 = (blob), Length = 543916 F11 = 9223372036854775807 F12 = 65566 F13 = 12:30:45.000 F14 (Charset = UTF8 Codepage = 65001) If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o'er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: 'Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe'er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l'amour, continuez à jouer; Donnez-m'en un excès, que, surexcité, L'appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m'est venu à l'oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l'odeur! Assez; Pas plus: «Ce n'est pas si doux maintenant qu'avant. O esprit d'amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n'y entre, De quelle validité et de quelle hauteur soe'er, Mais tombe dans l'abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84) GRANTS = NULL MYFIELD1 = My Field (Charset = UTF8 Codepage = 65001) MYFIELD2 = MY Field (Charset = UTF8 Codepage = 65001) Row No = 3 TABLEKEY = 3 F1 = 2 F2 = 0.314000010490 F3 = 0.314123456780 F4 = 101.314 F5 = 101.99 F6 = 25/12/2007 F7 = 25/12/2007 12:30:29.130 F8 = XX (Charset = UTF8 Codepage = 65001) F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001) F10 = (blob), Length = 543916 F11 = 9223372036854775807 F12 = 65566 F13 = 12:30:45.000 F14 = NULL MYARRAY = NULL GRANTS = NULL MYFIELD1 = NULL MYFIELD2 = NULL Rows printed = 3 Transaction Exec Query "Delete From IBXTEST A Where A.TABLEKEY = :OLD_TABLEKEY " Transaction Delete Transaction Exec Query "Select A.TABLEKEY, A.F1, A.F2, A.F3, A.F4, A.F5, A.F6, A.F7, A.F8, A.F9, A.F10, A.F11, A."f12", A.F13, A.F14, A.MyArray, A.GRANTS, A."My Field" as MYFIELD1, A."MY Field" as MYFIELD2 From IBXTEST A " Delete a record Transaction Exec Query "Delete From IBXTEST A Where A.TABLEKEY = :OLD_TABLEKEY " Transaction Delete Row No = 1 TABLEKEY = 2 F1 = 2 F2 = 0.314000010490 F3 = 0.314123456780 F4 = 101.314 F5 = 101.99 F6 = 25/12/2007 F7 = 25/12/2007 12:30:29.130 F8 = XX (Charset = UTF8 Codepage = 65001) F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001) F10 = (blob), Length = 543916 F11 = 9223372036854775807 F12 = 65566 F13 = 12:30:45.000 F14 (Charset = UTF8 Codepage = 65001) If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o'er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: 'Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe'er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l'amour, continuez à jouer; Donnez-m'en un excès, que, surexcité, L'appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m'est venu à l'oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l'odeur! Assez; Pas plus: «Ce n'est pas si doux maintenant qu'avant. O esprit d'amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n'y entre, De quelle validité et de quelle hauteur soe'er, Mais tombe dans l'abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84) GRANTS = NULL MYFIELD1 = My Field (Charset = UTF8 Codepage = 65001) MYFIELD2 = MY Field (Charset = UTF8 Codepage = 65001) Rows printed = 1 Rollback Retaining Transaction Exec Query "Select A.TABLEKEY, A.F1, A.F2, A.F3, A.F4, A.F5, A.F6, A.F7, A.F8, A.F9, A.F10, A.F11, A."f12", A.F13, A.F14, A.MyArray, A.GRANTS, A."My Field" as MYFIELD1, A."MY Field" as MYFIELD2 From IBXTEST A " Row No = 1 TABLEKEY = 1 F1 = 2 F2 = 0.314000010490 F3 = 0.314123456780 F4 = 101.314 F5 = 101.99 F6 = 25/12/2007 F7 = 25/12/2007 12:30:29.130 F8 = XX (Charset = UTF8 Codepage = 65001) F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001) F10 = (blob), Length = 543916 F11 = 9223372036854775807 F12 = 65566 F13 = 12:30:45.000 F14 (Charset = UTF8 Codepage = 65001) If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o'er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: 'Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe'er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l'amour, continuez à jouer; Donnez-m'en un excès, que, surexcité, L'appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m'est venu à l'oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l'odeur! Assez; Pas plus: «Ce n'est pas si doux maintenant qu'avant. O esprit d'amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n'y entre, De quelle validité et de quelle hauteur soe'er, Mais tombe dans l'abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84) GRANTS = NULL MYFIELD1 = NULL MYFIELD2 = NULL Row No = 2 TABLEKEY = 2 F1 = 2 F2 = 0.314000010490 F3 = 0.314123456780 F4 = 101.314 F5 = 101.99 F6 = 25/12/2007 F7 = 25/12/2007 12:30:29.130 F8 = XX (Charset = UTF8 Codepage = 65001) F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001) F10 = (blob), Length = 543916 F11 = 9223372036854775807 F12 = 65566 F13 = 12:30:45.000 F14 (Charset = UTF8 Codepage = 65001) If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o'er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: 'Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe'er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l'amour, continuez à jouer; Donnez-m'en un excès, que, surexcité, L'appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m'est venu à l'oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l'odeur! Assez; Pas plus: «Ce n'est pas si doux maintenant qu'avant. O esprit d'amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n'y entre, De quelle validité et de quelle hauteur soe'er, Mais tombe dans l'abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84) GRANTS = NULL MYFIELD1 = My Field (Charset = UTF8 Codepage = 65001) MYFIELD2 = MY Field (Charset = UTF8 Codepage = 65001) Rows printed = 2 Delete a record Transaction Exec Query "Delete From IBXTEST A Where A.TABLEKEY = :OLD_TABLEKEY " Transaction Delete Row No = 1 TABLEKEY = 2 F1 = 2 F2 = 0.314000010490 F3 = 0.314123456780 F4 = 101.314 F5 = 101.99 F6 = 25/12/2007 F7 = 25/12/2007 12:30:29.130 F8 = XX (Charset = UTF8 Codepage = 65001) F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001) F10 = (blob), Length = 543916 F11 = 9223372036854775807 F12 = 65566 F13 = 12:30:45.000 F14 (Charset = UTF8 Codepage = 65001) If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o'er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: 'Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe'er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l'amour, continuez à jouer; Donnez-m'en un excès, que, surexcité, L'appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m'est venu à l'oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l'odeur! Assez; Pas plus: «Ce n'est pas si doux maintenant qu'avant. O esprit d'amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n'y entre, De quelle validité et de quelle hauteur soe'er, Mais tombe dans l'abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84) GRANTS = NULL MYFIELD1 = My Field (Charset = UTF8 Codepage = 65001) MYFIELD2 = MY Field (Charset = UTF8 Codepage = 65001) Rows printed = 1 Rollback Transaction Exec Query "Select A.TABLEKEY, A.F1, A.F2, A.F3, A.F4, A.F5, A.F6, A.F7, A.F8, A.F9, A.F10, A.F11, A."f12", A.F13, A.F14, A.MyArray, A.GRANTS, A."My Field" as MYFIELD1, A."MY Field" as MYFIELD2 From IBXTEST A " Row No = 1 TABLEKEY = 1 F1 = 2 F2 = 0.314000010490 F3 = 0.314123456780 F4 = 101.314 F5 = 101.99 F6 = 25/12/2007 F7 = 25/12/2007 12:30:29.130 F8 = XX (Charset = UTF8 Codepage = 65001) F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001) F10 = (blob), Length = 543916 F11 = 9223372036854775807 F12 = 65566 F13 = 12:30:45.000 F14 (Charset = UTF8 Codepage = 65001) If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o'er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: 'Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe'er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l'amour, continuez à jouer; Donnez-m'en un excès, que, surexcité, L'appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m'est venu à l'oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l'odeur! Assez; Pas plus: «Ce n'est pas si doux maintenant qu'avant. O esprit d'amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n'y entre, De quelle validité et de quelle hauteur soe'er, Mais tombe dans l'abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84) GRANTS = NULL MYFIELD1 = NULL MYFIELD2 = NULL Row No = 2 TABLEKEY = 2 F1 = 2 F2 = 0.314000010490 F3 = 0.314123456780 F4 = 101.314 F5 = 101.99 F6 = 25/12/2007 F7 = 25/12/2007 12:30:29.130 F8 = XX (Charset = UTF8 Codepage = 65001) F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001) F10 = (blob), Length = 543916 F11 = 9223372036854775807 F12 = 65566 F13 = 12:30:45.000 F14 (Charset = UTF8 Codepage = 65001) If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o'er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: 'Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe'er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l'amour, continuez à jouer; Donnez-m'en un excès, que, surexcité, L'appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m'est venu à l'oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l'odeur! Assez; Pas plus: «Ce n'est pas si doux maintenant qu'avant. O esprit d'amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n'y entre, De quelle validité et de quelle hauteur soe'er, Mais tombe dans l'abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84) GRANTS = NULL MYFIELD1 = My Field (Charset = UTF8 Codepage = 65001) MYFIELD2 = MY Field (Charset = UTF8 Codepage = 65001) Rows printed = 2 Commit Retaining Transaction Exec Query "Select Gen_ID(IBXGEN,1) From RDB$Database " Transaction Insert Transaction Exec Query "Insert Into IBXTEST(TABLEKEY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, "f12", F13, F14, MyArray, GRANTS) Values(:TABLEKEY, :F1, :F2, :F3, :F4, :F5, :F6, :F7,:F8, :F9, :F10, :F11, :F12, :F13, :F14, :MyArray, :GRANTS) Returning MyArray, F10, F14, F15 " Transaction Post Transaction Exec Query "Select A.TABLEKEY, A.F1, A.F2, A.F3, A.F4, A.F5, A.F6, A.F7, A.F8, A.F9, A.F10, A.F11, A."f12", A.F13, A.F14, A.MyArray, A.GRANTS, A."My Field" as MYFIELD1, A."MY Field" as MYFIELD2 From IBXTEST A " Row No = 1 TABLEKEY = 1 F1 = 2 F2 = 0.314000010490 F3 = 0.314123456780 F4 = 101.314 F5 = 101.99 F6 = 25/12/2007 F7 = 25/12/2007 12:30:29.130 F8 = XX (Charset = UTF8 Codepage = 65001) F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001) F10 = (blob), Length = 543916 F11 = 9223372036854775807 F12 = 65566 F13 = 12:30:45.000 F14 (Charset = UTF8 Codepage = 65001) If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o'er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: 'Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe'er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l'amour, continuez à jouer; Donnez-m'en un excès, que, surexcité, L'appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m'est venu à l'oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l'odeur! Assez; Pas plus: «Ce n'est pas si doux maintenant qu'avant. O esprit d'amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n'y entre, De quelle validité et de quelle hauteur soe'er, Mais tombe dans l'abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84) GRANTS = NULL MYFIELD1 = NULL MYFIELD2 = NULL Row No = 2 TABLEKEY = 2 F1 = 2 F2 = 0.314000010490 F3 = 0.314123456780 F4 = 101.314 F5 = 101.99 F6 = 25/12/2007 F7 = 25/12/2007 12:30:29.130 F8 = XX (Charset = UTF8 Codepage = 65001) F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001) F10 = (blob), Length = 543916 F11 = 9223372036854775807 F12 = 65566 F13 = 12:30:45.000 F14 (Charset = UTF8 Codepage = 65001) If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o'er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: 'Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe'er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l'amour, continuez à jouer; Donnez-m'en un excès, que, surexcité, L'appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m'est venu à l'oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l'odeur! Assez; Pas plus: «Ce n'est pas si doux maintenant qu'avant. O esprit d'amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n'y entre, De quelle validité et de quelle hauteur soe'er, Mais tombe dans l'abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84) GRANTS = NULL MYFIELD1 = My Field (Charset = UTF8 Codepage = 65001) MYFIELD2 = MY Field (Charset = UTF8 Codepage = 65001) Row No = 3 TABLEKEY = 4 F1 = 2 F2 = 0.314000010490 F3 = 0.314123456780 F4 = 101.314 F5 = 101.99 F6 = 25/12/2007 F7 = 25/12/2007 12:30:29.130 F8 = XX (Charset = UTF8 Codepage = 65001) F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001) F10 = (blob), Length = 543916 F11 = 9223372036854775807 F12 = 65566 F13 = 12:30:45.000 F14 (Charset = UTF8 Codepage = 65001) If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o'er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: 'Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe'er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l'amour, continuez à jouer; Donnez-m'en un excès, que, surexcité, L'appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m'est venu à l'oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l'odeur! Assez; Pas plus: «Ce n'est pas si doux maintenant qu'avant. O esprit d'amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n'y entre, De quelle validité et de quelle hauteur soe'er, Mais tombe dans l'abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84) GRANTS = NULL MYFIELD1 = NULL MYFIELD2 = NULL Rows printed = 3 Commit Transaction Exec Query "Select A.TABLEKEY, A.F1, A.F2, A.F3, A.F4, A.F5, A.F6, A.F7, A.F8, A.F9, A.F10, A.F11, A."f12", A.F13, A.F14, A.MyArray, A.GRANTS, A."My Field" as MYFIELD1, A."MY Field" as MYFIELD2 From IBXTEST A " Row No = 1 TABLEKEY = 1 F1 = 2 F2 = 0.314000010490 F3 = 0.314123456780 F4 = 101.314 F5 = 101.99 F6 = 25/12/2007 F7 = 25/12/2007 12:30:29.130 F8 = XX (Charset = UTF8 Codepage = 65001) F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001) F10 = (blob), Length = 543916 F11 = 9223372036854775807 F12 = 65566 F13 = 12:30:45.000 F14 (Charset = UTF8 Codepage = 65001) If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o'er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: 'Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe'er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l'amour, continuez à jouer; Donnez-m'en un excès, que, surexcité, L'appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m'est venu à l'oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l'odeur! Assez; Pas plus: «Ce n'est pas si doux maintenant qu'avant. O esprit d'amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n'y entre, De quelle validité et de quelle hauteur soe'er, Mais tombe dans l'abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84) GRANTS = NULL MYFIELD1 = NULL MYFIELD2 = NULL Row No = 2 TABLEKEY = 2 F1 = 2 F2 = 0.314000010490 F3 = 0.314123456780 F4 = 101.314 F5 = 101.99 F6 = 25/12/2007 F7 = 25/12/2007 12:30:29.130 F8 = XX (Charset = UTF8 Codepage = 65001) F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001) F10 = (blob), Length = 543916 F11 = 9223372036854775807 F12 = 65566 F13 = 12:30:45.000 F14 (Charset = UTF8 Codepage = 65001) If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o'er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: 'Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe'er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l'amour, continuez à jouer; Donnez-m'en un excès, que, surexcité, L'appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m'est venu à l'oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l'odeur! Assez; Pas plus: «Ce n'est pas si doux maintenant qu'avant. O esprit d'amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n'y entre, De quelle validité et de quelle hauteur soe'er, Mais tombe dans l'abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84) GRANTS = NULL MYFIELD1 = My Field (Charset = UTF8 Codepage = 65001) MYFIELD2 = MY Field (Charset = UTF8 Codepage = 65001) Row No = 3 TABLEKEY = 4 F1 = 2 F2 = 0.314000010490 F3 = 0.314123456780 F4 = 101.314 F5 = 101.99 F6 = 25/12/2007 F7 = 25/12/2007 12:30:29.130 F8 = XX (Charset = UTF8 Codepage = 65001) F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001) F10 = (blob), Length = 543916 F11 = 9223372036854775807 F12 = 65566 F13 = 12:30:45.000 F14 (Charset = UTF8 Codepage = 65001) If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o'er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: 'Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe'er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l'amour, continuez à jouer; Donnez-m'en un excès, que, surexcité, L'appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m'est venu à l'oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l'odeur! Assez; Pas plus: «Ce n'est pas si doux maintenant qu'avant. O esprit d'amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n'y entre, De quelle validité et de quelle hauteur soe'er, Mais tombe dans l'abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84) GRANTS = NULL MYFIELD1 = NULL MYFIELD2 = NULL Rows printed = 3 Creating Database from SQL Creating Database from resources/Test04.sql Create Table IBXTest ( TableKey Integer not null, F1 Smallint, F2 Float, F3 Double Precision, F4 Decimal(9,3), F5 Decimal(18,4), F6 Date, F7 Timestamp, F8 Char (2), F9 VarChar(256), F10 Blob, F11 BigInt, "f12" Integer, F13 Time, F14 Blob sub_type text, F15 Double Precision Computed by (F2 + F3), MyArray Integer [0:16], "GRANTS" VarChar(20), "My Field" VarChar(32), "MY Field" VarChar(32), Primary Key(TableKey) ); Transaction Exec Query "Create Table IBXTest ( TableKey Integer not null, F1 Smallint, F2 Float, F3 Double Precision, F4 Decimal(9,3), F5 Decimal(18,4), F6 Date, F7 Timestamp, F8 Char (2), F9 VarChar(256), F10 Blob, F11 BigInt, "f12" Integer, F13 Time, F14 Blob sub_type text, F15 Double Precision Computed by (F2 + F3), MyArray Integer [0:16], "GRANTS" VarChar(20), "My Field" VarChar(32), "MY Field" VarChar(32), Primary Key(TableKey) ) " Create Generator IBXGen; Transaction Exec Query "Create Generator IBXGen " Database Name = localhost:/tmp/ibx-testsuite/testsuite1.fdb Transaction Exec Query "Select A.TABLEKEY, A.F1, A.F2, A.F3, A.F4, A.F5, A.F6, A.F7, A.F8, A.F9, A.F10, A.F11, A."f12", A.F13, A.F14, A.MyArray, A.GRANTS, A."My Field" as MYFIELD1, A."MY Field" as MYFIELD2 From IBXTEST A " Add a record Transaction Exec Query "Select Gen_ID(IBXGEN,1) From RDB$Database " Transaction Insert Transaction Exec Query "Insert Into IBXTEST(TABLEKEY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, "f12", F13, F14, MyArray, GRANTS) Values(:TABLEKEY, :F1, :F2, :F3, :F4, :F5, :F6, :F7,:F8, :F9, :F10, :F11, :F12, :F13, :F14, :MyArray, :GRANTS) Returning MyArray, F10, F14, F15 " Transaction Post Row No = 1 TABLEKEY = 1 F1 = 2 F2 = 0.314000000000 F3 = 0.314123456780 F4 = 101.314 F5 = 101.99 F6 = 25/12/2007 F7 = 25/12/2007 12:30:29.130 F8 = XX (Charset = UTF8 Codepage = 65001) F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001) F10 = (blob), Length = 543916 F11 = 9223372036854775807 F12 = 65566 F13 = 12:30:45.000 F14 (Charset = UTF8 Codepage = 65001) If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o'er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: 'Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe'er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l'amour, continuez à jouer; Donnez-m'en un excès, que, surexcité, L'appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m'est venu à l'oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l'odeur! Assez; Pas plus: «Ce n'est pas si doux maintenant qu'avant. O esprit d'amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n'y entre, De quelle validité et de quelle hauteur soe'er, Mais tombe dans l'abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84) GRANTS = NULL MYFIELD1 = NULL MYFIELD2 = NULL Rows printed = 1 ------------------------------------------------------ Skipping Test 05: Firebird 4 Data Types Skipping 05 ------------------------------------------------------ Running Test 06: Multi-Database Transaction Creating Database from resources/Test06.sql Create Table IBXTest ( TableKey Integer not null, F1 Smallint, F2 Float, F3 Double Precision, F4 Decimal(9,3), F5 Decimal(18,4), F6 Date, F7 Timestamp, F8 Char (2), F9 VarChar(256), F10 Blob, F11 BigInt, "f12" Integer, F13 Time, "GRANTS" VarChar(20), "My Field" VarChar(32), "MY Field" VarChar(32), Primary Key(TableKey) ); Create Generator IBXGen; Creating Database from resources/Test06.sql Create Table IBXTest ( TableKey Integer not null, F1 Smallint, F2 Float, F3 Double Precision, F4 Decimal(9,3), F5 Decimal(18,4), F6 Date, F7 Timestamp, F8 Char (2), F9 VarChar(256), F10 Blob, F11 BigInt, "f12" Integer, F13 Time, "GRANTS" VarChar(20), "My Field" VarChar(32), "MY Field" VarChar(32), Primary Key(TableKey) ); Create Generator IBXGen; Add Row to First Database TABLEKEY = 1 Add Row to Second Database TABLEKEY = 1 Query First Database TABLEKEY = 1 F1 = 1 Query Second Database TABLEKEY = 1 F1 = 2 ------------------------------------------------------ Running Test 07: Open and read from Employee Database using IBSQL Metadata SQLType =SQL_SHORT sub type = 0 Table = EMPLOYEE Owner = SYSDBA Column Name = EMP_NO Alias Name = EMP_NO Field Name = EMP_NO Scale = 0 Charset id = 0 Not Null Size = 2 SQLType =SQL_VARYING sub type = 0 Table = EMPLOYEE Owner = SYSDBA Column Name = FIRST_NAME Alias Name = FIRST_NAME Field Name = FIRST_NAME Scale = 0 Charset id = 0 Not Null Size = 15 SQLType =SQL_VARYING sub type = 0 Table = EMPLOYEE Owner = SYSDBA Column Name = LAST_NAME Alias Name = LAST_NAME Field Name = LAST_NAME Scale = 0 Charset id = 0 Not Null Size = 20 SQLType =SQL_VARYING sub type = 0 Table = EMPLOYEE Owner = SYSDBA Column Name = PHONE_EXT Alias Name = PHONE_EXT Field Name = PHONE_EXT Scale = 0 Charset id = 0 Nullable Size = 4 SQLType =SQL_TIMESTAMP sub type = 0 Table = EMPLOYEE Owner = SYSDBA Column Name = HIRE_DATE Alias Name = HIRE_DATE Field Name = HIRE_DATE Scale = 0 Charset id = 0 Not Null Size = 8 SQLType =SQL_TEXT sub type = 0 Table = EMPLOYEE Owner = SYSDBA Column Name = DEPT_NO Alias Name = DEPT_NO Field Name = DEPT_NO Scale = 0 Charset id = 0 Not Null Size = 3 SQLType =SQL_VARYING sub type = 0 Table = EMPLOYEE Owner = SYSDBA Column Name = JOB_CODE Alias Name = JOB_CODE Field Name = JOB_CODE Scale = 0 Charset id = 0 Not Null Size = 5 SQLType =SQL_SHORT sub type = 0 Table = EMPLOYEE Owner = SYSDBA Column Name = JOB_GRADE Alias Name = JOB_GRADE Field Name = JOB_GRADE Scale = 0 Charset id = 0 Not Null Size = 2 SQLType =SQL_VARYING sub type = 0 Table = EMPLOYEE Owner = SYSDBA Column Name = JOB_COUNTRY Alias Name = JOB_COUNTRY Field Name = JOB_COUNTRY Scale = 0 Charset id = 0 Not Null Size = 15 SQLType =SQL_INT64 sub type = 0 Table = EMPLOYEE Owner = SYSDBA Column Name = SALARY Alias Name = SALARY Field Name = SALARY Scale = -2 Charset id = 0 Not Null Size = 8 SQLType =SQL_VARYING sub type = 0 Table = EMPLOYEE Owner = SYSDBA Column Name = FULL_NAME Alias Name = FULL_NAME Field Name = FULL_NAME Scale = 0 Charset id = 0 Nullable Size = 37 SQLType =SQL_VARYING sub type = 0 Table = Owner = Column Name = Alias Name = DEPT_PATH Field Name = DEPT_PATH Scale = 0 Charset id = 0 Not Null Size = 256 SQLType =SQL_VARYING sub type = 0 Table = Owner = Column Name = Alias Name = DEPT_KEY_PATH Field Name = DEPT_KEY_PATH Scale = 0 Charset id = 0 Not Null Size = 64 PLAN SORT (JOIN ((DEPTS DEPARTMENT INDEX (RDB$FOREIGN6)) PLAN (DEPTS D INDEX (RDB$FOREIGN6)), A INDEX (RDB$FOREIGN8))) EMP_NO = 2 FIRST_NAME = Robert LAST_NAME = Nelson PHONE_EXT = 250 HIRE_DATE = 1988/12/28 00:00:00.0000 DEPT_NO = 600 JOB_CODE = VP JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 105,900.00 FULL_NAME = Nelson, Robert DEPT_PATH = Corporate Headquarters / Engineering DEPT_KEY_PATH = 000;600 EMP_NO = 4 FIRST_NAME = Bruce LAST_NAME = Young PHONE_EXT = 233 HIRE_DATE = 1988/12/28 00:00:00.0000 DEPT_NO = 621 JOB_CODE = Eng JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 97,500.00 FULL_NAME = Young, Bruce DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Software Development DEPT_KEY_PATH = 000;600;620;621 EMP_NO = 5 FIRST_NAME = Kim LAST_NAME = Lambert PHONE_EXT = 22 HIRE_DATE = 1989/02/06 00:00:00.0000 DEPT_NO = 130 JOB_CODE = Eng JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 102,750.00 FULL_NAME = Lambert, Kim DEPT_PATH = Corporate Headquarters / Sales and Marketing / Field Office: East Coast DEPT_KEY_PATH = 000;100;130 EMP_NO = 8 FIRST_NAME = Leslie LAST_NAME = Johnson PHONE_EXT = 410 HIRE_DATE = 1989/04/05 00:00:00.0000 DEPT_NO = 180 JOB_CODE = Mktg JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 64,635.00 FULL_NAME = Johnson, Leslie DEPT_PATH = Corporate Headquarters / Sales and Marketing / Marketing DEPT_KEY_PATH = 000;100;180 EMP_NO = 9 FIRST_NAME = Phil LAST_NAME = Forest PHONE_EXT = 229 HIRE_DATE = 1989/04/17 00:00:00.0000 DEPT_NO = 622 JOB_CODE = Mngr JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 75,060.00 FULL_NAME = Forest, Phil DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Quality Assurance DEPT_KEY_PATH = 000;600;620;622 EMP_NO = 11 FIRST_NAME = K. J. LAST_NAME = Weston PHONE_EXT = 34 HIRE_DATE = 1990/01/17 00:00:00.0000 DEPT_NO = 130 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 86,292.94 FULL_NAME = Weston, K. J. DEPT_PATH = Corporate Headquarters / Sales and Marketing / Field Office: East Coast DEPT_KEY_PATH = 000;100;130 EMP_NO = 12 FIRST_NAME = Terri LAST_NAME = Lee PHONE_EXT = 256 HIRE_DATE = 1990/05/01 00:00:00.0000 DEPT_NO = 000 JOB_CODE = Admin JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 53,793.00 FULL_NAME = Lee, Terri DEPT_PATH = Corporate Headquarters DEPT_KEY_PATH = 000 EMP_NO = 14 FIRST_NAME = Stewart LAST_NAME = Hall PHONE_EXT = 227 HIRE_DATE = 1990/06/04 00:00:00.0000 DEPT_NO = 900 JOB_CODE = Finan JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 69,482.63 FULL_NAME = Hall, Stewart DEPT_PATH = Corporate Headquarters / Finance DEPT_KEY_PATH = 000;900 EMP_NO = 15 FIRST_NAME = Katherine LAST_NAME = Young PHONE_EXT = 231 HIRE_DATE = 1990/06/14 00:00:00.0000 DEPT_NO = 623 JOB_CODE = Mngr JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 67,241.25 FULL_NAME = Young, Katherine DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Customer Support DEPT_KEY_PATH = 000;600;620;623 EMP_NO = 20 FIRST_NAME = Chris LAST_NAME = Papadopoulos PHONE_EXT = 887 HIRE_DATE = 1990/01/01 00:00:00.0000 DEPT_NO = 671 JOB_CODE = Mngr JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 89,655.00 FULL_NAME = Papadopoulos, Chris DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Research and Development DEPT_KEY_PATH = 000;600;670;671 EMP_NO = 24 FIRST_NAME = Pete LAST_NAME = Fisher PHONE_EXT = 888 HIRE_DATE = 1990/09/12 00:00:00.0000 DEPT_NO = 671 JOB_CODE = Eng JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 81,810.19 FULL_NAME = Fisher, Pete DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Research and Development DEPT_KEY_PATH = 000;600;670;671 EMP_NO = 28 FIRST_NAME = Ann LAST_NAME = Bennet PHONE_EXT = 5 HIRE_DATE = 1991/02/01 00:00:00.0000 DEPT_NO = 120 JOB_CODE = Admin JOB_GRADE = 5 JOB_COUNTRY = England SALARY = 22,935.00 FULL_NAME = Bennet, Ann DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters DEPT_KEY_PATH = 000;100;120 EMP_NO = 29 FIRST_NAME = Roger LAST_NAME = De Souza PHONE_EXT = 288 HIRE_DATE = 1991/02/18 00:00:00.0000 DEPT_NO = 623 JOB_CODE = Eng JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 69,482.63 FULL_NAME = De Souza, Roger DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Customer Support DEPT_KEY_PATH = 000;600;620;623 EMP_NO = 34 FIRST_NAME = Janet LAST_NAME = Baldwin PHONE_EXT = 2 HIRE_DATE = 1991/03/21 00:00:00.0000 DEPT_NO = 110 JOB_CODE = Sales JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 61,637.81 FULL_NAME = Baldwin, Janet DEPT_PATH = Corporate Headquarters / Sales and Marketing / Pacific Rim Headquarters DEPT_KEY_PATH = 000;100;110 EMP_NO = 36 FIRST_NAME = Roger LAST_NAME = Reeves PHONE_EXT = 6 HIRE_DATE = 1991/04/25 00:00:00.0000 DEPT_NO = 120 JOB_CODE = Sales JOB_GRADE = 3 JOB_COUNTRY = England SALARY = 33,620.63 FULL_NAME = Reeves, Roger DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters DEPT_KEY_PATH = 000;100;120 EMP_NO = 37 FIRST_NAME = Willie LAST_NAME = Stansbury PHONE_EXT = 7 HIRE_DATE = 1991/04/25 00:00:00.0000 DEPT_NO = 120 JOB_CODE = Eng JOB_GRADE = 4 JOB_COUNTRY = England SALARY = 39,224.06 FULL_NAME = Stansbury, Willie DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters DEPT_KEY_PATH = 000;100;120 EMP_NO = 44 FIRST_NAME = Leslie LAST_NAME = Phong PHONE_EXT = 216 HIRE_DATE = 1991/06/03 00:00:00.0000 DEPT_NO = 623 JOB_CODE = Eng JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 56,034.38 FULL_NAME = Phong, Leslie DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Customer Support DEPT_KEY_PATH = 000;600;620;623 EMP_NO = 45 FIRST_NAME = Ashok LAST_NAME = Ramanathan PHONE_EXT = 209 HIRE_DATE = 1991/08/01 00:00:00.0000 DEPT_NO = 621 JOB_CODE = Eng JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 80,689.50 FULL_NAME = Ramanathan, Ashok DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Software Development DEPT_KEY_PATH = 000;600;620;621 EMP_NO = 46 FIRST_NAME = Walter LAST_NAME = Steadman PHONE_EXT = 210 HIRE_DATE = 1991/08/09 00:00:00.0000 DEPT_NO = 900 JOB_CODE = CFO JOB_GRADE = 1 JOB_COUNTRY = USA SALARY = 116,100.00 FULL_NAME = Steadman, Walter DEPT_PATH = Corporate Headquarters / Finance DEPT_KEY_PATH = 000;900 EMP_NO = 52 FIRST_NAME = Carol LAST_NAME = Nordstrom PHONE_EXT = 420 HIRE_DATE = 1991/10/02 00:00:00.0000 DEPT_NO = 180 JOB_CODE = PRel JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 42,742.50 FULL_NAME = Nordstrom, Carol DEPT_PATH = Corporate Headquarters / Sales and Marketing / Marketing DEPT_KEY_PATH = 000;100;180 EMP_NO = 61 FIRST_NAME = Luke LAST_NAME = Leung PHONE_EXT = 3 HIRE_DATE = 1992/02/18 00:00:00.0000 DEPT_NO = 110 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 68,805.00 FULL_NAME = Leung, Luke DEPT_PATH = Corporate Headquarters / Sales and Marketing / Pacific Rim Headquarters DEPT_KEY_PATH = 000;100;110 EMP_NO = 65 FIRST_NAME = Sue Anne LAST_NAME = O'Brien PHONE_EXT = 877 HIRE_DATE = 1992/03/23 00:00:00.0000 DEPT_NO = 670 JOB_CODE = Admin JOB_GRADE = 5 JOB_COUNTRY = USA SALARY = 31,275.00 FULL_NAME = O'Brien, Sue Anne DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. DEPT_KEY_PATH = 000;600;670 EMP_NO = 71 FIRST_NAME = Jennifer M. LAST_NAME = Burbank PHONE_EXT = 289 HIRE_DATE = 1992/04/15 00:00:00.0000 DEPT_NO = 622 JOB_CODE = Eng JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 53,167.50 FULL_NAME = Burbank, Jennifer M. DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Quality Assurance DEPT_KEY_PATH = 000;600;620;622 EMP_NO = 72 FIRST_NAME = Claudia LAST_NAME = Sutherland PHONE_EXT = NULL HIRE_DATE = 1992/04/20 00:00:00.0000 DEPT_NO = 140 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = Canada SALARY = 100,914.00 FULL_NAME = Sutherland, Claudia DEPT_PATH = Corporate Headquarters / Sales and Marketing / Field Office: Canada DEPT_KEY_PATH = 000;100;140 EMP_NO = 83 FIRST_NAME = Dana LAST_NAME = Bishop PHONE_EXT = 290 HIRE_DATE = 1992/06/01 00:00:00.0000 DEPT_NO = 621 JOB_CODE = Eng JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 62,550.00 FULL_NAME = Bishop, Dana DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Software Development DEPT_KEY_PATH = 000;600;620;621 EMP_NO = 85 FIRST_NAME = Mary S. LAST_NAME = MacDonald PHONE_EXT = 477 HIRE_DATE = 1992/06/01 00:00:00.0000 DEPT_NO = 100 JOB_CODE = VP JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 111,262.50 FULL_NAME = MacDonald, Mary S. DEPT_PATH = Corporate Headquarters / Sales and Marketing DEPT_KEY_PATH = 000;100 EMP_NO = 94 FIRST_NAME = Randy LAST_NAME = Williams PHONE_EXT = 892 HIRE_DATE = 1992/08/08 00:00:00.0000 DEPT_NO = 672 JOB_CODE = Mngr JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 56,295.00 FULL_NAME = Williams, Randy DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Customer Services DEPT_KEY_PATH = 000;600;670;672 EMP_NO = 105 FIRST_NAME = Oliver H. LAST_NAME = Bender PHONE_EXT = 255 HIRE_DATE = 1992/10/08 00:00:00.0000 DEPT_NO = 000 JOB_CODE = CEO JOB_GRADE = 1 JOB_COUNTRY = USA SALARY = 212,850.00 FULL_NAME = Bender, Oliver H. DEPT_PATH = Corporate Headquarters DEPT_KEY_PATH = 000 EMP_NO = 107 FIRST_NAME = Kevin LAST_NAME = Cook PHONE_EXT = 894 HIRE_DATE = 1993/02/01 00:00:00.0000 DEPT_NO = 670 JOB_CODE = Dir JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 111,262.50 FULL_NAME = Cook, Kevin DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. DEPT_KEY_PATH = 000;600;670 EMP_NO = 109 FIRST_NAME = Kelly LAST_NAME = Brown PHONE_EXT = 202 HIRE_DATE = 1993/02/04 00:00:00.0000 DEPT_NO = 600 JOB_CODE = Admin JOB_GRADE = 5 JOB_COUNTRY = USA SALARY = 27,000.00 FULL_NAME = Brown, Kelly DEPT_PATH = Corporate Headquarters / Engineering DEPT_KEY_PATH = 000;600 EMP_NO = 110 FIRST_NAME = Yuki LAST_NAME = Ichida PHONE_EXT = 22 HIRE_DATE = 1993/02/04 00:00:00.0000 DEPT_NO = 115 JOB_CODE = Eng JOB_GRADE = 3 JOB_COUNTRY = Japan SALARY = 6,000,000.00 FULL_NAME = Ichida, Yuki DEPT_PATH = Corporate Headquarters / Sales and Marketing / Pacific Rim Headquarters / Field Office: Japan DEPT_KEY_PATH = 000;100;110;115 EMP_NO = 113 FIRST_NAME = Mary LAST_NAME = Page PHONE_EXT = 845 HIRE_DATE = 1993/04/12 00:00:00.0000 DEPT_NO = 671 JOB_CODE = Eng JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 48,000.00 FULL_NAME = Page, Mary DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Research and Development DEPT_KEY_PATH = 000;600;670;671 EMP_NO = 114 FIRST_NAME = Bill LAST_NAME = Parker PHONE_EXT = 247 HIRE_DATE = 1993/06/01 00:00:00.0000 DEPT_NO = 623 JOB_CODE = Eng JOB_GRADE = 5 JOB_COUNTRY = USA SALARY = 35,000.00 FULL_NAME = Parker, Bill DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Customer Support DEPT_KEY_PATH = 000;600;620;623 EMP_NO = 118 FIRST_NAME = Takashi LAST_NAME = Yamamoto PHONE_EXT = 23 HIRE_DATE = 1993/07/01 00:00:00.0000 DEPT_NO = 115 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = Japan SALARY = 7,480,000.00 FULL_NAME = Yamamoto, Takashi DEPT_PATH = Corporate Headquarters / Sales and Marketing / Pacific Rim Headquarters / Field Office: Japan DEPT_KEY_PATH = 000;100;110;115 EMP_NO = 121 FIRST_NAME = Roberto LAST_NAME = Ferrari PHONE_EXT = 1 HIRE_DATE = 1993/07/12 00:00:00.0000 DEPT_NO = 125 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = Italy SALARY = 99,000,000.00 FULL_NAME = Ferrari, Roberto DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters / Field Office: Italy DEPT_KEY_PATH = 000;100;120;125 EMP_NO = 127 FIRST_NAME = Michael LAST_NAME = Yanowski PHONE_EXT = 492 HIRE_DATE = 1993/08/09 00:00:00.0000 DEPT_NO = 100 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 44,000.00 FULL_NAME = Yanowski, Michael DEPT_PATH = Corporate Headquarters / Sales and Marketing DEPT_KEY_PATH = 000;100 EMP_NO = 134 FIRST_NAME = Jacques LAST_NAME = Glon PHONE_EXT = NULL HIRE_DATE = 1993/08/23 00:00:00.0000 DEPT_NO = 123 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = France SALARY = 390,500.00 FULL_NAME = Glon, Jacques DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters / Field Office: France DEPT_KEY_PATH = 000;100;120;123 EMP_NO = 136 FIRST_NAME = Scott LAST_NAME = Johnson PHONE_EXT = 265 HIRE_DATE = 1993/09/13 00:00:00.0000 DEPT_NO = 623 JOB_CODE = Doc JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 60,000.00 FULL_NAME = Johnson, Scott DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Customer Support DEPT_KEY_PATH = 000;600;620;623 EMP_NO = 138 FIRST_NAME = T.J. LAST_NAME = Green PHONE_EXT = 218 HIRE_DATE = 1993/11/01 00:00:00.0000 DEPT_NO = 621 JOB_CODE = Eng JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 36,000.00 FULL_NAME = Green, T.J. DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Software Development DEPT_KEY_PATH = 000;600;620;621 EMP_NO = 141 FIRST_NAME = Pierre LAST_NAME = Osborne PHONE_EXT = NULL HIRE_DATE = 1994/01/03 00:00:00.0000 DEPT_NO = 121 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = Switzerland SALARY = 110,000.00 FULL_NAME = Osborne, Pierre DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters / Field Office: Switzerland DEPT_KEY_PATH = 000;100;120;121 EMP_NO = 144 FIRST_NAME = John LAST_NAME = Montgomery PHONE_EXT = 820 HIRE_DATE = 1994/03/30 00:00:00.0000 DEPT_NO = 672 JOB_CODE = Eng JOB_GRADE = 5 JOB_COUNTRY = USA SALARY = 35,000.00 FULL_NAME = Montgomery, John DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Customer Services DEPT_KEY_PATH = 000;600;670;672 EMP_NO = 145 FIRST_NAME = Mark LAST_NAME = Guckenheimer PHONE_EXT = 221 HIRE_DATE = 1994/05/02 00:00:00.0000 DEPT_NO = 622 JOB_CODE = Eng JOB_GRADE = 5 JOB_COUNTRY = USA SALARY = 32,000.00 FULL_NAME = Guckenheimer, Mark DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Quality Assurance DEPT_KEY_PATH = 000;600;620;622 Current memory = 952,680 Delta memory = 9,496 Max memory = 1,013,552 Elapsed time= 0.019 sec Cpu = 0.001 sec Buffers = 75 Reads = 3 Writes = 0 Fetches = 212 ------------------------------------------------------ With Named Parameter EMP_NO = 12 FIRST_NAME = Terri LAST_NAME = Lee PHONE_EXT = 256 HIRE_DATE = 1990/05/01 00:00:00.0000 DEPT_NO = 000 JOB_CODE = Admin JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 53,793.00 FULL_NAME = Lee, Terri DEPT_PATH = Corporate Headquarters DEPT_KEY_PATH = 000 EMP_NO = 8 FIRST_NAME = Leslie LAST_NAME = Johnson PHONE_EXT = 410 HIRE_DATE = 1989/04/05 00:00:00.0000 DEPT_NO = 180 JOB_CODE = Mktg JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 64,635.00 FULL_NAME = Johnson, Leslie DEPT_PATH = Corporate Headquarters / Sales and Marketing / Marketing DEPT_KEY_PATH = 000;100;180 EMP_NO = 5 FIRST_NAME = Kim LAST_NAME = Lambert PHONE_EXT = 22 HIRE_DATE = 1989/02/06 00:00:00.0000 DEPT_NO = 130 JOB_CODE = Eng JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 102,750.00 FULL_NAME = Lambert, Kim DEPT_PATH = Corporate Headquarters / Sales and Marketing / Field Office: East Coast DEPT_KEY_PATH = 000;100;130 EMP_NO = 11 FIRST_NAME = K. J. LAST_NAME = Weston PHONE_EXT = 34 HIRE_DATE = 1990/01/17 00:00:00.0000 DEPT_NO = 130 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 86,292.94 FULL_NAME = Weston, K. J. DEPT_PATH = Corporate Headquarters / Sales and Marketing / Field Office: East Coast DEPT_KEY_PATH = 000;100;130 EMP_NO = 2 FIRST_NAME = Robert LAST_NAME = Nelson PHONE_EXT = 250 HIRE_DATE = 1988/12/28 00:00:00.0000 DEPT_NO = 600 JOB_CODE = VP JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 105,900.00 FULL_NAME = Nelson, Robert DEPT_PATH = Corporate Headquarters / Engineering DEPT_KEY_PATH = 000;600 EMP_NO = 4 FIRST_NAME = Bruce LAST_NAME = Young PHONE_EXT = 233 HIRE_DATE = 1988/12/28 00:00:00.0000 DEPT_NO = 621 JOB_CODE = Eng JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 97,500.00 FULL_NAME = Young, Bruce DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Software Development DEPT_KEY_PATH = 000;600;620;621 EMP_NO = 9 FIRST_NAME = Phil LAST_NAME = Forest PHONE_EXT = 229 HIRE_DATE = 1989/04/17 00:00:00.0000 DEPT_NO = 622 JOB_CODE = Mngr JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 75,060.00 FULL_NAME = Forest, Phil DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Quality Assurance DEPT_KEY_PATH = 000;600;620;622 EMP_NO = 15 FIRST_NAME = Katherine LAST_NAME = Young PHONE_EXT = 231 HIRE_DATE = 1990/06/14 00:00:00.0000 DEPT_NO = 623 JOB_CODE = Mngr JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 67,241.25 FULL_NAME = Young, Katherine DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Customer Support DEPT_KEY_PATH = 000;600;620;623 EMP_NO = 20 FIRST_NAME = Chris LAST_NAME = Papadopoulos PHONE_EXT = 887 HIRE_DATE = 1990/01/01 00:00:00.0000 DEPT_NO = 671 JOB_CODE = Mngr JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 89,655.00 FULL_NAME = Papadopoulos, Chris DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Research and Development DEPT_KEY_PATH = 000;600;670;671 EMP_NO = 24 FIRST_NAME = Pete LAST_NAME = Fisher PHONE_EXT = 888 HIRE_DATE = 1990/09/12 00:00:00.0000 DEPT_NO = 671 JOB_CODE = Eng JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 81,810.19 FULL_NAME = Fisher, Pete DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Research and Development DEPT_KEY_PATH = 000;600;670;671 EMP_NO = 14 FIRST_NAME = Stewart LAST_NAME = Hall PHONE_EXT = 227 HIRE_DATE = 1990/06/04 00:00:00.0000 DEPT_NO = 900 JOB_CODE = Finan JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 69,482.63 FULL_NAME = Hall, Stewart DEPT_PATH = Corporate Headquarters / Finance DEPT_KEY_PATH = 000;900 With Positional Parameter EMP_NO = 8 FIRST_NAME = Leslie LAST_NAME = Johnson PHONE_EXT = 410 HIRE_DATE = 1989/04/05 00:00:00.0000 DEPT_NO = 180 JOB_CODE = Mktg JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 64,635.00 FULL_NAME = Johnson, Leslie DEPT_PATH = Corporate Headquarters / Sales and Marketing / Marketing DEPT_KEY_PATH = 000;100;180 EMP_NO = 5 FIRST_NAME = Kim LAST_NAME = Lambert PHONE_EXT = 22 HIRE_DATE = 1989/02/06 00:00:00.0000 DEPT_NO = 130 JOB_CODE = Eng JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 102,750.00 FULL_NAME = Lambert, Kim DEPT_PATH = Corporate Headquarters / Sales and Marketing / Field Office: East Coast DEPT_KEY_PATH = 000;100;130 EMP_NO = 2 FIRST_NAME = Robert LAST_NAME = Nelson PHONE_EXT = 250 HIRE_DATE = 1988/12/28 00:00:00.0000 DEPT_NO = 600 JOB_CODE = VP JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 105,900.00 FULL_NAME = Nelson, Robert DEPT_PATH = Corporate Headquarters / Engineering DEPT_KEY_PATH = 000;600 EMP_NO = 4 FIRST_NAME = Bruce LAST_NAME = Young PHONE_EXT = 233 HIRE_DATE = 1988/12/28 00:00:00.0000 DEPT_NO = 621 JOB_CODE = Eng JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 97,500.00 FULL_NAME = Young, Bruce DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Software Development DEPT_KEY_PATH = 000;600;620;621 EMP_NO = 9 FIRST_NAME = Phil LAST_NAME = Forest PHONE_EXT = 229 HIRE_DATE = 1989/04/17 00:00:00.0000 DEPT_NO = 622 JOB_CODE = Mngr JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 75,060.00 FULL_NAME = Forest, Phil DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Quality Assurance DEPT_KEY_PATH = 000;600;620;622 Get Employee Project Metadata SQLType =SQL_TEXT sub type = 0 Table = GET_EMP_PROJ Owner = SYSDBA Column Name = PROJ_ID Alias Name = PROJ_ID Field Name = PROJ_ID Scale = 0 Charset id = 0 Nullable Size = 5 PROJ_ID = VBASE PROJ_ID = MAPDB Call Delete Employee - exception expected Terminated with Exception:Engine Code: 335544517 exception 2 -REASSIGN_SALES -Reassign the sales records before deleting this employee. -At procedure 'DELETE_EMPLOYEE' line: 19, col: 3 ------------------------------------------------------ Running Test 08: TIBDataset: Locate, Bookmark and Lookup Field No 1 Name = EMP_NO DataType = ftSmallint Field No 2 Name = FIRST_NAME DataType = ftString Field No 3 Name = LAST_NAME DataType = ftString Field No 4 Name = PHONE_EXT DataType = ftString Field No 5 Name = HIRE_DATE DataType = ftDateTime Field No 6 Name = DEPT_NO DataType = ftString Field No 7 Name = JOB_CODE DataType = ftString Field No 8 Name = JOB_GRADE DataType = ftSmallint Field No 9 Name = JOB_COUNTRY DataType = ftString Field No 10 Name = SALARY DataType = ftBCD Field No 11 Name = FULL_NAME DataType = ftString Field No 12 Name = DEPT_PATH DataType = ftString Field No 13 Name = DEPT_KEY_PATH DataType = ftString Field No -1 Name = HireYear DataType = ftInteger Field No -1 Name = HireDatePlus1 DataType = ftDate EMP_NO = 12 FIRST_NAME = Terri LAST_NAME = Lee PHONE_EXT = 256 HIRE_DATE = 01/5/1990 DEPT_NO = 000 JOB_CODE = Admin JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 53793 FULL_NAME = Lee, Terri DEPT_PATH = Corporate Headquarters DEPT_KEY_PATH = 000 HireYear = 1990 HireDatePlus1 = 02/5/1990 EMP_NO = 36 FIRST_NAME = Roger LAST_NAME = Reeves PHONE_EXT = 6 HIRE_DATE = 25/4/1991 DEPT_NO = 120 JOB_CODE = Sales JOB_GRADE = 3 JOB_COUNTRY = England SALARY = 33620.63 FULL_NAME = Reeves, Roger DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters DEPT_KEY_PATH = 000;100;120 HireYear = 1991 HireDatePlus1 = 26/4/1991 Back to EMP_NO = 12 EMP_NO = 12 FIRST_NAME = Terri LAST_NAME = Lee PHONE_EXT = 256 HIRE_DATE = 01/5/1990 DEPT_NO = 000 JOB_CODE = Admin JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 53793 FULL_NAME = Lee, Terri DEPT_PATH = Corporate Headquarters DEPT_KEY_PATH = 000 HireYear = 1990 HireDatePlus1 = 02/5/1990 Locate Employee 20, First Name and Last Name Field No. 0 = Chris Field No. 1 = Papadopoulos Print All Row No = 1 EMP_NO = 2 FIRST_NAME = Robert LAST_NAME = Nelson PHONE_EXT = 250 HIRE_DATE = 28/12/1988 DEPT_NO = 600 JOB_CODE = VP JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 105900 FULL_NAME = Nelson, Robert DEPT_PATH = Corporate Headquarters / Engineering DEPT_KEY_PATH = 000;600 HireYear = 1988 HireDatePlus1 = 29/12/1988 Row No = 2 EMP_NO = 4 FIRST_NAME = Bruce LAST_NAME = Young PHONE_EXT = 233 HIRE_DATE = 28/12/1988 DEPT_NO = 621 JOB_CODE = Eng JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 97500 FULL_NAME = Young, Bruce DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Software Development DEPT_KEY_PATH = 000;600;620;621 HireYear = 1988 HireDatePlus1 = 29/12/1988 Row No = 3 EMP_NO = 5 FIRST_NAME = Kim LAST_NAME = Lambert PHONE_EXT = 22 HIRE_DATE = 06/2/1989 DEPT_NO = 130 JOB_CODE = Eng JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 102750 FULL_NAME = Lambert, Kim DEPT_PATH = Corporate Headquarters / Sales and Marketing / Field Office: East Coast DEPT_KEY_PATH = 000;100;130 HireYear = 1989 HireDatePlus1 = 07/2/1989 Row No = 4 EMP_NO = 8 FIRST_NAME = Leslie LAST_NAME = Johnson PHONE_EXT = 410 HIRE_DATE = 05/4/1989 DEPT_NO = 180 JOB_CODE = Mktg JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 64635 FULL_NAME = Johnson, Leslie DEPT_PATH = Corporate Headquarters / Sales and Marketing / Marketing DEPT_KEY_PATH = 000;100;180 HireYear = 1989 HireDatePlus1 = 06/4/1989 Row No = 5 EMP_NO = 9 FIRST_NAME = Phil LAST_NAME = Forest PHONE_EXT = 229 HIRE_DATE = 17/4/1989 DEPT_NO = 622 JOB_CODE = Mngr JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 75060 FULL_NAME = Forest, Phil DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Quality Assurance DEPT_KEY_PATH = 000;600;620;622 HireYear = 1989 HireDatePlus1 = 18/4/1989 Row No = 6 EMP_NO = 11 FIRST_NAME = K. J. LAST_NAME = Weston PHONE_EXT = 34 HIRE_DATE = 17/1/1990 DEPT_NO = 130 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 86292.94 FULL_NAME = Weston, K. J. DEPT_PATH = Corporate Headquarters / Sales and Marketing / Field Office: East Coast DEPT_KEY_PATH = 000;100;130 HireYear = 1990 HireDatePlus1 = 18/1/1990 Row No = 7 EMP_NO = 12 FIRST_NAME = Terri LAST_NAME = Lee PHONE_EXT = 256 HIRE_DATE = 01/5/1990 DEPT_NO = 000 JOB_CODE = Admin JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 53793 FULL_NAME = Lee, Terri DEPT_PATH = Corporate Headquarters DEPT_KEY_PATH = 000 HireYear = 1990 HireDatePlus1 = 02/5/1990 Row No = 8 EMP_NO = 14 FIRST_NAME = Stewart LAST_NAME = Hall PHONE_EXT = 227 HIRE_DATE = 04/6/1990 DEPT_NO = 900 JOB_CODE = Finan JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 69482.63 FULL_NAME = Hall, Stewart DEPT_PATH = Corporate Headquarters / Finance DEPT_KEY_PATH = 000;900 HireYear = 1990 HireDatePlus1 = 05/6/1990 Row No = 9 EMP_NO = 15 FIRST_NAME = Katherine LAST_NAME = Young PHONE_EXT = 231 HIRE_DATE = 14/6/1990 DEPT_NO = 623 JOB_CODE = Mngr JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 67241.25 FULL_NAME = Young, Katherine DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Customer Support DEPT_KEY_PATH = 000;600;620;623 HireYear = 1990 HireDatePlus1 = 15/6/1990 Row No = 10 EMP_NO = 20 FIRST_NAME = Chris LAST_NAME = Papadopoulos PHONE_EXT = 887 HIRE_DATE = 01/1/1990 DEPT_NO = 671 JOB_CODE = Mngr JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 89655 FULL_NAME = Papadopoulos, Chris DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Research and Development DEPT_KEY_PATH = 000;600;670;671 HireYear = 1990 HireDatePlus1 = 02/1/1990 Row No = 11 EMP_NO = 24 FIRST_NAME = Pete LAST_NAME = Fisher PHONE_EXT = 888 HIRE_DATE = 12/9/1990 DEPT_NO = 671 JOB_CODE = Eng JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 81810.19 FULL_NAME = Fisher, Pete DEPT_PATH = Corporate Headquarters / Engineering / Consumer Electronics Div. / Research and Development DEPT_KEY_PATH = 000;600;670;671 HireYear = 1990 HireDatePlus1 = 13/9/1990 Row No = 12 EMP_NO = 28 FIRST_NAME = Ann LAST_NAME = Bennet PHONE_EXT = 5 HIRE_DATE = 01/2/1991 DEPT_NO = 120 JOB_CODE = Admin JOB_GRADE = 5 JOB_COUNTRY = England SALARY = 22935 FULL_NAME = Bennet, Ann DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters DEPT_KEY_PATH = 000;100;120 HireYear = 1991 HireDatePlus1 = 02/2/1991 Row No = 13 EMP_NO = 29 FIRST_NAME = Roger LAST_NAME = De Souza PHONE_EXT = 288 HIRE_DATE = 18/2/1991 DEPT_NO = 623 JOB_CODE = Eng JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 69482.63 FULL_NAME = De Souza, Roger DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Customer Support DEPT_KEY_PATH = 000;600;620;623 HireYear = 1991 HireDatePlus1 = 19/2/1991 Row No = 14 EMP_NO = 34 FIRST_NAME = Janet LAST_NAME = Baldwin PHONE_EXT = 2 HIRE_DATE = 21/3/1991 DEPT_NO = 110 JOB_CODE = Sales JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 61637.81 FULL_NAME = Baldwin, Janet DEPT_PATH = Corporate Headquarters / Sales and Marketing / Pacific Rim Headquarters DEPT_KEY_PATH = 000;100;110 HireYear = 1991 HireDatePlus1 = 22/3/1991 Row No = 15 EMP_NO = 36 FIRST_NAME = Roger LAST_NAME = Reeves PHONE_EXT = 6 HIRE_DATE = 25/4/1991 DEPT_NO = 120 JOB_CODE = Sales JOB_GRADE = 3 JOB_COUNTRY = England SALARY = 33620.63 FULL_NAME = Reeves, Roger DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters DEPT_KEY_PATH = 000;100;120 HireYear = 1991 HireDatePlus1 = 26/4/1991 Row No = 16 EMP_NO = 37 FIRST_NAME = Willie LAST_NAME = Stansbury PHONE_EXT = 7 HIRE_DATE = 25/4/1991 DEPT_NO = 120 JOB_CODE = Eng JOB_GRADE = 4 JOB_COUNTRY = England SALARY = 39224.06 FULL_NAME = Stansbury, Willie DEPT_PATH = Corporate Headquarters / Sales and Marketing / European Headquarters DEPT_KEY_PATH = 000;100;120 HireYear = 1991 HireDatePlus1 = 26/4/1991 Rows printed = 16 ------------------------------------------------------ Running Test 09: Extract DDL from example Employee Database Extracting Database Schema and Data SET SQL DIALECT 3; SET AUTODDL ON; /* CREATE DATABASE 'localhost:employee' PAGE_SIZE 4096 DEFAULT CHARACTER SET NONE; */ /* Domain definitions */ CREATE DOMAIN ADDRESSLINE AS VARCHAR(30); CREATE DOMAIN BUDGET AS DECIMAL(12,2) DEFAULT 50000; CREATE DOMAIN COUNTRYNAME AS VARCHAR(15); CREATE DOMAIN CUSTNO AS INTEGER; CREATE DOMAIN DEPTNO AS CHAR(3); CREATE DOMAIN EMPNO AS SMALLINT; CREATE DOMAIN FIRSTNAME AS VARCHAR(15); CREATE DOMAIN JOBCODE AS VARCHAR(5); CREATE DOMAIN JOBGRADE AS SMALLINT; CREATE DOMAIN LASTNAME AS VARCHAR(20); CREATE DOMAIN PHONENUMBER AS VARCHAR(20); CREATE DOMAIN PONUMBER AS CHAR(8); CREATE DOMAIN PRODTYPE AS VARCHAR(12) DEFAULT 'software' NOT NULL; CREATE DOMAIN PROJNO AS CHAR(5); CREATE DOMAIN SALARY AS NUMERIC(10,2) DEFAULT 0; /* Table: COUNTRY, Owner: SYSDBA */ CREATE TABLE COUNTRY ( COUNTRY COUNTRYNAME NOT NULL, CURRENCY VARCHAR(10) NOT NULL, PRIMARY KEY (COUNTRY) ); /* Table: CUSTOMER, Owner: SYSDBA */ CREATE TABLE CUSTOMER ( CUST_NO CUSTNO NOT NULL, CUSTOMER VARCHAR(25) NOT NULL, CONTACT_FIRST FIRSTNAME, CONTACT_LAST LASTNAME, PHONE_NO PHONENUMBER, ADDRESS_LINE1 ADDRESSLINE, ADDRESS_LINE2 ADDRESSLINE, CITY VARCHAR(25), STATE_PROVINCE VARCHAR(15), COUNTRY COUNTRYNAME, POSTAL_CODE VARCHAR(12), ON_HOLD CHAR(1) DEFAULT NULL, PRIMARY KEY (CUST_NO) ); /* Table: DEPARTMENT, Owner: SYSDBA */ CREATE TABLE DEPARTMENT ( DEPT_NO DEPTNO NOT NULL, DEPARTMENT VARCHAR(25) NOT NULL, HEAD_DEPT DEPTNO, MNGR_NO EMPNO, BUDGET BUDGET, LOCATION VARCHAR(15), PHONE_NO PHONENUMBER DEFAULT '555-1234', UNIQUE (DEPARTMENT), PRIMARY KEY (DEPT_NO) ); /* Table: EMPLOYEE, Owner: SYSDBA */ CREATE TABLE EMPLOYEE ( EMP_NO EMPNO NOT NULL, FIRST_NAME FIRSTNAME NOT NULL, LAST_NAME LASTNAME NOT NULL, PHONE_EXT VARCHAR(4), HIRE_DATE TIMESTAMP DEFAULT 'NOW' NOT NULL, DEPT_NO DEPTNO NOT NULL, JOB_CODE JOBCODE NOT NULL, JOB_GRADE JOBGRADE NOT NULL, JOB_COUNTRY COUNTRYNAME NOT NULL, SALARY SALARY NOT NULL, FULL_NAME COMPUTED BY (last_name || ', ' || first_name), PRIMARY KEY (EMP_NO) ); /* Table: EMPLOYEE_PROJECT, Owner: SYSDBA */ CREATE TABLE EMPLOYEE_PROJECT ( EMP_NO EMPNO NOT NULL, PROJ_ID PROJNO NOT NULL, PRIMARY KEY (EMP_NO, PROJ_ID) ); /* Table: JOB, Owner: SYSDBA */ CREATE TABLE JOB ( JOB_CODE JOBCODE NOT NULL, JOB_GRADE JOBGRADE NOT NULL, JOB_COUNTRY COUNTRYNAME NOT NULL, JOB_TITLE VARCHAR(25) NOT NULL, MIN_SALARY SALARY NOT NULL, MAX_SALARY SALARY NOT NULL, JOB_REQUIREMENT BLOB SUB_TYPE TEXT SEGMENT SIZE 400, LANGUAGE_REQ VARCHAR(15)[1:5], PRIMARY KEY (JOB_CODE, JOB_GRADE, JOB_COUNTRY) ); /* Table: PROJECT, Owner: SYSDBA */ CREATE TABLE PROJECT ( PROJ_ID PROJNO NOT NULL, PROJ_NAME VARCHAR(20) NOT NULL, PROJ_DESC BLOB SUB_TYPE TEXT SEGMENT SIZE 800, TEAM_LEADER EMPNO, PRODUCT PRODTYPE, UNIQUE (PROJ_NAME), PRIMARY KEY (PROJ_ID) ); /* Table: PROJ_DEPT_BUDGET, Owner: SYSDBA */ CREATE TABLE PROJ_DEPT_BUDGET ( FISCAL_YEAR INTEGER NOT NULL, PROJ_ID PROJNO NOT NULL, DEPT_NO DEPTNO NOT NULL, QUART_HEAD_CNT INTEGER[1:4], PROJECTED_BUDGET BUDGET, PRIMARY KEY (FISCAL_YEAR, PROJ_ID, DEPT_NO) ); /* Table: SALARY_HISTORY, Owner: SYSDBA */ CREATE TABLE SALARY_HISTORY ( EMP_NO EMPNO NOT NULL, CHANGE_DATE TIMESTAMP DEFAULT 'NOW' NOT NULL, UPDATER_ID VARCHAR(20) NOT NULL, OLD_SALARY SALARY NOT NULL, PERCENT_CHANGE DOUBLE PRECISION DEFAULT 0 NOT NULL, NEW_SALARY COMPUTED BY (old_salary + old_salary * percent_change / 100), PRIMARY KEY (EMP_NO, CHANGE_DATE, UPDATER_ID) ); /* Table: SALES, Owner: SYSDBA */ CREATE TABLE SALES ( PO_NUMBER PONUMBER NOT NULL, CUST_NO CUSTNO NOT NULL, SALES_REP EMPNO, ORDER_STATUS VARCHAR(7) DEFAULT 'new' NOT NULL, ORDER_DATE TIMESTAMP DEFAULT 'NOW' NOT NULL, SHIP_DATE TIMESTAMP, DATE_NEEDED TIMESTAMP, PAID CHAR(1) DEFAULT 'n', QTY_ORDERED INTEGER DEFAULT 1 NOT NULL, TOTAL_VALUE DECIMAL(9,2) NOT NULL, DISCOUNT FLOAT DEFAULT 0 NOT NULL, ITEM_TYPE PRODTYPE, AGED COMPUTED BY (ship_date - order_date), PRIMARY KEY (PO_NUMBER) ); /* Index definitions for all user tables */ CREATE INDEX CUSTNAMEX ON CUSTOMER(CUSTOMER); CREATE INDEX CUSTREGION ON CUSTOMER(COUNTRY, CITY); CREATE DESCENDING INDEX BUDGETX ON DEPARTMENT(BUDGET); CREATE INDEX NAMEX ON EMPLOYEE(LAST_NAME, FIRST_NAME); CREATE DESCENDING INDEX MAXSALX ON JOB(JOB_COUNTRY, MAX_SALARY); CREATE INDEX MINSALX ON JOB(JOB_COUNTRY, MIN_SALARY); CREATE UNIQUE INDEX PRODTYPEX ON PROJECT(PRODUCT, PROJ_NAME); CREATE DESCENDING INDEX CHANGEX ON SALARY_HISTORY(CHANGE_DATE); CREATE INDEX UPDATERX ON SALARY_HISTORY(UPDATER_ID); CREATE INDEX NEEDX ON SALES(DATE_NEEDED); CREATE DESCENDING INDEX QTYX ON SALES(ITEM_TYPE, QTY_ORDERED); CREATE INDEX SALESTATX ON SALES(ORDER_STATUS, PAID); ALTER TABLE CUSTOMER ADD FOREIGN KEY (COUNTRY) REFERENCES COUNTRY (COUNTRY); ALTER TABLE DEPARTMENT ADD FOREIGN KEY (HEAD_DEPT) REFERENCES DEPARTMENT (DEPT_NO); ALTER TABLE DEPARTMENT ADD FOREIGN KEY (MNGR_NO) REFERENCES EMPLOYEE (EMP_NO); ALTER TABLE EMPLOYEE ADD FOREIGN KEY (DEPT_NO) REFERENCES DEPARTMENT (DEPT_NO); ALTER TABLE EMPLOYEE ADD FOREIGN KEY (JOB_CODE, JOB_GRADE, JOB_COUNTRY) REFERENCES JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY); ALTER TABLE EMPLOYEE_PROJECT ADD FOREIGN KEY (EMP_NO) REFERENCES EMPLOYEE (EMP_NO); ALTER TABLE EMPLOYEE_PROJECT ADD FOREIGN KEY (PROJ_ID) REFERENCES PROJECT (PROJ_ID); ALTER TABLE JOB ADD FOREIGN KEY (JOB_COUNTRY) REFERENCES COUNTRY (COUNTRY); ALTER TABLE PROJECT ADD FOREIGN KEY (TEAM_LEADER) REFERENCES EMPLOYEE (EMP_NO); ALTER TABLE PROJ_DEPT_BUDGET ADD FOREIGN KEY (DEPT_NO) REFERENCES DEPARTMENT (DEPT_NO); ALTER TABLE PROJ_DEPT_BUDGET ADD FOREIGN KEY (PROJ_ID) REFERENCES PROJECT (PROJ_ID); ALTER TABLE SALARY_HISTORY ADD FOREIGN KEY (EMP_NO) REFERENCES EMPLOYEE (EMP_NO); ALTER TABLE SALES ADD FOREIGN KEY (CUST_NO) REFERENCES CUSTOMER (CUST_NO); ALTER TABLE SALES ADD FOREIGN KEY (SALES_REP) REFERENCES EMPLOYEE (EMP_NO); CREATE SEQUENCE CUST_NO_GEN; CREATE SEQUENCE EMP_NO_GEN; /* View: PHONE_LIST, Owner: SYSDBA */ CREATE VIEW PHONE_LIST ( EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, LOCATION, PHONE_NO ) AS SELECT emp_no, first_name, last_name, phone_ext, location, phone_no FROM employee, department WHERE employee.dept_no = department.dept_no ; /* Add Domain Check Constraints */ ALTER DOMAIN BUDGET ADD CONSTRAINT CHECK (VALUE > 10000 AND VALUE <= 2000000); ALTER DOMAIN CUSTNO ADD CONSTRAINT CHECK (VALUE > 1000); ALTER DOMAIN DEPTNO ADD CONSTRAINT CHECK (VALUE = '000' OR (VALUE > '0' AND VALUE <= '999') OR VALUE IS NULL); ALTER DOMAIN JOBCODE ADD CONSTRAINT CHECK (VALUE > '99999'); ALTER DOMAIN JOBGRADE ADD CONSTRAINT CHECK (VALUE BETWEEN 0 AND 6); ALTER DOMAIN PONUMBER ADD CONSTRAINT CHECK (VALUE STARTING WITH 'V'); ALTER DOMAIN PRODTYPE ADD CONSTRAINT CHECK (VALUE IN ('software', 'hardware', 'other', 'N/A')); ALTER DOMAIN PROJNO ADD CONSTRAINT CHECK (VALUE = UPPER (VALUE)); ALTER DOMAIN SALARY ADD CONSTRAINT CHECK (VALUE > 0); ALTER TABLE JOB ADD CHECK (min_salary < max_salary); ALTER TABLE EMPLOYEE ADD CHECK ( salary >= (SELECT min_salary FROM job WHERE job.job_code = employee.job_code AND job.job_grade = employee.job_grade AND job.job_country = employee.job_country) AND salary <= (SELECT max_salary FROM job WHERE job.job_code = employee.job_code AND job.job_grade = employee.job_grade AND job.job_country = employee.job_country)); ALTER TABLE PROJ_DEPT_BUDGET ADD CHECK (FISCAL_YEAR >= 1993); ALTER TABLE SALARY_HISTORY ADD CHECK (percent_change between -50 and 50); ALTER TABLE CUSTOMER ADD CHECK (on_hold IS NULL OR on_hold = '*'); ALTER TABLE SALES ADD CHECK (order_status in ('new', 'open', 'shipped', 'waiting')); ALTER TABLE SALES ADD CHECK (ship_date >= order_date OR ship_date IS NULL); ALTER TABLE SALES ADD CHECK (date_needed > order_date OR date_needed IS NULL); ALTER TABLE SALES ADD CHECK (paid in ('y', 'n')); ALTER TABLE SALES ADD CHECK (qty_ordered >= 1); ALTER TABLE SALES ADD CHECK (total_value >= 0); ALTER TABLE SALES ADD CHECK (discount >= 0 AND discount <= 1); ALTER TABLE SALES ADD CHECK (NOT (order_status = 'shipped' AND ship_date IS NULL)); ALTER TABLE SALES ADD CHECK (NOT (order_status = 'shipped' AND EXISTS (SELECT on_hold FROM customer WHERE customer.cust_no = sales.cust_no AND customer.on_hold = '*'))); /* Exceptions */ CREATE EXCEPTION CUSTOMER_CHECK 'Overdue balance -- can not ship.'; CREATE EXCEPTION CUSTOMER_ON_HOLD 'This customer is on hold.'; CREATE EXCEPTION ORDER_ALREADY_SHIPPED 'Order status is "shipped."'; CREATE EXCEPTION REASSIGN_SALES 'Reassign the sales records before deleting this employee.'; CREATE EXCEPTION UNKNOWN_EMP_ID 'Invalid employee number or project id.'; COMMIT WORK; SET AUTODDL OFF; SET TERM ^; /* Stored procedures Definitions*/ CREATE PROCEDURE SHOW_LANGS ( CODE VARCHAR(5) CHARACTER SET NONE, GRADE SMALLINT, CTY VARCHAR(15) CHARACTER SET NONE ) RETURNS ( LANGUAGES VARCHAR(15) CHARACTER SET NONE ) AS BEGIN SUSPEND; EXIT; END ^ CREATE PROCEDURE ADD_EMP_PROJ ( EMP_NO SMALLINT, PROJ_ID CHAR(5) CHARACTER SET NONE ) AS BEGIN SUSPEND; EXIT; END ^ CREATE PROCEDURE ALL_LANGS RETURNS ( CODE VARCHAR(5) CHARACTER SET NONE, GRADE VARCHAR(5) CHARACTER SET NONE, COUNTRY VARCHAR(15) CHARACTER SET NONE, LANG VARCHAR(15) CHARACTER SET NONE ) AS BEGIN SUSPEND; EXIT; END ^ CREATE PROCEDURE DELETE_EMPLOYEE ( EMP_NUM INTEGER ) AS BEGIN SUSPEND; EXIT; END ^ CREATE PROCEDURE DEPT_BUDGET ( DNO CHAR(3) CHARACTER SET NONE ) RETURNS ( TOT DECIMAL(12,2) ) AS BEGIN SUSPEND; EXIT; END ^ CREATE PROCEDURE GET_EMP_PROJ ( EMP_NO SMALLINT ) RETURNS ( PROJ_ID CHAR(5) CHARACTER SET NONE ) AS BEGIN SUSPEND; EXIT; END ^ CREATE PROCEDURE MAIL_LABEL ( CUST_NO INTEGER ) RETURNS ( LINE1 CHAR(40) CHARACTER SET NONE, LINE2 CHAR(40) CHARACTER SET NONE, LINE3 CHAR(40) CHARACTER SET NONE, LINE4 CHAR(40) CHARACTER SET NONE, LINE5 CHAR(40) CHARACTER SET NONE, LINE6 CHAR(40) CHARACTER SET NONE ) AS BEGIN SUSPEND; EXIT; END ^ CREATE PROCEDURE ORG_CHART RETURNS ( HEAD_DEPT CHAR(25) CHARACTER SET NONE, DEPARTMENT CHAR(25) CHARACTER SET NONE, MNGR_NAME CHAR(20) CHARACTER SET NONE, TITLE CHAR(5) CHARACTER SET NONE, EMP_CNT INTEGER ) AS BEGIN SUSPEND; EXIT; END ^ CREATE PROCEDURE SHIP_ORDER ( PO_NUM CHAR(8) CHARACTER SET NONE ) AS BEGIN SUSPEND; EXIT; END ^ CREATE PROCEDURE SUB_TOT_BUDGET ( HEAD_DEPT CHAR(3) CHARACTER SET NONE ) RETURNS ( TOT_BUDGET DECIMAL(12,2), AVG_BUDGET DECIMAL(12,2), MIN_BUDGET DECIMAL(12,2), MAX_BUDGET DECIMAL(12,2) ) AS BEGIN SUSPEND; EXIT; END ^ SET TERM ;^ COMMIT WORK; SET AUTODDL ON; SET TERM ^; /* Triggers only will work for SQL triggers */ CREATE TRIGGER SET_CUST_NO FOR CUSTOMER ACTIVE BEFORE INSERT POSITION 0 AS BEGIN if (new.cust_no is null) then new.cust_no = gen_id(cust_no_gen, 1); END ^ CREATE TRIGGER SET_EMP_NO FOR EMPLOYEE ACTIVE BEFORE INSERT POSITION 0 AS BEGIN if (new.emp_no is null) then new.emp_no = gen_id(emp_no_gen, 1); END ^ CREATE TRIGGER SAVE_SALARY_CHANGE FOR EMPLOYEE ACTIVE AFTER UPDATE POSITION 0 AS BEGIN IF (old.salary <> new.salary) THEN INSERT INTO salary_history (emp_no, change_date, updater_id, old_salary, percent_change) VALUES ( old.emp_no, 'NOW', user, old.salary, (new.salary - old.salary) * 100 / old.salary); END ^ CREATE TRIGGER POST_NEW_ORDER FOR SALES ACTIVE AFTER INSERT POSITION 0 AS BEGIN POST_EVENT 'new_order'; END ^ COMMIT WORK^ SET TERM ;^ COMMIT WORK; SET AUTODDL OFF; SET TERM ^; /* Stored procedure Bodies */ ALTER PROCEDURE SHOW_LANGS ( CODE VARCHAR(5) CHARACTER SET NONE, GRADE SMALLINT, CTY VARCHAR(15) CHARACTER SET NONE ) RETURNS ( LANGUAGES VARCHAR(15) CHARACTER SET NONE ) AS DECLARE VARIABLE i INTEGER; BEGIN i = 1; WHILE (i <= 5) DO BEGIN SELECT language_req[:i] FROM joB WHERE ((job_code = :code) AND (job_grade = :grade) AND (job_country = :cty) AND (language_req IS NOT NULL)) INTO :languages; IF (languages = ' ') THEN /* Prints 'NULL' instead of blanks */ languages = 'NULL'; i = i +1; SUSPEND; END END ^ ALTER PROCEDURE ADD_EMP_PROJ ( EMP_NO SMALLINT, PROJ_ID CHAR(5) CHARACTER SET NONE ) AS BEGIN BEGIN INSERT INTO employee_project (emp_no, proj_id) VALUES (:emp_no, :proj_id); WHEN SQLCODE -530 DO EXCEPTION unknown_emp_id; END SUSPEND; END ^ ALTER PROCEDURE ALL_LANGS RETURNS ( CODE VARCHAR(5) CHARACTER SET NONE, GRADE VARCHAR(5) CHARACTER SET NONE, COUNTRY VARCHAR(15) CHARACTER SET NONE, LANG VARCHAR(15) CHARACTER SET NONE ) AS BEGIN FOR SELECT job_code, job_grade, job_country FROM job INTO :code, :grade, :country DO BEGIN FOR SELECT languages FROM show_langs (:code, :grade, :country) INTO :lang DO SUSPEND; /* Put nice separators between rows */ code = '====='; grade = '====='; country = '==============='; lang = '=============='; SUSPEND; END END ^ ALTER PROCEDURE DELETE_EMPLOYEE ( EMP_NUM INTEGER ) AS DECLARE VARIABLE any_sales INTEGER; BEGIN any_sales = 0; /* * If there are any sales records referencing this employee, * can't delete the employee until the sales are re-assigned * to another employee or changed to NULL. */ SELECT count(po_number) FROM sales WHERE sales_rep = :emp_num INTO :any_sales; IF (any_sales > 0) THEN BEGIN EXCEPTION reassign_sales; SUSPEND; END /* * If the employee is a manager, update the department. */ UPDATE department SET mngr_no = NULL WHERE mngr_no = :emp_num; /* * If the employee is a project leader, update project. */ UPDATE project SET team_leader = NULL WHERE team_leader = :emp_num; /* * Delete the employee from any projects. */ DELETE FROM employee_project WHERE emp_no = :emp_num; /* * Delete old salary records. */ DELETE FROM salary_history WHERE emp_no = :emp_num; /* * Delete the employee. */ DELETE FROM employee WHERE emp_no = :emp_num; SUSPEND; END ^ ALTER PROCEDURE DEPT_BUDGET ( DNO CHAR(3) CHARACTER SET NONE ) RETURNS ( TOT DECIMAL(12,2) ) AS DECLARE VARIABLE sumb DECIMAL(12, 2); DECLARE VARIABLE rdno CHAR(3); DECLARE VARIABLE cnt INTEGER; BEGIN tot = 0; SELECT budget FROM department WHERE dept_no = :dno INTO :tot; SELECT count(budget) FROM department WHERE head_dept = :dno INTO :cnt; IF (cnt = 0) THEN SUSPEND; FOR SELECT dept_no FROM department WHERE head_dept = :dno INTO :rdno DO BEGIN EXECUTE PROCEDURE dept_budget :rdno RETURNING_VALUES :sumb; tot = tot + sumb; END SUSPEND; END ^ ALTER PROCEDURE GET_EMP_PROJ ( EMP_NO SMALLINT ) RETURNS ( PROJ_ID CHAR(5) CHARACTER SET NONE ) AS BEGIN FOR SELECT proj_id FROM employee_project WHERE emp_no = :emp_no INTO :proj_id DO SUSPEND; END ^ ALTER PROCEDURE MAIL_LABEL ( CUST_NO INTEGER ) RETURNS ( LINE1 CHAR(40) CHARACTER SET NONE, LINE2 CHAR(40) CHARACTER SET NONE, LINE3 CHAR(40) CHARACTER SET NONE, LINE4 CHAR(40) CHARACTER SET NONE, LINE5 CHAR(40) CHARACTER SET NONE, LINE6 CHAR(40) CHARACTER SET NONE ) AS DECLARE VARIABLE customer VARCHAR(25); DECLARE VARIABLE first_name VARCHAR(15); DECLARE VARIABLE last_name VARCHAR(20); DECLARE VARIABLE addr1 VARCHAR(30); DECLARE VARIABLE addr2 VARCHAR(30); DECLARE VARIABLE city VARCHAR(25); DECLARE VARIABLE state VARCHAR(15); DECLARE VARIABLE country VARCHAR(15); DECLARE VARIABLE postcode VARCHAR(12); DECLARE VARIABLE cnt INTEGER; BEGIN line1 = ''; line2 = ''; line3 = ''; line4 = ''; line5 = ''; line6 = ''; SELECT customer, contact_first, contact_last, address_line1, address_line2, city, state_province, country, postal_code FROM CUSTOMER WHERE cust_no = :cust_no INTO :customer, :first_name, :last_name, :addr1, :addr2, :city, :state, :country, :postcode; IF (customer IS NOT NULL) THEN line1 = customer; IF (first_name IS NOT NULL) THEN line2 = first_name || ' ' || last_name; ELSE line2 = last_name; IF (addr1 IS NOT NULL) THEN line3 = addr1; IF (addr2 IS NOT NULL) THEN line4 = addr2; IF (country = 'USA') THEN BEGIN IF (city IS NOT NULL) THEN line5 = city || ', ' || state || ' ' || postcode; ELSE line5 = state || ' ' || postcode; END ELSE BEGIN IF (city IS NOT NULL) THEN line5 = city || ', ' || state; ELSE line5 = state; line6 = country || ' ' || postcode; END SUSPEND; END ^ ALTER PROCEDURE ORG_CHART RETURNS ( HEAD_DEPT CHAR(25) CHARACTER SET NONE, DEPARTMENT CHAR(25) CHARACTER SET NONE, MNGR_NAME CHAR(20) CHARACTER SET NONE, TITLE CHAR(5) CHARACTER SET NONE, EMP_CNT INTEGER ) AS DECLARE VARIABLE mngr_no INTEGER; DECLARE VARIABLE dno CHAR(3); BEGIN FOR SELECT h.department, d.department, d.mngr_no, d.dept_no FROM department d LEFT OUTER JOIN department h ON d.head_dept = h.dept_no ORDER BY d.dept_no INTO :head_dept, :department, :mngr_no, :dno DO BEGIN IF (:mngr_no IS NULL) THEN BEGIN mngr_name = '--TBH--'; title = ''; END ELSE SELECT full_name, job_code FROM employee WHERE emp_no = :mngr_no INTO :mngr_name, :title; SELECT COUNT(emp_no) FROM employee WHERE dept_no = :dno INTO :emp_cnt; SUSPEND; END END ^ ALTER PROCEDURE SHIP_ORDER ( PO_NUM CHAR(8) CHARACTER SET NONE ) AS DECLARE VARIABLE ord_stat CHAR(7); DECLARE VARIABLE hold_stat CHAR(1); DECLARE VARIABLE cust_no INTEGER; DECLARE VARIABLE any_po CHAR(8); BEGIN SELECT s.order_status, c.on_hold, c.cust_no FROM sales s, customer c WHERE po_number = :po_num AND s.cust_no = c.cust_no INTO :ord_stat, :hold_stat, :cust_no; /* This purchase order has been already shipped. */ IF (ord_stat = 'shipped') THEN BEGIN EXCEPTION order_already_shipped; SUSPEND; END /* Customer is on hold. */ ELSE IF (hold_stat = '*') THEN BEGIN EXCEPTION customer_on_hold; SUSPEND; END /* * If there is an unpaid balance on orders shipped over 2 months ago, * put the customer on hold. */ FOR SELECT po_number FROM sales WHERE cust_no = :cust_no AND order_status = 'shipped' AND paid = 'n' AND ship_date < CAST('NOW' AS TIMESTAMP) - 60 INTO :any_po DO BEGIN EXCEPTION customer_check; UPDATE customer SET on_hold = '*' WHERE cust_no = :cust_no; SUSPEND; END /* * Ship the order. */ UPDATE sales SET order_status = 'shipped', ship_date = 'NOW' WHERE po_number = :po_num; SUSPEND; END ^ ALTER PROCEDURE SUB_TOT_BUDGET ( HEAD_DEPT CHAR(3) CHARACTER SET NONE ) RETURNS ( TOT_BUDGET DECIMAL(12,2), AVG_BUDGET DECIMAL(12,2), MIN_BUDGET DECIMAL(12,2), MAX_BUDGET DECIMAL(12,2) ) AS BEGIN SELECT SUM(budget), AVG(budget), MIN(budget), MAX(budget) FROM department WHERE head_dept = :head_dept INTO :tot_budget, :avg_budget, :min_budget, :max_budget; SUSPEND; END ^ SET TERM ;^ COMMIT WORK; SET AUTODDL ON; /* Comments on System Objects */ /* Grant Roles for this database */ /* Grant permissions for this database */ GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE COUNTRY TO USER PUBLIC WITH GRANT OPTION ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE CUSTOMER TO USER PUBLIC WITH GRANT OPTION ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE DEPARTMENT TO USER PUBLIC WITH GRANT OPTION ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE EMPLOYEE TO USER PUBLIC WITH GRANT OPTION ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE EMPLOYEE_PROJECT TO USER PUBLIC WITH GRANT OPTION ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE JOB TO USER PUBLIC WITH GRANT OPTION ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE PHONE_LIST TO USER PUBLIC WITH GRANT OPTION ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE PROJECT TO USER PUBLIC WITH GRANT OPTION ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE PROJ_DEPT_BUDGET TO USER PUBLIC WITH GRANT OPTION ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE SALARY_HISTORY TO USER PUBLIC WITH GRANT OPTION ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE SALES TO USER PUBLIC WITH GRANT OPTION ; GRANT EXECUTE ON PROCEDURE ADD_EMP_PROJ TO USER PUBLIC WITH GRANT OPTION ; GRANT EXECUTE ON PROCEDURE ALL_LANGS TO USER PUBLIC WITH GRANT OPTION ; GRANT EXECUTE ON PROCEDURE DELETE_EMPLOYEE TO USER PUBLIC WITH GRANT OPTION ; GRANT EXECUTE ON PROCEDURE DEPT_BUDGET TO USER PUBLIC WITH GRANT OPTION ; GRANT EXECUTE ON PROCEDURE GET_EMP_PROJ TO USER PUBLIC WITH GRANT OPTION ; GRANT EXECUTE ON PROCEDURE MAIL_LABEL TO USER PUBLIC WITH GRANT OPTION ; GRANT EXECUTE ON PROCEDURE ORG_CHART TO USER PUBLIC WITH GRANT OPTION ; GRANT EXECUTE ON PROCEDURE SHIP_ORDER TO USER PUBLIC WITH GRANT OPTION ; GRANT EXECUTE ON PROCEDURE SHOW_LANGS TO USER PUBLIC WITH GRANT OPTION ; GRANT EXECUTE ON PROCEDURE SUB_TOT_BUDGET TO USER PUBLIC WITH GRANT OPTION ; ------------------------------------------------------ Running Test 10: Create Database from SQL Script and Extract SQL Creating Database from resources/Test10.11.sql /* Script for ODS 11 */ SET SQL DIALECT 3; SET AUTODDL ON; CREATE DATABASE 'inet://localhost//tmp/ibx-testsuite/testsuite1.fdb' PAGE_SIZE 8192 DEFAULT CHARACTER SET NONE; COMMENT ON DATABASE IS 'Employee Test DB'; /* Domain definitions */ CREATE DOMAIN ADDRESSLINE AS VARCHAR(30); CREATE DOMAIN BUDGET AS DECIMAL(12,2) DEFAULT 50000; CREATE DOMAIN COUNTRYNAME AS VARCHAR(15); CREATE DOMAIN CUSTNO AS INTEGER; CREATE DOMAIN DEPTNO AS CHAR(3); CREATE DOMAIN EMPNO AS SMALLINT; CREATE DOMAIN FB$OUT_TYPE AS BLOB SUB_TYPE TEXT SEGMENT SIZE 80 NOT NULL; CREATE DOMAIN FIRSTNAME AS VARCHAR(15); CREATE DOMAIN JOBCODE AS VARCHAR(5); CREATE DOMAIN JOBGRADE AS SMALLINT; CREATE DOMAIN LASTNAME AS VARCHAR(20); CREATE DOMAIN PHONENUMBER AS VARCHAR(20); CREATE DOMAIN PONUMBER AS CHAR(8); CREATE DOMAIN PRODTYPE AS VARCHAR(12) DEFAULT 'software' NOT NULL; CREATE DOMAIN PROJNO AS CHAR(5); CREATE DOMAIN SALARY AS NUMERIC(10,2) DEFAULT 0; /* Table: COUNTRIES, Owner: SYSDBA */ CREATE TABLE COUNTRIES ( COUNTRY VARCHAR(64) NOT NULL, NONEU SMALLINT, ISO2 CHAR(2), ISO3 CHAR(3), PRIMARY KEY (COUNTRY) ); COMMENT ON TABLE COUNTRIES IS 'List of Countries'; COMMENT ON COLUMN COUNTRIES.ISO2 IS 'Two Character ISO Country Code'; /* Table: COUNTRY, Owner: SYSDBA */ CREATE TABLE COUNTRY ( COUNTRY COUNTRYNAME NOT NULL, CURRENCY VARCHAR(10) NOT NULL, PRIMARY KEY (COUNTRY) ); /* Table: CUSTOMER, Owner: SYSDBA */ CREATE TABLE CUSTOMER ( CUST_NO CUSTNO NOT NULL, CUSTOMER VARCHAR(25) NOT NULL, CONTACT_FIRST FIRSTNAME, CONTACT_LAST LASTNAME, PHONE_NO PHONENUMBER, ADDRESS_LINE1 ADDRESSLINE, ADDRESS_LINE2 ADDRESSLINE, CITY VARCHAR(25), STATE_PROVINCE VARCHAR(15), COUNTRY COUNTRYNAME, POSTAL_CODE VARCHAR(12), ON_HOLD CHAR(1) DEFAULT NULL, LONG_REFERENCE BIGINT, PRIMARY KEY (CUST_NO) ); /* Table: DEPARTMENT, Owner: SYSDBA */ CREATE TABLE DEPARTMENT ( DEPT_NO DEPTNO NOT NULL, DEPARTMENT VARCHAR(25) NOT NULL, HEAD_DEPT DEPTNO, MNGR_NO EMPNO, BUDGET BUDGET, LOCATION VARCHAR(15), PHONE_NO PHONENUMBER DEFAULT '555-1234', UNIQUE (DEPARTMENT), PRIMARY KEY (DEPT_NO) ); /* Table: EMPLOYEE, Owner: SYSDBA */ CREATE TABLE EMPLOYEE ( EMP_NO EMPNO NOT NULL, FIRST_NAME FIRSTNAME NOT NULL, LAST_NAME LASTNAME NOT NULL, PHONE_EXT VARCHAR(4), HIRE_DATE TIMESTAMP DEFAULT 'NOW' NOT NULL, DEPT_NO DEPTNO NOT NULL, JOB_CODE JOBCODE NOT NULL, JOB_GRADE JOBGRADE NOT NULL, JOB_COUNTRY COUNTRYNAME NOT NULL, SALARY SALARY NOT NULL, FULL_NAME COMPUTED BY (last_name || ', ' || first_name), PRIMARY KEY (EMP_NO) ); /* Table: EMPLOYEE_PROJECT, Owner: SYSDBA */ CREATE TABLE EMPLOYEE_PROJECT ( EMP_NO EMPNO NOT NULL, PROJ_ID PROJNO NOT NULL, PRIMARY KEY (EMP_NO, PROJ_ID) ); /* Table: FB$OUT_TABLE, Owner: SYSDBA */ CREATE GLOBAL TEMPORARY TABLE FB$OUT_TABLE ( LINE_NUM INTEGER, CONTENT FB$OUT_TYPE ) ON COMMIT PRESERVE ROWS ; /* Table: JOB, Owner: SYSDBA */ CREATE TABLE JOB ( JOB_CODE JOBCODE NOT NULL, JOB_GRADE JOBGRADE NOT NULL, JOB_COUNTRY COUNTRYNAME NOT NULL, JOB_TITLE VARCHAR(25) NOT NULL, MIN_SALARY SALARY NOT NULL, MAX_SALARY SALARY NOT NULL, JOB_REQUIREMENT BLOB SUB_TYPE TEXT SEGMENT SIZE 400, LANGUAGE_REQ VARCHAR(15)[1:5], PRIMARY KEY (JOB_CODE, JOB_GRADE, JOB_COUNTRY) ); /* Table: PROJECT, Owner: SYSDBA */ CREATE TABLE PROJECT ( PROJ_ID PROJNO NOT NULL, PROJ_NAME VARCHAR(20) NOT NULL, PROJ_DESC BLOB SUB_TYPE TEXT SEGMENT SIZE 800, TEAM_LEADER EMPNO, PRODUCT PRODTYPE, UNIQUE (PROJ_NAME), PRIMARY KEY (PROJ_ID) ); /* Table: PROJ_DEPT_BUDGET, Owner: SYSDBA */ CREATE TABLE PROJ_DEPT_BUDGET ( FISCAL_YEAR INTEGER NOT NULL, PROJ_ID PROJNO NOT NULL, DEPT_NO DEPTNO NOT NULL, QUART_HEAD_CNT INTEGER[1:4], PROJECTED_BUDGET BUDGET, PRIMARY KEY (FISCAL_YEAR, PROJ_ID, DEPT_NO) ); /* Table: SALARY_HISTORY, Owner: SYSDBA */ CREATE TABLE SALARY_HISTORY ( EMP_NO EMPNO NOT NULL, CHANGE_DATE TIMESTAMP DEFAULT 'NOW' NOT NULL, UPDATER_ID VARCHAR(20) NOT NULL, OLD_SALARY SALARY NOT NULL, PERCENT_CHANGE DOUBLE PRECISION DEFAULT 0 NOT NULL, NEW_SALARY COMPUTED BY (old_salary + old_salary * percent_change / 100), PRIMARY KEY (EMP_NO, CHANGE_DATE, UPDATER_ID) ); /* Table: SALES, Owner: SYSDBA */ CREATE TABLE SALES ( PO_NUMBER PONUMBER NOT NULL, CUST_NO CUSTNO NOT NULL, SALES_REP EMPNO, ORDER_STATUS VARCHAR(7) DEFAULT 'new' NOT NULL, ORDER_DATE TIMESTAMP DEFAULT 'NOW' NOT NULL, SHIP_DATE TIMESTAMP, DATE_NEEDED TIMESTAMP, PAID CHAR(1) DEFAULT 'n', QTY_ORDERED INTEGER DEFAULT 1 NOT NULL, TOTAL_VALUE DECIMAL(9,2) NOT NULL, DISCOUNT FLOAT DEFAULT 0 NOT NULL, ITEM_TYPE PRODTYPE, AGED COMPUTED BY (ship_date - order_date), PRIMARY KEY (PO_NUMBER) ); /* External Function declarations */ DECLARE EXTERNAL FUNCTION ADDDAY TIMESTAMP, INTEGER RETURNS TIMESTAMP ENTRY_POINT 'addDay' MODULE_NAME 'fbudf' ; DECLARE EXTERNAL FUNCTION I64TRUNCATE NUMERIC(18,0) BY DESCRIPTOR, NUMERIC(18,0) BY DESCRIPTOR RETURNS PARAMETER 2 ENTRY_POINT 'fbtruncate' MODULE_NAME 'fbudf' ; DECLARE EXTERNAL FUNCTION TESTIT TIMESTAMP, INTEGER NULL, CSTRING(10) CHARACTER SET NONE, CSTRING(10) CHARACTER SET NONE BY DESCRIPTOR RETURNS CSTRING(32) CHARACTER SET NONE FREE_IT ENTRY_POINT 'testit' MODULE_NAME 'fbudf' ; /* Data Starts */ /* Inserting data into Table: COUNTRY */ INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('USA','Dollar'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('England','Pound'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Canada','CdnDlr'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Switzerland','SFranc'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Japan','Yen'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Italy','Euro'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('France','Euro'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Germany','Euro'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Australia','ADollar'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Hong Kong','HKDollar'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Netherlands','Euro'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Belgium','Euro'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Austria','Euro'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Fiji','FDollar'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Russia','Ruble'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Romania','RLeu'); COMMIT; /* Inserting data into Table: CUSTOMER */ INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1001,'Signature Design','Dale J.','Little','(619) 530-2710','15500 Pacific Heights Blvd.',NULL,'San Diego','CA','USA','92121',NULL,NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1002,'Dallas Technologies','Glen','Brown','(214) 960-2233','P. O. Box 47000',NULL,'Dallas','TX','USA','75205','*',NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1003,'Buttle, Griffith and Co.','James','Buttle','(617) 488-1864','2300 Newbury Street','Suite 101','Boston','MA','USA','02115',NULL,NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1004,'Central Bank','Elizabeth','Brocket','61 211 99 88','66 Lloyd Street',NULL,'Manchester',NULL,'England','M2 3LA',NULL,NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1005,'DT Systems, LTD.','Tai','Wu','(852) 850 43 98','400 Connaught Road',NULL,'Central Hong Kong',NULL,'Hong Kong',NULL,NULL,NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1006,'DataServe International','Tomas','Bright','(613) 229 3323','2000 Carling Avenue','Suite 150','Ottawa','ON','Canada','K1V 9G1',NULL,NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1007,'Mrs. Beauvais',NULL,'Mrs. Beauvais',NULL,'P.O. Box 22743',NULL,'Pebble Beach','CA','USA','93953',NULL,NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1008,'Anini Vacation Rentals','Leilani','Briggs','(808) 835-7605','3320 Lawai Road',NULL,'Lihue','HI','USA','96766',NULL,NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1009,'Max','Max',NULL,'22 01 23','1 Emerald Cove',NULL,'Turtle Island',NULL,'Fiji',NULL,'*',NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1010,'MPM Corporation','Miwako','Miyamoto','3 880 77 19','2-64-7 Sasazuka',NULL,'Tokyo',NULL,'Japan','150',NULL,NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1011,'Dynamic Intelligence Corp','Victor','Granges','01 221 16 50','Florhofgasse 10',NULL,'Zurich',NULL,'Switzerland','8005',NULL,NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1012,'3D-Pad Corp.','Michelle','Roche','1 43 60 61','22 Place de la Concorde',NULL,'Paris',NULL,'France','75008',NULL,NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1013,'Lorenzi Export, Ltd.','Andreas','Lorenzi','02 404 6284','Via Eugenia, 15',NULL,'Milan',NULL,'Italy','20124',NULL,NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1014,'Dyno Consulting','Greta','Hessels','02 500 5940','Rue Royale 350',NULL,'Brussels',NULL,'Belgium','1210',NULL,NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1015,'GeoTech Inc.','K.M.','Neppelenbroek','(070) 44 91 18','P.0.Box 702',NULL,'Den Haag',NULL,'Netherlands','2514',NULL,NULL); COMMIT; /* Inserting data into Table: DEPARTMENT */ INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('000','Corporate Headquarters',NULL,105,1000000,'Monterey','(408) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('100','Sales and Marketing','000',85,2000000,'San Francisco','(415) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('600','Engineering','000',2,1100000,'Monterey','(408) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('900','Finance','000',46,400000,'Monterey','(408) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('180','Marketing','100',NULL,1500000,'San Francisco','(415) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('620','Software Products Div.','600',NULL,1200000,'Monterey','(408) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('621','Software Development','620',NULL,400000,'Monterey','(408) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('622','Quality Assurance','620',9,300000,'Monterey','(408) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('623','Customer Support','620',15,650000,'Monterey','(408) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('670','Consumer Electronics Div.','600',107,1150000,'Burlington, VT','(802) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('671','Research and Development','670',20,460000,'Burlington, VT','(802) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('672','Customer Services','670',94,850000,'Burlington, VT','(802) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('130','Field Office: East Coast','100',11,500000,'Boston','(617) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('140','Field Office: Canada','100',72,500000,'Toronto','(416) 677-1000'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('110','Pacific Rim Headquarters','100',34,600000,'Kuaui','(808) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('115','Field Office: Japan','110',118,500000,'Tokyo','3 5350 0901'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('116','Field Office: Singapore','110',NULL,300000,'Singapore','3 55 1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('120','European Headquarters','100',36,700000,'London','71 235-4400'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('121','Field Office: Switzerland','120',141,500000,'Zurich','1 211 7767'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('123','Field Office: France','120',134,400000,'Cannes','58 68 11 12'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('125','Field Office: Italy','120',121,400000,'Milan','2 430 39 39'); COMMIT; /* Inserting data into Table: EMPLOYEE */ INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(2,'Robert','Nelson','250','1988.12.28 00:00:00.000','600','VP',2,'USA',105900); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(4,'Bruce','Young','233','1988.12.28 00:00:00.000','621','Eng',2,'USA',97500); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(5,'Kim','Lambert','22','1989.02.06 00:00:00.000','130','Eng',2,'USA',102750); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(8,'Leslie','Johnson','410','1989.04.05 00:00:00.000','180','Mktg',3,'USA',64635); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(9,'Phil','Forest','229','1989.04.17 00:00:00.000','622','Mngr',3,'USA',75060); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(11,'K. J.','Weston','34','1990.01.17 00:00:00.000','130','SRep',4,'USA',86292.94); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(12,'Terri','Lee','256','1990.05.01 00:00:00.000','000','Admin',4,'USA',53793); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(14,'Stewart','Hall','227','1990.06.04 00:00:00.000','900','Finan',3,'USA',69482.63); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(15,'Katherine','Young','231','1990.06.14 00:00:00.000','623','Mngr',3,'USA',67241.25); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(20,'Chris','Papadopoulos','887','1990.01.01 00:00:00.000','671','Mngr',3,'USA',89655); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(24,'Pete','Fisher','888','1990.09.12 00:00:00.000','671','Eng',3,'USA',81810.19); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(28,'Ann','Bennet','5','1991.02.01 00:00:00.000','120','Admin',5,'England',22935); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(29,'Roger','De Souza','288','1991.02.18 00:00:00.000','623','Eng',3,'USA',69482.63); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(34,'Janet','Baldwin','2','1991.03.21 00:00:00.000','110','Sales',3,'USA',61637.8); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(36,'Roger','Reeves','6','1991.04.25 00:00:00.000','120','Sales',3,'England',33620.63); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(37,'Willie','Stansbury','7','1991.04.25 00:00:00.000','120','Eng',4,'England',39224.06); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(44,'Leslie','Phong','216','1991.06.03 00:00:00.000','623','Eng',4,'USA',56034.38); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(45,'Ashok','Ramanathan','209','1991.08.01 00:00:00.000','621','Eng',3,'USA',80689.5); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(46,'Walter','Steadman','210','1991.08.09 00:00:00.000','900','CFO',1,'USA',116100); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(52,'Carol','Nordstrom','420','1991.10.02 00:00:00.000','180','PRel',4,'USA',42742.5); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(61,'Luke','Leung','3','1992.02.18 00:00:00.000','110','SRep',4,'USA',68805); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(65,'Sue Anne','O''Brien','877','1992.03.23 00:00:00.000','670','Admin',5,'USA',31275); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(71,'Jennifer M.','Burbank','289','1992.04.15 00:00:00.000','622','Eng',3,'USA',53167.5); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(72,'Claudia','Sutherland',NULL,'1992.04.20 00:00:00.000','140','SRep',4,'Canada',100914); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(83,'Dana','Bishop','290','1992.06.02 00:00:00.000','621','Eng',3,'USA',62550.02); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(85,'Mary S.','MacDonald','477','1992.06.01 00:00:00.000','100','VP',2,'USA',111262.5); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(94,'Randy','Williams','892','1992.08.08 00:00:00.000','672','Mngr',4,'USA',56295); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(105,'Oliver H A','Bender','255','1992.10.08 00:00:00.000','000','CEO',1,'USA',212850); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(107,'Kevin','Cook','894','1993.02.01 00:00:00.000','670','Dir',2,'USA',111262.5); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(109,'Kelly','Brown','202','1993.02.04 00:00:00.000','600','Admin',5,'USA',27000.01); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(110,'Yuki','Ichida','22','1993.02.04 00:00:00.000','115','Eng',3,'Japan',6000000); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(113,'Mary','Page','845','1993.04.12 00:00:00.000','671','Eng',4,'USA',48000); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(114,'Bill','Parker','247','1993.06.01 00:00:00.000','623','Eng',5,'USA',35000); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(118,'Takashi','Yamamoto','23','1993.07.01 00:00:00.000','115','SRep',4,'Japan',7480000); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(121,'Roberto','Ferrari','1','1993.07.12 00:00:00.000','125','SRep',4,'USA',33000.01); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(127,'Michael','Yanowski','492','1993.08.09 00:00:00.000','100','SRep',4,'USA',44000); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(134,'Jacques','Glon',NULL,'1993.08.23 00:00:00.000','123','SRep',4,'France',38500); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(136,'Scott','Johnson','265','1993.09.13 00:00:00.000','623','Doc',3,'USA',60000); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(138,'T.J.','Green','218','1993.11.01 00:00:00.000','621','Eng',4,'USA',36000); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(141,'Pierre','Osborne',NULL,'1994.01.03 00:00:00.000','121','SRep',4,'Switzerland',110000); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(144,'John','Montgomery','820','1994.03.30 00:00:00.000','672','Eng',5,'USA',35000); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(145,'Mark','Guckenheimer','221','1994.05.02 00:00:00.000','622','Eng',5,'USA',32000); COMMIT; /* Inserting data into Table: EMPLOYEE_PROJECT */ INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(144,'DGPII'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(113,'DGPII'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(24,'DGPII'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(8,'VBASE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(136,'VBASE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(15,'VBASE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(71,'VBASE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(145,'VBASE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(44,'VBASE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(4,'VBASE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(83,'VBASE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(138,'VBASE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(45,'VBASE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(20,'GUIDE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(24,'GUIDE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(113,'GUIDE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(8,'GUIDE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(4,'MAPDB'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(71,'MAPDB'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(46,'MKTPR'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(105,'MKTPR'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(12,'MKTPR'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(85,'MKTPR'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(110,'MKTPR'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(34,'MKTPR'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(8,'MKTPR'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(14,'MKTPR'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(52,'MKTPR'); COMMIT; /* Inserting data into Table: JOB */ INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('CEO',1,'USA','Chief Executive Officer',130000,250000,'No specific requirements. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('CFO',1,'USA','Chief Financial Officer',85000,140000,'15+ years in finance or 5+ years as a CFO with a proven track record. MBA or J.D. degree. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('VP',2,'USA','Vice President',80000,130000,'No specific requirements. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Dir',2,'USA','Director',75000,120000,'5-10 years as a director in computer or electronics industries. An advanced degree. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Mngr',3,'USA','Manager',60000,100000,'BA/BS required. 3-5 years in management, plus 2-4 years engineering experience. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Mngr',4,'USA','Manager',30000,60000,'5+ years office management experience. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Admin',4,'USA','Administrative Assistant',35000,55000,'3-5 years experience in executive environment. Strong organizational and communication skills required. BA degree preferred. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Admin',5,'USA','Administrative Assistant',20000,40000,'2-4 years clerical experience. Facility with word processing and data entry. AA degree preferred. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Admin',5,'England','Administrative Assistant',13400,26800,NULL,NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('PRel',4,'USA','Public Relations Rep.',25000,65000,NULL,NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Mktg',3,'USA','Marketing Analyst',40000,80000,'MBA required. 10+ years experience in high tech environment. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Mktg',4,'USA','Marketing Analyst',20000,50000,'BA/BS required. MBA preferred. 3-5 years experience. Knowledgeable with spreadsheets and databases. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Accnt',4,'USA','Accountant',28000,55000,'CPA with 3-5 years experience. Spreadsheet, data entry, and word processing knowledge required. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Finan',3,'USA','Financial Analyst',35000,85000,'5-10 years of accounting and financial experience. Strong analytical skills. CPA/MBA required. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Eng',2,'USA','Engineer',70000,110000,'Distinguished engineer. Ph.D/MS/BS or equivalent experience. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Eng',3,'USA','Engineer',50000,90000,'5+ years experience. BA/BS required. MS degree preferred. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Eng',3,'Japan','Engineer',5400000,9720000,'5+ years experience. BA/BS and/or MS degrees required. Customer support experience desired. Knowledge of Japanese and English. ', Japanese Mandarin English ); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Eng',4,'USA','Engineer',30000,65000,'BA/BS and 3-5 years experience. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Eng',4,'England','Engineer',20100,43550,'BA/BS and 2-4 years experience in technical support. Knowledge of several European languages helpful. ', English German French ); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Eng',5,'USA','Engineer',25000,35000,'BA/BS preferred. 2-4 years technical experience. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Doc',3,'USA','Technical Writer',38000,60000,'4+ years writing highly technical software documentation. A bachelor''s degree or equivalent. Programming experience required. Excellent language skills. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Doc',5,'USA','Technical Writer',22000,40000,'BA in English/journalism or excellent language skills. Some programming experience required. 2-4 years of technical writing. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Sales',3,'USA','Sales Co-ordinator',40000,70000,'Experience in sales and public relations in a high tech environment. Excellent communication skills. BA or equivalent. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Sales',3,'England','Sales Co-ordinator',26800,46900,'Experience in sales and public relations in a high tech environment. Excellent communication skills. BA or equivalent. Knowledge of several European languages helpful. ', English German French ); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'USA','Sales Representative',20000,100000,'Computer/electronics industry sales experience. Excellent communications, negotiation, and analytical skills. Experience in establishing long term customer relationships. Some knowledge of Spanish required. Travel required. ', English Spanish ); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'England','Sales Representative',13400,67000,'Computer/electronics industry sales experience. Excellent communications, negotiation, and analytical skills. Experience in establishing long term customer relationships. Knowledge of several European languages helpful. Travel required. ', English German French ); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'Canada','Sales Representative',26400,132000,'Computer/electronics industry sales experience. Excellent communications, negotiation, and analytical skills. Experience in establishing long term customer relationships. Travel required. English plus speaking knowledge of French required. ', English French ); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'Switzerland','Sales Representative',28000,149000,'Computer/electronics industry sales experience. Excellent communications, negotiation, and analytical skills. Experience in establishing long term customer relationships. Knowledge of German required; one or more other European language helpful. Travel required. ', German French English Italian ); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'Japan','Sales Representative',2160000,10800000,'Computer/electronics industry sales experience. Excellent communications, negotiation, and analytical skills. Experience in establishing long term customer relationships. Knowledge of Japanese required. Travel required. ', Japanese English ); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'Italy','Sales Representative',20000,100000,'Computer/electronics industry sales experience. Excellent communications, negotiation, and analytical skills. Experience in establishing long term customer relationships. Fluency in Italian; some knowledge of German helpful. Travel required. ', Italian German French ); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'France','Sales Representative',20000,100000,'Computer/electronics industry sales experience. Excellent communications, negotiation, and analytical skills. Experience in establishing long term customer relationships. Fluency in French; some knowledge of German/Spanish helpful. Travel required. ', English French Spanish ); COMMIT; /* Inserting data into Table: PROJECT */ INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('VBASE','Video Database','Design a video data base management system for controlling on-demand video distribution. ',45,'software'); INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('DGPII','DigiPizza','Develop second generation digital pizza maker with flash-bake heating element and digital ingredient measuring system. ',24,'other'); INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('GUIDE','AutoMap','Develop a prototype for the automobile version of the hand-held map browsing device. ',20,'hardware'); INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('MAPDB','MapBrowser port','Port the map browsing database software to run on the automobile model. ',4,'software'); INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('HWRII','Translator upgrade','Integrate the hand-writing recognition module into the universal language translator. ',NULL,'software'); INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('MKTPR','Marketing project 3','Expand marketing and sales in the Pacific Rim. Set up a field office in Australia and Singapore. ',85,'N/A'); COMMIT; /* Inserting data into Table: PROJ_DEPT_BUDGET */ INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'GUIDE','100', 1 1 1 0 ,200000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'GUIDE','671', 3 2 1 0 ,450000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1993,'MAPDB','621', 0 0 0 1 ,20000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MAPDB','621', 2 1 0 0 ,40000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MAPDB','622', 1 1 0 0 ,60000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MAPDB','671', 1 1 0 0 ,11000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'HWRII','670', 1 1 1 1 ,20000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'HWRII','621', 2 3 2 1 ,400000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'HWRII','622', 1 1 2 2 ,100000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MKTPR','623', 1 1 1 2 ,80000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MKTPR','672', 1 1 1 2 ,100000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MKTPR','100', 4 5 6 6 ,1000000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MKTPR','110', 2 2 0 3 ,200000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MKTPR','000', 1 1 2 2 ,100000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1995,'MKTPR','623', 7 7 4 4 ,1200000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1995,'MKTPR','672', 2 3 3 3 ,800000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1995,'MKTPR','100', 4 5 6 6 ,2000000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1995,'MKTPR','110', 1 1 1 1 ,1200000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'VBASE','621', 4 5 5 3 ,1900000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1995,'VBASE','621', 4 3 2 2 ,900000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'VBASE','622', 2 2 2 1 ,400000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'VBASE','100', 1 1 2 3 ,300000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1995,'VBASE','100', 3 3 1 1 ,1500000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1996,'VBASE','100', 1 1 0 0 ,150000); COMMIT; /* Inserting data into Table: SALARY_HISTORY */ INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(28,'1992.12.15 00:00:00.000','admin2',20000,10); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(2,'1992.12.15 00:00:00.000','admin2',98000,8.0612); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(4,'1992.12.15 00:00:00.000','admin2',90000,8.3333); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(5,'1992.12.15 00:00:00.000','admin2',95000,8.1578); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(11,'1992.12.15 00:00:00.000','admin2',70000,7.5); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(12,'1992.12.15 00:00:00.000','admin2',48000,7.5); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(14,'1992.12.15 00:00:00.000','admin2',62000,7.5); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(15,'1992.12.15 00:00:00.000','admin2',60000,7.5); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(20,'1992.12.15 00:00:00.000','admin2',80000,7.5); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(24,'1992.12.15 00:00:00.000','admin2',73000,7.5); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(29,'1992.12.15 00:00:00.000','admin2',62000,7.5); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(34,'1992.12.15 00:00:00.000','admin2',55000,7.5); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(36,'1992.12.15 00:00:00.000','admin2',30000,7.5); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(37,'1992.12.15 00:00:00.000','admin2',35000,7.5); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(44,'1992.12.15 00:00:00.000','admin2',50000,7.5); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(45,'1992.12.15 00:00:00.000','admin2',72000,7.5); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(8,'1993.09.08 00:00:00.000','elaine',62000,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(9,'1993.09.08 00:00:00.000','elaine',72000,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(11,'1993.09.08 00:00:00.000','elaine',75250,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(12,'1993.09.08 00:00:00.000','elaine',51600,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(14,'1993.09.08 00:00:00.000','elaine',66650,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(15,'1993.09.08 00:00:00.000','elaine',64500,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(20,'1993.09.08 00:00:00.000','elaine',86000,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(24,'1993.09.08 00:00:00.000','elaine',78475,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(28,'1993.09.08 00:00:00.000','elaine',22000,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(29,'1993.09.08 00:00:00.000','elaine',66650,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(34,'1993.09.08 00:00:00.000','elaine',59125,4.2499); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(36,'1993.09.08 00:00:00.000','elaine',32250,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(37,'1993.09.08 00:00:00.000','elaine',37625,4.2499); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(44,'1993.09.08 00:00:00.000','elaine',53750,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(45,'1993.09.08 00:00:00.000','elaine',77400,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(52,'1993.09.08 00:00:00.000','elaine',41000,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(61,'1993.09.08 00:00:00.000','elaine',60000,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(65,'1993.09.08 00:00:00.000','elaine',30000,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(71,'1993.09.08 00:00:00.000','elaine',51000,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(72,'1993.09.08 00:00:00.000','elaine',88000,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(83,'1993.09.08 00:00:00.000','elaine',60000,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(94,'1993.09.08 00:00:00.000','elaine',54000,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(46,'1993.12.20 00:00:00.000','tj',120000,-3.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(85,'1993.12.20 00:00:00.000','tj',115000,-3.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(105,'1993.12.20 00:00:00.000','tj',220000,-3.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(107,'1993.12.20 00:00:00.000','tj',115000,-3.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(11,'1993.12.20 00:00:00.000','elaine',78448.13,9.9999); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(61,'1993.12.20 00:00:00.000','elaine',62550,10); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(72,'1993.12.20 00:00:00.000','elaine',91740,10); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(118,'1993.12.20 00:00:00.000','elaine',6800000,10); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(121,'1993.12.20 00:00:00.000','elaine',30000,10); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(127,'1993.12.20 00:00:00.000','elaine',40000,10); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(134,'1993.12.20 00:00:00.000','elaine',35000,10); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(28,'2017.11.06 16:46:27.145','SYSDBA',22935,0); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(28,'2017.11.06 16:47:01.376','SYSDBA',22935.01,0); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(12,'2017.12.29 12:18:48.909','SYSDBA',53793,0); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(12,'2017.12.29 12:18:58.051','SYSDBA',53793.01,0); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(83,'2018.01.04 10:57:34.245','SYSDBA',62550,0); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(121,'2018.03.13 15:29:08.850','SYSDBA',33000,0); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(109,'2018.03.13 17:12:06.340','SYSDBA',27000,0); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(34,'2018.03.13 17:13:20.671','SYSDBA',61637.81,0); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(83,'2018.03.13 17:13:35.845','SYSDBA',62550.01,0); COMMIT; /* Inserting data into Table: SALES */ INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V91E0210',1004,11,'shipped','1991.03.04 00:00:00.000','1991.03.05 00:00:00.000',NULL,'y',10,5000,0.100000001490116,'hardware'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V92E0340',1004,11,'shipped','1992.10.15 00:00:00.000','1992.10.16 00:00:00.000','1992.10.17 00:00:00.000','y',7,70000,0,'hardware'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V92J1003',1010,61,'shipped','1992.07.26 00:00:00.000','1992.08.04 00:00:00.000','1992.09.15 00:00:00.000','y',15,2985,0,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93J2004',1010,118,'shipped','1993.10.30 00:00:00.000','1993.12.02 00:00:00.000','1993.11.15 00:00:00.000','y',3,210,0,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93J3100',1010,118,'shipped','1993.08.20 00:00:00.000','1993.08.20 00:00:00.000',NULL,'y',16,18000.4,0.100000001490116,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V92F3004',1012,11,'shipped','1992.10.15 00:00:00.000','1993.01.16 00:00:00.000','1993.01.16 00:00:00.000','y',3,2000,0,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93F3088',1012,134,'shipped','1993.08.27 00:00:00.000','1993.09.08 00:00:00.000',NULL,'n',10,10000,0,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93F2030',1012,134,'open','1993.12.12 00:00:00.000',NULL,NULL,'y',15,450000.49,0,'hardware'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93F2051',1012,134,'waiting','1993.12.18 00:00:00.000',NULL,'1994.03.01 00:00:00.000','n',1,999.98,0,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93H0030',1005,118,'open','1993.12.12 00:00:00.000',NULL,'1994.01.01 00:00:00.000','y',20,5980,0.200000002980232,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V94H0079',1005,61,'open','1994.02.13 00:00:00.000',NULL,'1994.04.20 00:00:00.000','n',10,9000,0.0500000007450581,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9324200',1001,72,'shipped','1993.08.09 00:00:00.000','1993.08.09 00:00:00.000','1993.08.17 00:00:00.000','y',1000,560000,0.200000002980232,'hardware'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9324320',1001,127,'shipped','1993.08.16 00:00:00.000','1993.08.16 00:00:00.000','1993.09.01 00:00:00.000','y',1,0,1,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9320630',1001,127,'open','1993.12.12 00:00:00.000',NULL,'1993.12.15 00:00:00.000','n',3,60000,0.200000002980232,'hardware'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9420099',1001,127,'open','1994.01.17 00:00:00.000',NULL,'1994.06.01 00:00:00.000','n',100,3399.15,0.150000005960464,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9427029',1001,127,'shipped','1994.02.07 00:00:00.000','1994.02.10 00:00:00.000','1994.02.10 00:00:00.000','n',17,422210.97,0,'hardware'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9333005',1002,11,'shipped','1993.02.03 00:00:00.000','1993.03.03 00:00:00.000',NULL,'y',2,600.5,0,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9333006',1002,11,'shipped','1993.04.27 00:00:00.000','1993.05.02 00:00:00.000','1993.05.02 00:00:00.000','n',5,20000,0,'other'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9336100',1002,11,'waiting','1993.12.27 00:00:00.000','1994.01.01 00:00:00.000','1994.01.01 00:00:00.000','n',150,14850,0.0500000007450581,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9346200',1003,11,'waiting','1993.12.31 00:00:00.000',NULL,'1994.01.24 00:00:00.000','n',3,0,1,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9345200',1003,11,'shipped','1993.11.11 00:00:00.000','1993.12.02 00:00:00.000','1993.12.01 00:00:00.000','y',900,27000,0.300000011920929,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9345139',1003,127,'shipped','1993.09.09 00:00:00.000','1993.09.20 00:00:00.000','1993.10.01 00:00:00.000','y',20,12582.12,0.100000001490116,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93C0120',1006,72,'shipped','1993.03.22 00:00:00.000','1993.05.31 00:00:00.000','1993.04.17 00:00:00.000','y',1,47.5,0,'other'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93C0990',1006,72,'shipped','1993.08.09 00:00:00.000','1993.09.02 00:00:00.000',NULL,'y',40,399960.5,0.100000001490116,'hardware'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9456220',1007,127,'open','1994.01.04 00:00:00.000',NULL,'1994.01.30 00:00:00.000','y',1,3999.99,0,'hardware'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93S4702',1011,121,'shipped','1993.10.27 00:00:00.000','1993.10.28 00:00:00.000','1993.12.15 00:00:00.000','y',4,120000,0,'hardware'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V94S6400',1011,141,'waiting','1994.01.06 00:00:00.000',NULL,'1994.02.15 00:00:00.000','y',20,1980.72,0.400000005960464,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93H3009',1008,61,'shipped','1993.08.01 00:00:00.000','1993.12.02 00:00:00.000','1993.12.01 00:00:00.000','n',3,9000,0.0500000007450581,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93H0500',1008,61,'open','1993.12.12 00:00:00.000',NULL,'1993.12.15 00:00:00.000','n',3,16000,0.200000002980232,'hardware'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93F0020',1009,61,'shipped','1993.10.10 00:00:00.000','1993.11.11 00:00:00.000','1993.11.11 00:00:00.000','n',1,490.69,0,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93I4700',1013,121,'open','1993.10.27 00:00:00.000',NULL,'1993.12.15 00:00:00.000','n',5,2693,0,'hardware'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93B1002',1014,134,'shipped','1993.09.20 00:00:00.000','1993.09.21 00:00:00.000','1993.09.25 00:00:00.000','y',1,100.02,0,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93N5822',1015,134,'shipped','1993.12.18 00:00:00.000','1994.01.14 00:00:00.000',NULL,'n',2,1500,0,'software'); COMMIT; /* Data Ends */ /* Index definitions for all user tables */ CREATE INDEX CUSTNAMEX ON CUSTOMER(CUSTOMER); CREATE INDEX CUSTREGION ON CUSTOMER(COUNTRY, CITY); CREATE DESCENDING INDEX BUDGETX ON DEPARTMENT(BUDGET); CREATE INDEX NAMEX ON EMPLOYEE(LAST_NAME, FIRST_NAME); CREATE DESCENDING INDEX MAXSALX ON JOB(JOB_COUNTRY, MAX_SALARY); CREATE INDEX MINSALX ON JOB(JOB_COUNTRY, MIN_SALARY); CREATE UNIQUE INDEX PRODTYPEX ON PROJECT(PRODUCT, PROJ_NAME); CREATE DESCENDING INDEX CHANGEX ON SALARY_HISTORY(CHANGE_DATE); CREATE INDEX UPDATERX ON SALARY_HISTORY(UPDATER_ID); CREATE INDEX NEEDX ON SALES(DATE_NEEDED); CREATE DESCENDING INDEX QTYX ON SALES(ITEM_TYPE, QTY_ORDERED); CREATE INDEX SALESTATX ON SALES(ORDER_STATUS, PAID); ALTER TABLE CUSTOMER ADD FOREIGN KEY (COUNTRY) REFERENCES COUNTRY (COUNTRY); ALTER TABLE DEPARTMENT ADD FOREIGN KEY (HEAD_DEPT) REFERENCES DEPARTMENT (DEPT_NO); ALTER TABLE DEPARTMENT ADD FOREIGN KEY (MNGR_NO) REFERENCES EMPLOYEE (EMP_NO); ALTER TABLE EMPLOYEE ADD FOREIGN KEY (DEPT_NO) REFERENCES DEPARTMENT (DEPT_NO); ALTER TABLE EMPLOYEE ADD FOREIGN KEY (JOB_CODE, JOB_GRADE, JOB_COUNTRY) REFERENCES JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY); ALTER TABLE EMPLOYEE_PROJECT ADD FOREIGN KEY (EMP_NO) REFERENCES EMPLOYEE (EMP_NO); ALTER TABLE EMPLOYEE_PROJECT ADD FOREIGN KEY (PROJ_ID) REFERENCES PROJECT (PROJ_ID); ALTER TABLE JOB ADD FOREIGN KEY (JOB_COUNTRY) REFERENCES COUNTRY (COUNTRY); ALTER TABLE PROJECT ADD FOREIGN KEY (TEAM_LEADER) REFERENCES EMPLOYEE (EMP_NO); ALTER TABLE PROJ_DEPT_BUDGET ADD FOREIGN KEY (DEPT_NO) REFERENCES DEPARTMENT (DEPT_NO); ALTER TABLE PROJ_DEPT_BUDGET ADD FOREIGN KEY (PROJ_ID) REFERENCES PROJECT (PROJ_ID); ALTER TABLE SALARY_HISTORY ADD FOREIGN KEY (EMP_NO) REFERENCES EMPLOYEE (EMP_NO); ALTER TABLE SALES ADD FOREIGN KEY (CUST_NO) REFERENCES CUSTOMER (CUST_NO); ALTER TABLE SALES ADD FOREIGN KEY (SALES_REP) REFERENCES EMPLOYEE (EMP_NO); CREATE SEQUENCE CUST_NO_GEN; ALTER SEQUENCE CUST_NO_GEN RESTART WITH 1016; CREATE SEQUENCE EMP_NO_GEN; ALTER SEQUENCE EMP_NO_GEN RESTART WITH 158; CREATE SEQUENCE FB$OUT_SEQ; ALTER SEQUENCE FB$OUT_SEQ RESTART WITH 1; /* View: DEPTLIST, Owner: SYSDBA */ CREATE VIEW DEPTLIST ( EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY, FULL_NAME, DEPT_PATH, DEPT_KEY_PATH ) AS with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH, cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH, Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO ) Select distinct A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE, A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO ; /* View: PHONE_LIST, Owner: SYSDBA */ CREATE VIEW PHONE_LIST ( EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, LOCATION, PHONE_NO ) AS SELECT emp_no, first_name, last_name, phone_ext, location, phone_no FROM employee, department WHERE employee.dept_no = department.dept_no ; /* Add Domain Check Constraints */ ALTER DOMAIN BUDGET ADD CONSTRAINT CHECK (VALUE > 10000 AND VALUE <= 2000000); ALTER DOMAIN CUSTNO ADD CONSTRAINT CHECK (VALUE > 1000); ALTER DOMAIN DEPTNO ADD CONSTRAINT CHECK (VALUE = '000' OR (VALUE > '0' AND VALUE <= '999') OR VALUE IS NULL); ALTER DOMAIN JOBCODE ADD CONSTRAINT CHECK (VALUE > '99999'); ALTER DOMAIN JOBGRADE ADD CONSTRAINT CHECK (VALUE BETWEEN 0 AND 6); ALTER DOMAIN PONUMBER ADD CONSTRAINT CHECK (VALUE STARTING WITH 'V'); ALTER DOMAIN PRODTYPE ADD CONSTRAINT CHECK (VALUE IN ('software', 'hardware', 'other', 'N/A')); ALTER DOMAIN PROJNO ADD CONSTRAINT CHECK (VALUE = UPPER (VALUE)); ALTER DOMAIN SALARY ADD CONSTRAINT CHECK (VALUE > 0); ALTER TABLE JOB ADD CHECK (min_salary < max_salary); ALTER TABLE JOB ADD CHECK (min_salary < max_salary); ALTER TABLE EMPLOYEE ADD CHECK ( salary >= (SELECT min_salary FROM job WHERE job.job_code = employee.job_code AND job.job_grade = employee.job_grade AND job.job_country = employee.job_country) AND salary <= (SELECT max_salary FROM job WHERE job.job_code = employee.job_code AND job.job_grade = employee.job_grade AND job.job_country = employee.job_country)); ALTER TABLE PROJ_DEPT_BUDGET ADD CHECK (FISCAL_YEAR >= 1993); ALTER TABLE SALARY_HISTORY ADD CHECK (percent_change between -50 and 50); ALTER TABLE CUSTOMER ADD CHECK (on_hold IS NULL OR on_hold = '*'); ALTER TABLE SALES ADD CHECK (order_status in ('new', 'open', 'shipped', 'waiting')); ALTER TABLE SALES ADD CHECK (ship_date >= order_date OR ship_date IS NULL); ALTER TABLE SALES ADD CHECK (date_needed > order_date OR date_needed IS NULL); ALTER TABLE SALES ADD CHECK (paid in ('y', 'n')); ALTER TABLE SALES ADD CHECK (qty_ordered >= 1); ALTER TABLE SALES ADD CHECK (total_value >= 0); ALTER TABLE SALES ADD CHECK (discount >= 0 AND discount <= 1); ALTER TABLE SALES ADD CHECK (NOT (order_status = 'shipped' AND ship_date IS NULL)); ALTER TABLE SALES ADD CHECK (NOT (order_status = 'shipped' AND EXISTS (SELECT on_hold FROM customer WHERE customer.cust_no = sales.cust_no AND customer.on_hold = '*'))); /* Exceptions */ CREATE EXCEPTION CUSTOMER_CHECK 'Overdue balance -- can not ship.'; CREATE EXCEPTION CUSTOMER_ON_HOLD 'This customer is on hold.'; CREATE EXCEPTION ORDER_ALREADY_SHIPPED 'Order status is "shipped."'; CREATE EXCEPTION REASSIGN_SALES 'Reassign the sales records before deleting this employee.'; CREATE EXCEPTION UNKNOWN_EMP_ID 'Invalid employee number or project id.'; COMMIT WORK; SET AUTODDL OFF; SET TERM ^; /* Stored procedures Definitions*/ CREATE PROCEDURE SHOW_LANGS ( CODE VARCHAR(5) CHARACTER SET NONE, GRADE SMALLINT, CTY VARCHAR(15) CHARACTER SET NONE ) RETURNS ( LANGUAGES VARCHAR(15) CHARACTER SET NONE ) AS BEGIN SUSPEND; EXIT; END ^ CREATE PROCEDURE ADD_EMP_PROJ ( EMP_NO SMALLINT, PROJ_ID CHAR(5) CHARACTER SET NONE ) AS BEGIN EXIT; END ^ CREATE PROCEDURE ALL_LANGS RETURNS ( CODE VARCHAR(5) CHARACTER SET NONE, GRADE VARCHAR(5) CHARACTER SET NONE, COUNTRY VARCHAR(15) CHARACTER SET NONE, LANG VARCHAR(15) CHARACTER SET NONE ) AS BEGIN SUSPEND; EXIT; END ^ CREATE PROCEDURE DELETE_EMPLOYEE ( EMP_NUM INTEGER ) AS BEGIN EXIT; END ^ CREATE PROCEDURE DEPT_BUDGET ( DNO CHAR(3) CHARACTER SET NONE ) RETURNS ( TOT DECIMAL(12,2) ) AS BEGIN SUSPEND; EXIT; END ^ CREATE PROCEDURE GET_EMP_PROJ ( EMP_NO SMALLINT ) RETURNS ( PROJ_ID CHAR(5) CHARACTER SET NONE ) AS BEGIN SUSPEND; EXIT; END ^ CREATE PROCEDURE "Has Space" ( ARG1 INTEGER ) AS BEGIN EXIT; END ^ CREATE PROCEDURE MAIL_LABEL ( CUST_NO INTEGER ) RETURNS ( LINE1 CHAR(40) CHARACTER SET NONE, LINE2 CHAR(40) CHARACTER SET NONE, LINE3 CHAR(40) CHARACTER SET NONE, LINE4 CHAR(40) CHARACTER SET NONE, LINE5 CHAR(40) CHARACTER SET NONE, LINE6 CHAR(40) CHARACTER SET NONE ) AS BEGIN SUSPEND; EXIT; END ^ CREATE PROCEDURE ORG_CHART RETURNS ( HEAD_DEPT CHAR(25) CHARACTER SET NONE, DEPARTMENT CHAR(25) CHARACTER SET NONE, MNGR_NAME CHAR(20) CHARACTER SET NONE, TITLE CHAR(5) CHARACTER SET NONE, EMP_CNT INTEGER ) AS BEGIN SUSPEND; EXIT; END ^ CREATE PROCEDURE SHIP_ORDER ( PO_NUM CHAR(8) CHARACTER SET NONE ) AS BEGIN EXIT; END ^ CREATE PROCEDURE SUB_TOT_BUDGET ( HEAD_DEPT CHAR(3) CHARACTER SET NONE ) RETURNS ( TOT_BUDGET DECIMAL(12,2), AVG_BUDGET DECIMAL(12,2), MIN_BUDGET DECIMAL(12,2), MAX_BUDGET DECIMAL(12,2) ) AS BEGIN SUSPEND; EXIT; END ^ CREATE PROCEDURE "UC SPACE" ( ARG1 INTEGER ) AS BEGIN EXIT; END ^ CREATE PROCEDURE "iCASE" AS BEGIN EXIT; END ^ SET TERM ;^ COMMIT WORK; SET AUTODDL ON; SET TERM ^; /* Triggers only will work for SQL triggers */ CREATE TRIGGER SET_CUST_NO FOR CUSTOMER ACTIVE BEFORE INSERT POSITION 0 AS BEGIN if (new.cust_no is null) then new.cust_no = gen_id(cust_no_gen, 1); END ^ CREATE TRIGGER SET_EMP_NO FOR EMPLOYEE ACTIVE BEFORE INSERT POSITION 0 AS BEGIN if (new.emp_no is null) then new.emp_no = gen_id(emp_no_gen, 1); END ^ CREATE TRIGGER SAVE_SALARY_CHANGE FOR EMPLOYEE ACTIVE AFTER UPDATE POSITION 0 AS BEGIN IF (old.salary <> new.salary) THEN INSERT INTO salary_history (emp_no, change_date, updater_id, old_salary, percent_change) VALUES ( old.emp_no, 'NOW', user, old.salary, (new.salary - old.salary) * 100 / old.salary); END ^ CREATE TRIGGER POST_NEW_ORDER FOR SALES ACTIVE AFTER INSERT POSITION 0 AS BEGIN POST_EVENT 'new_order'; END ^ COMMIT WORK^ SET TERM ;^ COMMIT WORK; SET AUTODDL OFF; SET TERM ^; /* Stored procedure Bodies */ ALTER PROCEDURE SHOW_LANGS ( CODE VARCHAR(5) CHARACTER SET NONE, GRADE SMALLINT, CTY VARCHAR(15) CHARACTER SET NONE ) RETURNS ( LANGUAGES VARCHAR(15) CHARACTER SET NONE ) AS DECLARE VARIABLE i INTEGER; BEGIN i = 1; WHILE (i <= 5) DO BEGIN SELECT language_req[:i] FROM joB WHERE ((job_code = :code) AND (job_grade = :grade) AND (job_country = :cty) AND (language_req IS NOT NULL)) INTO :languages; IF (languages = ' ') THEN /* Prints 'NULL' instead of blanks */ languages = 'NULL'; i = i +1; SUSPEND; END END ^ ALTER PROCEDURE ADD_EMP_PROJ ( EMP_NO SMALLINT, PROJ_ID CHAR(5) CHARACTER SET NONE ) AS BEGIN BEGIN INSERT INTO employee_project (emp_no, proj_id) VALUES (:emp_no, :proj_id); WHEN SQLCODE -530 DO EXCEPTION unknown_emp_id; END END ^ ALTER PROCEDURE ALL_LANGS RETURNS ( CODE VARCHAR(5) CHARACTER SET NONE, GRADE VARCHAR(5) CHARACTER SET NONE, COUNTRY VARCHAR(15) CHARACTER SET NONE, LANG VARCHAR(15) CHARACTER SET NONE ) AS BEGIN FOR SELECT job_code, job_grade, job_country FROM job INTO :code, :grade, :country DO BEGIN FOR SELECT languages FROM show_langs (:code, :grade, :country) INTO :lang DO SUSPEND; /* Put nice separators between rows */ code = '====='; grade = '====='; country = '==============='; lang = '=============='; SUSPEND; END END ^ ALTER PROCEDURE DELETE_EMPLOYEE ( EMP_NUM INTEGER ) AS DECLARE VARIABLE any_sales INTEGER; BEGIN any_sales = 0; /* * If there are any sales records referencing this employee, * cannot delete the employee until the sales are re-assigned * to another employee or changed to NULL. */ SELECT count(po_number) FROM sales WHERE sales_rep = :emp_num INTO :any_sales; IF (any_sales > 0) THEN BEGIN EXCEPTION reassign_sales; END /* * If the employee is a manager, update the department. */ UPDATE department SET mngr_no = NULL WHERE mngr_no = :emp_num; /* * If the employee is a project leader, update project. */ UPDATE project SET team_leader = NULL WHERE team_leader = :emp_num; /* * Delete the employee from any projects. */ DELETE FROM employee_project WHERE emp_no = :emp_num; /* * Delete old salary records. */ DELETE FROM salary_history WHERE emp_no = :emp_num; /* * Delete the employee. */ DELETE FROM employee WHERE emp_no = :emp_num; END ^ ALTER PROCEDURE DEPT_BUDGET ( DNO CHAR(3) CHARACTER SET NONE ) RETURNS ( TOT DECIMAL(12,2) ) AS DECLARE VARIABLE sumb DECIMAL(12,2); DECLARE VARIABLE rdno CHAR(3); DECLARE VARIABLE cnt INTEGER; BEGIN tot = 0; SELECT budget FROM department WHERE dept_no = :dno INTO :tot; SELECT count(budget) FROM department WHERE head_dept = :dno INTO :cnt; IF (cnt = 0) THEN SUSPEND; FOR SELECT dept_no FROM department WHERE head_dept = :dno INTO :rdno DO BEGIN EXECUTE PROCEDURE dept_budget :rdno RETURNING_VALUES :sumb; tot = tot + sumb; END SUSPEND; END ^ ALTER PROCEDURE GET_EMP_PROJ ( EMP_NO SMALLINT ) RETURNS ( PROJ_ID CHAR(5) CHARACTER SET NONE ) AS BEGIN FOR SELECT proj_id FROM employee_project WHERE emp_no = :emp_no INTO :proj_id DO SUSPEND; END ^ ALTER PROCEDURE "Has Space" ( ARG1 INTEGER ) AS Begin End ^ ALTER PROCEDURE MAIL_LABEL ( CUST_NO INTEGER ) RETURNS ( LINE1 CHAR(40) CHARACTER SET NONE, LINE2 CHAR(40) CHARACTER SET NONE, LINE3 CHAR(40) CHARACTER SET NONE, LINE4 CHAR(40) CHARACTER SET NONE, LINE5 CHAR(40) CHARACTER SET NONE, LINE6 CHAR(40) CHARACTER SET NONE ) AS DECLARE VARIABLE customer VARCHAR(25); DECLARE VARIABLE first_name VARCHAR(15); DECLARE VARIABLE last_name VARCHAR(20); DECLARE VARIABLE addr1 VARCHAR(30); DECLARE VARIABLE addr2 VARCHAR(30); DECLARE VARIABLE city VARCHAR(25); DECLARE VARIABLE state VARCHAR(15); DECLARE VARIABLE country VARCHAR(15); DECLARE VARIABLE postcode VARCHAR(12); DECLARE VARIABLE cnt INTEGER; BEGIN line1 = ''; line2 = ''; line3 = ''; line4 = ''; line5 = ''; line6 = ''; SELECT customer, contact_first, contact_last, address_line1, address_line2, city, state_province, country, postal_code FROM CUSTOMER WHERE cust_no = :cust_no INTO :customer, :first_name, :last_name, :addr1, :addr2, :city, :state, :country, :postcode; IF (customer IS NOT NULL) THEN line1 = customer; IF (first_name IS NOT NULL) THEN line2 = first_name || ' ' || last_name; ELSE line2 = last_name; IF (addr1 IS NOT NULL) THEN line3 = addr1; IF (addr2 IS NOT NULL) THEN line4 = addr2; IF (country = 'USA') THEN BEGIN IF (city IS NOT NULL) THEN line5 = city || ', ' || state || ' ' || postcode; ELSE line5 = state || ' ' || postcode; END ELSE BEGIN IF (city IS NOT NULL) THEN line5 = city || ', ' || state; ELSE line5 = state; line6 = country || ' ' || postcode; END SUSPEND; END ^ ALTER PROCEDURE ORG_CHART RETURNS ( HEAD_DEPT CHAR(25) CHARACTER SET NONE, DEPARTMENT CHAR(25) CHARACTER SET NONE, MNGR_NAME CHAR(20) CHARACTER SET NONE, TITLE CHAR(5) CHARACTER SET NONE, EMP_CNT INTEGER ) AS DECLARE VARIABLE mngr_no INTEGER; DECLARE VARIABLE dno CHAR(3); BEGIN FOR SELECT h.department, d.department, d.mngr_no, d.dept_no FROM department d LEFT OUTER JOIN department h ON d.head_dept = h.dept_no ORDER BY d.dept_no INTO :head_dept, :department, :mngr_no, :dno DO BEGIN IF (:mngr_no IS NULL) THEN BEGIN mngr_name = '--TBH--'; title = ''; END ELSE SELECT full_name, job_code FROM employee WHERE emp_no = :mngr_no INTO :mngr_name, :title; SELECT COUNT(emp_no) FROM employee WHERE dept_no = :dno INTO :emp_cnt; SUSPEND; END END ^ ALTER PROCEDURE SHIP_ORDER ( PO_NUM CHAR(8) CHARACTER SET NONE ) AS DECLARE VARIABLE ord_stat CHAR(7); DECLARE VARIABLE hold_stat CHAR(1); DECLARE VARIABLE cust_no INTEGER; DECLARE VARIABLE any_po CHAR(8); BEGIN SELECT s.order_status, c.on_hold, c.cust_no FROM sales s, customer c WHERE po_number = :po_num AND s.cust_no = c.cust_no INTO :ord_stat, :hold_stat, :cust_no; /* This purchase order has been already shipped. */ IF (ord_stat = 'shipped') THEN BEGIN EXCEPTION order_already_shipped; END /* Customer is on hold. */ ELSE IF (hold_stat = '*') THEN BEGIN EXCEPTION customer_on_hold; END /* * If there is an unpaid balance on orders shipped over 2 months ago, * put the customer on hold. */ FOR SELECT po_number FROM sales WHERE cust_no = :cust_no AND order_status = 'shipped' AND paid = 'n' AND ship_date < CAST('NOW' AS TIMESTAMP) - 60 INTO :any_po DO BEGIN EXCEPTION customer_check; UPDATE customer SET on_hold = '*' WHERE cust_no = :cust_no; END /* * Ship the order. */ UPDATE sales SET order_status = 'shipped', ship_date = 'NOW' WHERE po_number = :po_num; END ^ ALTER PROCEDURE SUB_TOT_BUDGET ( HEAD_DEPT CHAR(3) CHARACTER SET NONE ) RETURNS ( TOT_BUDGET DECIMAL(12,2), AVG_BUDGET DECIMAL(12,2), MIN_BUDGET DECIMAL(12,2), MAX_BUDGET DECIMAL(12,2) ) AS BEGIN SELECT SUM(budget), AVG(budget), MIN(budget), MAX(budget) FROM department WHERE head_dept = :head_dept INTO :tot_budget, :avg_budget, :min_budget, :max_budget; SUSPEND; END ^ ALTER PROCEDURE "UC SPACE" ( ARG1 INTEGER ) AS Begin End ^ ALTER PROCEDURE "iCASE" AS Begin End ^ SET TERM ;^ COMMIT WORK; SET AUTODDL ON; /* Comments on System Objects */ COMMENT ON CHARACTER SET UTF8 IS 'Default Character set'; /* Grant Roles for this database */ /* Grant permissions for this database */ GRANT REFERENCES ON TABLE COUNTRIES TO USER BOB ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE COUNTRY TO USER PUBLIC WITH GRANT OPTION ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE CUSTOMER TO USER PUBLIC WITH GRANT OPTION ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE DEPARTMENT TO USER PUBLIC WITH GRANT OPTION ; GRANT SELECT ON TABLE EMPLOYEE TO USER ALICE WITH GRANT OPTION GRANTED BY BOB ; GRANT SELECT,Update(FIRST_NAME,LAST_NAME) ON TABLE EMPLOYEE TO USER BOB ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE EMPLOYEE TO USER PUBLIC WITH GRANT OPTION ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE EMPLOYEE_PROJECT TO USER PUBLIC WITH GRANT OPTION ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE JOB TO USER PUBLIC WITH GRANT OPTION ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE PHONE_LIST TO USER PUBLIC WITH GRANT OPTION ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE PROJECT TO USER PUBLIC WITH GRANT OPTION ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE PROJ_DEPT_BUDGET TO USER PUBLIC WITH GRANT OPTION ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE SALARY_HISTORY TO USER PUBLIC WITH GRANT OPTION ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE SALES TO USER PUBLIC WITH GRANT OPTION ; GRANT RDB$ADMIN TO ALICE; GRANT RDB$ADMIN TO BOB; GRANT EXECUTE ON PROCEDURE ADD_EMP_PROJ TO USER PUBLIC WITH GRANT OPTION ; GRANT EXECUTE ON PROCEDURE ALL_LANGS TO USER PUBLIC WITH GRANT OPTION ; GRANT EXECUTE ON PROCEDURE DELETE_EMPLOYEE TO USER PUBLIC WITH GRANT OPTION ; GRANT EXECUTE ON PROCEDURE DEPT_BUDGET TO USER PUBLIC WITH GRANT OPTION ; GRANT EXECUTE ON PROCEDURE GET_EMP_PROJ TO USER PUBLIC WITH GRANT OPTION ; GRANT EXECUTE ON PROCEDURE MAIL_LABEL TO USER PUBLIC WITH GRANT OPTION ; GRANT EXECUTE ON PROCEDURE ORG_CHART TO USER PUBLIC WITH GRANT OPTION ; GRANT EXECUTE ON PROCEDURE SHIP_ORDER TO USER PUBLIC WITH GRANT OPTION ; GRANT EXECUTE ON PROCEDURE SHOW_LANGS TO USER PUBLIC WITH GRANT OPTION ; GRANT EXECUTE ON PROCEDURE SUB_TOT_BUDGET TO USER PUBLIC WITH GRANT OPTION ; Extracting Database Schema and Data SET SQL DIALECT 3; SET AUTODDL ON; /* CREATE DATABASE 'localhost:/tmp/ibx-testsuite/testsuite1.fdb' PAGE_SIZE 8192 DEFAULT CHARACTER SET NONE; */ COMMENT ON DATABASE IS 'Employee Test DB'; /* Domain definitions */ CREATE DOMAIN ADDRESSLINE AS VARCHAR(30); CREATE DOMAIN BUDGET AS DECIMAL(12,2) DEFAULT 50000; CREATE DOMAIN COUNTRYNAME AS VARCHAR(15); CREATE DOMAIN CUSTNO AS INTEGER; CREATE DOMAIN DEPTNO AS CHAR(3); CREATE DOMAIN EMPNO AS SMALLINT; CREATE DOMAIN FB$OUT_TYPE AS BLOB SUB_TYPE TEXT SEGMENT SIZE 80 NOT NULL; CREATE DOMAIN FIRSTNAME AS VARCHAR(15); CREATE DOMAIN JOBCODE AS VARCHAR(5); CREATE DOMAIN JOBGRADE AS SMALLINT; CREATE DOMAIN LASTNAME AS VARCHAR(20); CREATE DOMAIN PHONENUMBER AS VARCHAR(20); CREATE DOMAIN PONUMBER AS CHAR(8); CREATE DOMAIN PRODTYPE AS VARCHAR(12) DEFAULT 'software' NOT NULL; CREATE DOMAIN PROJNO AS CHAR(5); CREATE DOMAIN SALARY AS NUMERIC(10,2) DEFAULT 0; /* Table: COUNTRIES, Owner: SYSDBA */ CREATE TABLE COUNTRIES ( COUNTRY VARCHAR(64) NOT NULL, NONEU SMALLINT, ISO2 CHAR(2), ISO3 CHAR(3), PRIMARY KEY (COUNTRY) ); COMMENT ON TABLE COUNTRIES IS 'List of Countries'; COMMENT ON COLUMN COUNTRIES.ISO2 IS 'Two Character ISO Country Code'; /* Table: COUNTRY, Owner: SYSDBA */ CREATE TABLE COUNTRY ( COUNTRY COUNTRYNAME NOT NULL, CURRENCY VARCHAR(10) NOT NULL, PRIMARY KEY (COUNTRY) ); /* Table: CUSTOMER, Owner: SYSDBA */ CREATE TABLE CUSTOMER ( CUST_NO CUSTNO NOT NULL, CUSTOMER VARCHAR(25) NOT NULL, CONTACT_FIRST FIRSTNAME, CONTACT_LAST LASTNAME, PHONE_NO PHONENUMBER, ADDRESS_LINE1 ADDRESSLINE, ADDRESS_LINE2 ADDRESSLINE, CITY VARCHAR(25), STATE_PROVINCE VARCHAR(15), COUNTRY COUNTRYNAME, POSTAL_CODE VARCHAR(12), ON_HOLD CHAR(1) DEFAULT NULL, LONG_REFERENCE BIGINT, PRIMARY KEY (CUST_NO) ); /* Table: DEPARTMENT, Owner: SYSDBA */ CREATE TABLE DEPARTMENT ( DEPT_NO DEPTNO NOT NULL, DEPARTMENT VARCHAR(25) NOT NULL, HEAD_DEPT DEPTNO, MNGR_NO EMPNO, BUDGET BUDGET, LOCATION VARCHAR(15), PHONE_NO PHONENUMBER DEFAULT '555-1234', UNIQUE (DEPARTMENT), PRIMARY KEY (DEPT_NO) ); /* Table: EMPLOYEE, Owner: SYSDBA */ CREATE TABLE EMPLOYEE ( EMP_NO EMPNO NOT NULL, FIRST_NAME FIRSTNAME NOT NULL, LAST_NAME LASTNAME NOT NULL, PHONE_EXT VARCHAR(4), HIRE_DATE TIMESTAMP DEFAULT 'NOW' NOT NULL, DEPT_NO DEPTNO NOT NULL, JOB_CODE JOBCODE NOT NULL, JOB_GRADE JOBGRADE NOT NULL, JOB_COUNTRY COUNTRYNAME NOT NULL, SALARY SALARY NOT NULL, FULL_NAME COMPUTED BY (last_name || ', ' || first_name), PRIMARY KEY (EMP_NO) ); /* Table: EMPLOYEE_PROJECT, Owner: SYSDBA */ CREATE TABLE EMPLOYEE_PROJECT ( EMP_NO EMPNO NOT NULL, PROJ_ID PROJNO NOT NULL, PRIMARY KEY (EMP_NO, PROJ_ID) ); /* Table: FB$OUT_TABLE, Owner: SYSDBA */ CREATE GLOBAL TEMPORARY TABLE FB$OUT_TABLE ( LINE_NUM INTEGER, CONTENT FB$OUT_TYPE ) ON COMMIT PRESERVE ROWS ; /* Table: JOB, Owner: SYSDBA */ CREATE TABLE JOB ( JOB_CODE JOBCODE NOT NULL, JOB_GRADE JOBGRADE NOT NULL, JOB_COUNTRY COUNTRYNAME NOT NULL, JOB_TITLE VARCHAR(25) NOT NULL, MIN_SALARY SALARY NOT NULL, MAX_SALARY SALARY NOT NULL, JOB_REQUIREMENT BLOB SUB_TYPE TEXT SEGMENT SIZE 400, LANGUAGE_REQ VARCHAR(15)[1:5], PRIMARY KEY (JOB_CODE, JOB_GRADE, JOB_COUNTRY) ); /* Table: PROJECT, Owner: SYSDBA */ CREATE TABLE PROJECT ( PROJ_ID PROJNO NOT NULL, PROJ_NAME VARCHAR(20) NOT NULL, PROJ_DESC BLOB SUB_TYPE TEXT SEGMENT SIZE 800, TEAM_LEADER EMPNO, PRODUCT PRODTYPE, UNIQUE (PROJ_NAME), PRIMARY KEY (PROJ_ID) ); /* Table: PROJ_DEPT_BUDGET, Owner: SYSDBA */ CREATE TABLE PROJ_DEPT_BUDGET ( FISCAL_YEAR INTEGER NOT NULL, PROJ_ID PROJNO NOT NULL, DEPT_NO DEPTNO NOT NULL, QUART_HEAD_CNT INTEGER[1:4], PROJECTED_BUDGET BUDGET, PRIMARY KEY (FISCAL_YEAR, PROJ_ID, DEPT_NO) ); /* Table: SALARY_HISTORY, Owner: SYSDBA */ CREATE TABLE SALARY_HISTORY ( EMP_NO EMPNO NOT NULL, CHANGE_DATE TIMESTAMP DEFAULT 'NOW' NOT NULL, UPDATER_ID VARCHAR(20) NOT NULL, OLD_SALARY SALARY NOT NULL, PERCENT_CHANGE DOUBLE PRECISION DEFAULT 0 NOT NULL, NEW_SALARY COMPUTED BY (old_salary + old_salary * percent_change / 100), PRIMARY KEY (EMP_NO, CHANGE_DATE, UPDATER_ID) ); /* Table: SALES, Owner: SYSDBA */ CREATE TABLE SALES ( PO_NUMBER PONUMBER NOT NULL, CUST_NO CUSTNO NOT NULL, SALES_REP EMPNO, ORDER_STATUS VARCHAR(7) DEFAULT 'new' NOT NULL, ORDER_DATE TIMESTAMP DEFAULT 'NOW' NOT NULL, SHIP_DATE TIMESTAMP, DATE_NEEDED TIMESTAMP, PAID CHAR(1) DEFAULT 'n', QTY_ORDERED INTEGER DEFAULT 1 NOT NULL, TOTAL_VALUE DECIMAL(9,2) NOT NULL, DISCOUNT FLOAT DEFAULT 0 NOT NULL, ITEM_TYPE PRODTYPE, AGED COMPUTED BY (ship_date - order_date), PRIMARY KEY (PO_NUMBER) ); /* External Function declarations */ DECLARE EXTERNAL FUNCTION ADDDAY TIMESTAMP, INTEGER RETURNS TIMESTAMP ENTRY_POINT 'addDay' MODULE_NAME 'fbudf' ; DECLARE EXTERNAL FUNCTION I64TRUNCATE NUMERIC(18,0) BY DESCRIPTOR, NUMERIC(18,0) BY DESCRIPTOR RETURNS PARAMETER 2 ENTRY_POINT 'fbtruncate' MODULE_NAME 'fbudf' ; DECLARE EXTERNAL FUNCTION TESTIT TIMESTAMP, INTEGER NULL, CSTRING(10) CHARACTER SET NONE, CSTRING(10) CHARACTER SET NONE BY DESCRIPTOR RETURNS CSTRING(32) CHARACTER SET NONE FREE_IT ENTRY_POINT 'testit' MODULE_NAME 'fbudf' ; /* Data Starts */ /* Inserting data into Table: COUNTRY */ INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('USA','Dollar'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('England','Pound'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Canada','CdnDlr'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Switzerland','SFranc'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Japan','Yen'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Italy','Euro'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('France','Euro'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Germany','Euro'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Australia','ADollar'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Hong Kong','HKDollar'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Netherlands','Euro'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Belgium','Euro'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Austria','Euro'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Fiji','FDollar'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Russia','Ruble'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Romania','RLeu'); COMMIT; /* Inserting data into Table: CUSTOMER */ INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1001,'Signature Design','Dale J.','Little','(619) 530-2710','15500 Pacific Heights Blvd.',NULL,'San Diego','CA','USA','92121',NULL,NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1002,'Dallas Technologies','Glen','Brown','(214) 960-2233','P. O. Box 47000',NULL,'Dallas','TX','USA','75205','*',NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1003,'Buttle, Griffith and Co.','James','Buttle','(617) 488-1864','2300 Newbury Street','Suite 101','Boston','MA','USA','02115',NULL,NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1004,'Central Bank','Elizabeth','Brocket','61 211 99 88','66 Lloyd Street',NULL,'Manchester',NULL,'England','M2 3LA',NULL,NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1005,'DT Systems, LTD.','Tai','Wu','(852) 850 43 98','400 Connaught Road',NULL,'Central Hong Kong',NULL,'Hong Kong',NULL,NULL,NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1006,'DataServe International','Tomas','Bright','(613) 229 3323','2000 Carling Avenue','Suite 150','Ottawa','ON','Canada','K1V 9G1',NULL,NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1007,'Mrs. Beauvais',NULL,'Mrs. Beauvais',NULL,'P.O. Box 22743',NULL,'Pebble Beach','CA','USA','93953',NULL,NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1008,'Anini Vacation Rentals','Leilani','Briggs','(808) 835-7605','3320 Lawai Road',NULL,'Lihue','HI','USA','96766',NULL,NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1009,'Max','Max',NULL,'22 01 23','1 Emerald Cove',NULL,'Turtle Island',NULL,'Fiji',NULL,'*',NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1010,'MPM Corporation','Miwako','Miyamoto','3 880 77 19','2-64-7 Sasazuka',NULL,'Tokyo',NULL,'Japan','150',NULL,NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1011,'Dynamic Intelligence Corp','Victor','Granges','01 221 16 50','Florhofgasse 10',NULL,'Zurich',NULL,'Switzerland','8005',NULL,NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1012,'3D-Pad Corp.','Michelle','Roche','1 43 60 61','22 Place de la Concorde',NULL,'Paris',NULL,'France','75008',NULL,NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1013,'Lorenzi Export, Ltd.','Andreas','Lorenzi','02 404 6284','Via Eugenia, 15',NULL,'Milan',NULL,'Italy','20124',NULL,NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1014,'Dyno Consulting','Greta','Hessels','02 500 5940','Rue Royale 350',NULL,'Brussels',NULL,'Belgium','1210',NULL,NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1015,'GeoTech Inc.','K.M.','Neppelenbroek','(070) 44 91 18','P.0.Box 702',NULL,'Den Haag',NULL,'Netherlands','2514',NULL,NULL); COMMIT; /* Inserting data into Table: DEPARTMENT */ INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('000','Corporate Headquarters',NULL,105,1000000,'Monterey','(408) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('100','Sales and Marketing','000',85,2000000,'San Francisco','(415) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('600','Engineering','000',2,1100000,'Monterey','(408) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('900','Finance','000',46,400000,'Monterey','(408) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('180','Marketing','100',NULL,1500000,'San Francisco','(415) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('620','Software Products Div.','600',NULL,1200000,'Monterey','(408) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('621','Software Development','620',NULL,400000,'Monterey','(408) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('622','Quality Assurance','620',9,300000,'Monterey','(408) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('623','Customer Support','620',15,650000,'Monterey','(408) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('670','Consumer Electronics Div.','600',107,1150000,'Burlington, VT','(802) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('671','Research and Development','670',20,460000,'Burlington, VT','(802) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('672','Customer Services','670',94,850000,'Burlington, VT','(802) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('130','Field Office: East Coast','100',11,500000,'Boston','(617) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('140','Field Office: Canada','100',72,500000,'Toronto','(416) 677-1000'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('110','Pacific Rim Headquarters','100',34,600000,'Kuaui','(808) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('115','Field Office: Japan','110',118,500000,'Tokyo','3 5350 0901'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('116','Field Office: Singapore','110',NULL,300000,'Singapore','3 55 1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('120','European Headquarters','100',36,700000,'London','71 235-4400'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('121','Field Office: Switzerland','120',141,500000,'Zurich','1 211 7767'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('123','Field Office: France','120',134,400000,'Cannes','58 68 11 12'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('125','Field Office: Italy','120',121,400000,'Milan','2 430 39 39'); COMMIT; /* Inserting data into Table: EMPLOYEE */ INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(2,'Robert','Nelson','250','1988.12.28 00:00:00.000','600','VP',2,'USA',105900); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(4,'Bruce','Young','233','1988.12.28 00:00:00.000','621','Eng',2,'USA',97500); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(5,'Kim','Lambert','22','1989.02.06 00:00:00.000','130','Eng',2,'USA',102750); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(8,'Leslie','Johnson','410','1989.04.05 00:00:00.000','180','Mktg',3,'USA',64635); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(9,'Phil','Forest','229','1989.04.17 00:00:00.000','622','Mngr',3,'USA',75060); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(11,'K. J.','Weston','34','1990.01.17 00:00:00.000','130','SRep',4,'USA',86292.94); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(12,'Terri','Lee','256','1990.05.01 00:00:00.000','000','Admin',4,'USA',53793); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(14,'Stewart','Hall','227','1990.06.04 00:00:00.000','900','Finan',3,'USA',69482.63); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(15,'Katherine','Young','231','1990.06.14 00:00:00.000','623','Mngr',3,'USA',67241.25); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(20,'Chris','Papadopoulos','887','1990.01.01 00:00:00.000','671','Mngr',3,'USA',89655); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(24,'Pete','Fisher','888','1990.09.12 00:00:00.000','671','Eng',3,'USA',81810.19); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(28,'Ann','Bennet','5','1991.02.01 00:00:00.000','120','Admin',5,'England',22935); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(29,'Roger','De Souza','288','1991.02.18 00:00:00.000','623','Eng',3,'USA',69482.63); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(34,'Janet','Baldwin','2','1991.03.21 00:00:00.000','110','Sales',3,'USA',61637.8); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(36,'Roger','Reeves','6','1991.04.25 00:00:00.000','120','Sales',3,'England',33620.63); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(37,'Willie','Stansbury','7','1991.04.25 00:00:00.000','120','Eng',4,'England',39224.06); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(44,'Leslie','Phong','216','1991.06.03 00:00:00.000','623','Eng',4,'USA',56034.38); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(45,'Ashok','Ramanathan','209','1991.08.01 00:00:00.000','621','Eng',3,'USA',80689.5); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(46,'Walter','Steadman','210','1991.08.09 00:00:00.000','900','CFO',1,'USA',116100); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(52,'Carol','Nordstrom','420','1991.10.02 00:00:00.000','180','PRel',4,'USA',42742.5); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(61,'Luke','Leung','3','1992.02.18 00:00:00.000','110','SRep',4,'USA',68805); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(65,'Sue Anne','O''Brien','877','1992.03.23 00:00:00.000','670','Admin',5,'USA',31275); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(71,'Jennifer M.','Burbank','289','1992.04.15 00:00:00.000','622','Eng',3,'USA',53167.5); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(72,'Claudia','Sutherland',NULL,'1992.04.20 00:00:00.000','140','SRep',4,'Canada',100914); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(83,'Dana','Bishop','290','1992.06.02 00:00:00.000','621','Eng',3,'USA',62550.02); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(85,'Mary S.','MacDonald','477','1992.06.01 00:00:00.000','100','VP',2,'USA',111262.5); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(94,'Randy','Williams','892','1992.08.08 00:00:00.000','672','Mngr',4,'USA',56295); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(105,'Oliver H A','Bender','255','1992.10.08 00:00:00.000','000','CEO',1,'USA',212850); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(107,'Kevin','Cook','894','1993.02.01 00:00:00.000','670','Dir',2,'USA',111262.5); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(109,'Kelly','Brown','202','1993.02.04 00:00:00.000','600','Admin',5,'USA',27000.01); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(110,'Yuki','Ichida','22','1993.02.04 00:00:00.000','115','Eng',3,'Japan',6000000); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(113,'Mary','Page','845','1993.04.12 00:00:00.000','671','Eng',4,'USA',48000); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(114,'Bill','Parker','247','1993.06.01 00:00:00.000','623','Eng',5,'USA',35000); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(118,'Takashi','Yamamoto','23','1993.07.01 00:00:00.000','115','SRep',4,'Japan',7480000); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(121,'Roberto','Ferrari','1','1993.07.12 00:00:00.000','125','SRep',4,'USA',33000.01); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(127,'Michael','Yanowski','492','1993.08.09 00:00:00.000','100','SRep',4,'USA',44000); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(134,'Jacques','Glon',NULL,'1993.08.23 00:00:00.000','123','SRep',4,'France',38500); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(136,'Scott','Johnson','265','1993.09.13 00:00:00.000','623','Doc',3,'USA',60000); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(138,'T.J.','Green','218','1993.11.01 00:00:00.000','621','Eng',4,'USA',36000); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(141,'Pierre','Osborne',NULL,'1994.01.03 00:00:00.000','121','SRep',4,'Switzerland',110000); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(144,'John','Montgomery','820','1994.03.30 00:00:00.000','672','Eng',5,'USA',35000); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(145,'Mark','Guckenheimer','221','1994.05.02 00:00:00.000','622','Eng',5,'USA',32000); COMMIT; /* Inserting data into Table: EMPLOYEE_PROJECT */ INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(144,'DGPII'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(113,'DGPII'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(24,'DGPII'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(8,'VBASE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(136,'VBASE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(15,'VBASE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(71,'VBASE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(145,'VBASE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(44,'VBASE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(4,'VBASE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(83,'VBASE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(138,'VBASE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(45,'VBASE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(20,'GUIDE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(24,'GUIDE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(113,'GUIDE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(8,'GUIDE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(4,'MAPDB'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(71,'MAPDB'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(46,'MKTPR'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(105,'MKTPR'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(12,'MKTPR'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(85,'MKTPR'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(110,'MKTPR'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(34,'MKTPR'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(8,'MKTPR'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(14,'MKTPR'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(52,'MKTPR'); COMMIT; /* Inserting data into Table: JOB */ INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('CEO',1,'USA','Chief Executive Officer',130000,250000,'No specific requirements. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('CFO',1,'USA','Chief Financial Officer',85000,140000,'15+ years in finance or 5+ years as a CFO with a proven track record. MBA or J.D. degree. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('VP',2,'USA','Vice President',80000,130000,'No specific requirements. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Dir',2,'USA','Director',75000,120000,'5-10 years as a director in computer or electronics industries. An advanced degree. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Mngr',3,'USA','Manager',60000,100000,'BA/BS required. 3-5 years in management, plus 2-4 years engineering experience. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Mngr',4,'USA','Manager',30000,60000,'5+ years office management experience. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Admin',4,'USA','Administrative Assistant',35000,55000,'3-5 years experience in executive environment. Strong organizational and communication skills required. BA degree preferred. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Admin',5,'USA','Administrative Assistant',20000,40000,'2-4 years clerical experience. Facility with word processing and data entry. AA degree preferred. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Admin',5,'England','Administrative Assistant',13400,26800,NULL,NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('PRel',4,'USA','Public Relations Rep.',25000,65000,NULL,NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Mktg',3,'USA','Marketing Analyst',40000,80000,'MBA required. 10+ years experience in high tech environment. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Mktg',4,'USA','Marketing Analyst',20000,50000,'BA/BS required. MBA preferred. 3-5 years experience. Knowledgeable with spreadsheets and databases. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Accnt',4,'USA','Accountant',28000,55000,'CPA with 3-5 years experience. Spreadsheet, data entry, and word processing knowledge required. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Finan',3,'USA','Financial Analyst',35000,85000,'5-10 years of accounting and financial experience. Strong analytical skills. CPA/MBA required. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Eng',2,'USA','Engineer',70000,110000,'Distinguished engineer. Ph.D/MS/BS or equivalent experience. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Eng',3,'USA','Engineer',50000,90000,'5+ years experience. BA/BS required. MS degree preferred. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Eng',3,'Japan','Engineer',5400000,9720000,'5+ years experience. BA/BS and/or MS degrees required. Customer support experience desired. Knowledge of Japanese and English. ', Japanese Mandarin English ); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Eng',4,'USA','Engineer',30000,65000,'BA/BS and 3-5 years experience. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Eng',4,'England','Engineer',20100,43550,'BA/BS and 2-4 years experience in technical support. Knowledge of several European languages helpful. ', English German French ); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Eng',5,'USA','Engineer',25000,35000,'BA/BS preferred. 2-4 years technical experience. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Doc',3,'USA','Technical Writer',38000,60000,'4+ years writing highly technical software documentation. A bachelor''s degree or equivalent. Programming experience required. Excellent language skills. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Doc',5,'USA','Technical Writer',22000,40000,'BA in English/journalism or excellent language skills. Some programming experience required. 2-4 years of technical writing. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Sales',3,'USA','Sales Co-ordinator',40000,70000,'Experience in sales and public relations in a high tech environment. Excellent communication skills. BA or equivalent. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Sales',3,'England','Sales Co-ordinator',26800,46900,'Experience in sales and public relations in a high tech environment. Excellent communication skills. BA or equivalent. Knowledge of several European languages helpful. ', English German French ); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'USA','Sales Representative',20000,100000,'Computer/electronics industry sales experience. Excellent communications, negotiation, and analytical skills. Experience in establishing long term customer relationships. Some knowledge of Spanish required. Travel required. ', English Spanish ); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'England','Sales Representative',13400,67000,'Computer/electronics industry sales experience. Excellent communications, negotiation, and analytical skills. Experience in establishing long term customer relationships. Knowledge of several European languages helpful. Travel required. ', English German French ); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'Canada','Sales Representative',26400,132000,'Computer/electronics industry sales experience. Excellent communications, negotiation, and analytical skills. Experience in establishing long term customer relationships. Travel required. English plus speaking knowledge of French required. ', English French ); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'Switzerland','Sales Representative',28000,149000,'Computer/electronics industry sales experience. Excellent communications, negotiation, and analytical skills. Experience in establishing long term customer relationships. Knowledge of German required; one or more other European language helpful. Travel required. ', German French English Italian ); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'Japan','Sales Representative',2160000,10800000,'Computer/electronics industry sales experience. Excellent communications, negotiation, and analytical skills. Experience in establishing long term customer relationships. Knowledge of Japanese required. Travel required. ', Japanese English ); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'Italy','Sales Representative',20000,100000,'Computer/electronics industry sales experience. Excellent communications, negotiation, and analytical skills. Experience in establishing long term customer relationships. Fluency in Italian; some knowledge of German helpful. Travel required. ', Italian German French ); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'France','Sales Representative',20000,100000,'Computer/electronics industry sales experience. Excellent communications, negotiation, and analytical skills. Experience in establishing long term customer relationships. Fluency in French; some knowledge of German/Spanish helpful. Travel required. ', English French Spanish ); COMMIT; /* Inserting data into Table: PROJECT */ INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('VBASE','Video Database','Design a video data base management system for controlling on-demand video distribution. ',45,'software'); INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('DGPII','DigiPizza','Develop second generation digital pizza maker with flash-bake heating element and digital ingredient measuring system. ',24,'other'); INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('GUIDE','AutoMap','Develop a prototype for the automobile version of the hand-held map browsing device. ',20,'hardware'); INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('MAPDB','MapBrowser port','Port the map browsing database software to run on the automobile model. ',4,'software'); INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('HWRII','Translator upgrade','Integrate the hand-writing recognition module into the universal language translator. ',NULL,'software'); INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('MKTPR','Marketing project 3','Expand marketing and sales in the Pacific Rim. Set up a field office in Australia and Singapore. ',85,'N/A'); COMMIT; /* Inserting data into Table: PROJ_DEPT_BUDGET */ INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'GUIDE','100', 1 1 1 0 ,200000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'GUIDE','671', 3 2 1 0 ,450000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1993,'MAPDB','621', 0 0 0 1 ,20000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MAPDB','621', 2 1 0 0 ,40000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MAPDB','622', 1 1 0 0 ,60000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MAPDB','671', 1 1 0 0 ,11000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'HWRII','670', 1 1 1 1 ,20000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'HWRII','621', 2 3 2 1 ,400000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'HWRII','622', 1 1 2 2 ,100000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MKTPR','623', 1 1 1 2 ,80000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MKTPR','672', 1 1 1 2 ,100000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MKTPR','100', 4 5 6 6 ,1000000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MKTPR','110', 2 2 0 3 ,200000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MKTPR','000', 1 1 2 2 ,100000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1995,'MKTPR','623', 7 7 4 4 ,1200000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1995,'MKTPR','672', 2 3 3 3 ,800000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1995,'MKTPR','100', 4 5 6 6 ,2000000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1995,'MKTPR','110', 1 1 1 1 ,1200000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'VBASE','621', 4 5 5 3 ,1900000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1995,'VBASE','621', 4 3 2 2 ,900000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'VBASE','622', 2 2 2 1 ,400000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'VBASE','100', 1 1 2 3 ,300000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1995,'VBASE','100', 3 3 1 1 ,1500000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1996,'VBASE','100', 1 1 0 0 ,150000); COMMIT; /* Inserting data into Table: SALARY_HISTORY */ INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(28,'1992.12.15 00:00:00.000','admin2',20000,10); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(2,'1992.12.15 00:00:00.000','admin2',98000,8.0612); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(4,'1992.12.15 00:00:00.000','admin2',90000,8.3333); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(5,'1992.12.15 00:00:00.000','admin2',95000,8.1578); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(11,'1992.12.15 00:00:00.000','admin2',70000,7.5); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(12,'1992.12.15 00:00:00.000','admin2',48000,7.5); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(14,'1992.12.15 00:00:00.000','admin2',62000,7.5); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(15,'1992.12.15 00:00:00.000','admin2',60000,7.5); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(20,'1992.12.15 00:00:00.000','admin2',80000,7.5); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(24,'1992.12.15 00:00:00.000','admin2',73000,7.5); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(29,'1992.12.15 00:00:00.000','admin2',62000,7.5); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(34,'1992.12.15 00:00:00.000','admin2',55000,7.5); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(36,'1992.12.15 00:00:00.000','admin2',30000,7.5); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(37,'1992.12.15 00:00:00.000','admin2',35000,7.5); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(44,'1992.12.15 00:00:00.000','admin2',50000,7.5); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(45,'1992.12.15 00:00:00.000','admin2',72000,7.5); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(8,'1993.09.08 00:00:00.000','elaine',62000,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(9,'1993.09.08 00:00:00.000','elaine',72000,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(11,'1993.09.08 00:00:00.000','elaine',75250,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(12,'1993.09.08 00:00:00.000','elaine',51600,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(14,'1993.09.08 00:00:00.000','elaine',66650,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(15,'1993.09.08 00:00:00.000','elaine',64500,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(20,'1993.09.08 00:00:00.000','elaine',86000,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(24,'1993.09.08 00:00:00.000','elaine',78475,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(28,'1993.09.08 00:00:00.000','elaine',22000,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(29,'1993.09.08 00:00:00.000','elaine',66650,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(34,'1993.09.08 00:00:00.000','elaine',59125,4.2499); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(36,'1993.09.08 00:00:00.000','elaine',32250,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(37,'1993.09.08 00:00:00.000','elaine',37625,4.2499); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(44,'1993.09.08 00:00:00.000','elaine',53750,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(45,'1993.09.08 00:00:00.000','elaine',77400,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(52,'1993.09.08 00:00:00.000','elaine',41000,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(61,'1993.09.08 00:00:00.000','elaine',60000,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(65,'1993.09.08 00:00:00.000','elaine',30000,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(71,'1993.09.08 00:00:00.000','elaine',51000,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(72,'1993.09.08 00:00:00.000','elaine',88000,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(83,'1993.09.08 00:00:00.000','elaine',60000,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(94,'1993.09.08 00:00:00.000','elaine',54000,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(46,'1993.12.20 00:00:00.000','tj',120000,-3.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(85,'1993.12.20 00:00:00.000','tj',115000,-3.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(105,'1993.12.20 00:00:00.000','tj',220000,-3.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(107,'1993.12.20 00:00:00.000','tj',115000,-3.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(11,'1993.12.20 00:00:00.000','elaine',78448.13,9.9999); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(61,'1993.12.20 00:00:00.000','elaine',62550,10); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(72,'1993.12.20 00:00:00.000','elaine',91740,10); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(118,'1993.12.20 00:00:00.000','elaine',6800000,10); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(121,'1993.12.20 00:00:00.000','elaine',30000,10); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(127,'1993.12.20 00:00:00.000','elaine',40000,10); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(134,'1993.12.20 00:00:00.000','elaine',35000,10); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(28,'2017.11.06 16:46:27.145','SYSDBA',22935,0); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(28,'2017.11.06 16:47:01.376','SYSDBA',22935.01,0); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(12,'2017.12.29 12:18:48.909','SYSDBA',53793,0); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(12,'2017.12.29 12:18:58.051','SYSDBA',53793.01,0); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(83,'2018.01.04 10:57:34.245','SYSDBA',62550,0); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(121,'2018.03.13 15:29:08.850','SYSDBA',33000,0); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(109,'2018.03.13 17:12:06.340','SYSDBA',27000,0); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(34,'2018.03.13 17:13:20.671','SYSDBA',61637.81,0); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(83,'2018.03.13 17:13:35.845','SYSDBA',62550.01,0); COMMIT; /* Inserting data into Table: SALES */ INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V91E0210',1004,11,'shipped','1991.03.04 00:00:00.000','1991.03.05 00:00:00.000',NULL,'y',10,5000,0.100000001490116,'hardware'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V92E0340',1004,11,'shipped','1992.10.15 00:00:00.000','1992.10.16 00:00:00.000','1992.10.17 00:00:00.000','y',7,70000,0,'hardware'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V92J1003',1010,61,'shipped','1992.07.26 00:00:00.000','1992.08.04 00:00:00.000','1992.09.15 00:00:00.000','y',15,2985,0,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93J2004',1010,118,'shipped','1993.10.30 00:00:00.000','1993.12.02 00:00:00.000','1993.11.15 00:00:00.000','y',3,210,0,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93J3100',1010,118,'shipped','1993.08.20 00:00:00.000','1993.08.20 00:00:00.000',NULL,'y',16,18000.4,0.100000001490116,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V92F3004',1012,11,'shipped','1992.10.15 00:00:00.000','1993.01.16 00:00:00.000','1993.01.16 00:00:00.000','y',3,2000,0,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93F3088',1012,134,'shipped','1993.08.27 00:00:00.000','1993.09.08 00:00:00.000',NULL,'n',10,10000,0,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93F2030',1012,134,'open','1993.12.12 00:00:00.000',NULL,NULL,'y',15,450000.49,0,'hardware'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93F2051',1012,134,'waiting','1993.12.18 00:00:00.000',NULL,'1994.03.01 00:00:00.000','n',1,999.98,0,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93H0030',1005,118,'open','1993.12.12 00:00:00.000',NULL,'1994.01.01 00:00:00.000','y',20,5980,0.200000002980232,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V94H0079',1005,61,'open','1994.02.13 00:00:00.000',NULL,'1994.04.20 00:00:00.000','n',10,9000,0.0500000007450581,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9324200',1001,72,'shipped','1993.08.09 00:00:00.000','1993.08.09 00:00:00.000','1993.08.17 00:00:00.000','y',1000,560000,0.200000002980232,'hardware'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9324320',1001,127,'shipped','1993.08.16 00:00:00.000','1993.08.16 00:00:00.000','1993.09.01 00:00:00.000','y',1,0,1,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9320630',1001,127,'open','1993.12.12 00:00:00.000',NULL,'1993.12.15 00:00:00.000','n',3,60000,0.200000002980232,'hardware'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9420099',1001,127,'open','1994.01.17 00:00:00.000',NULL,'1994.06.01 00:00:00.000','n',100,3399.15,0.150000005960464,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9427029',1001,127,'shipped','1994.02.07 00:00:00.000','1994.02.10 00:00:00.000','1994.02.10 00:00:00.000','n',17,422210.97,0,'hardware'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9333005',1002,11,'shipped','1993.02.03 00:00:00.000','1993.03.03 00:00:00.000',NULL,'y',2,600.5,0,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9333006',1002,11,'shipped','1993.04.27 00:00:00.000','1993.05.02 00:00:00.000','1993.05.02 00:00:00.000','n',5,20000,0,'other'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9336100',1002,11,'waiting','1993.12.27 00:00:00.000','1994.01.01 00:00:00.000','1994.01.01 00:00:00.000','n',150,14850,0.0500000007450581,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9346200',1003,11,'waiting','1993.12.31 00:00:00.000',NULL,'1994.01.24 00:00:00.000','n',3,0,1,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9345200',1003,11,'shipped','1993.11.11 00:00:00.000','1993.12.02 00:00:00.000','1993.12.01 00:00:00.000','y',900,27000,0.300000011920929,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9345139',1003,127,'shipped','1993.09.09 00:00:00.000','1993.09.20 00:00:00.000','1993.10.01 00:00:00.000','y',20,12582.12,0.100000001490116,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93C0120',1006,72,'shipped','1993.03.22 00:00:00.000','1993.05.31 00:00:00.000','1993.04.17 00:00:00.000','y',1,47.5,0,'other'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93C0990',1006,72,'shipped','1993.08.09 00:00:00.000','1993.09.02 00:00:00.000',NULL,'y',40,399960.5,0.100000001490116,'hardware'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9456220',1007,127,'open','1994.01.04 00:00:00.000',NULL,'1994.01.30 00:00:00.000','y',1,3999.99,0,'hardware'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93S4702',1011,121,'shipped','1993.10.27 00:00:00.000','1993.10.28 00:00:00.000','1993.12.15 00:00:00.000','y',4,120000,0,'hardware'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V94S6400',1011,141,'waiting','1994.01.06 00:00:00.000',NULL,'1994.02.15 00:00:00.000','y',20,1980.72,0.400000005960464,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93H3009',1008,61,'shipped','1993.08.01 00:00:00.000','1993.12.02 00:00:00.000','1993.12.01 00:00:00.000','n',3,9000,0.0500000007450581,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93H0500',1008,61,'open','1993.12.12 00:00:00.000',NULL,'1993.12.15 00:00:00.000','n',3,16000,0.200000002980232,'hardware'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93F0020',1009,61,'shipped','1993.10.10 00:00:00.000','1993.11.11 00:00:00.000','1993.11.11 00:00:00.000','n',1,490.69,0,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93I4700',1013,121,'open','1993.10.27 00:00:00.000',NULL,'1993.12.15 00:00:00.000','n',5,2693,0,'hardware'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93B1002',1014,134,'shipped','1993.09.20 00:00:00.000','1993.09.21 00:00:00.000','1993.09.25 00:00:00.000','y',1,100.02,0,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93N5822',1015,134,'shipped','1993.12.18 00:00:00.000','1994.01.14 00:00:00.000',NULL,'n',2,1500,0,'software'); COMMIT; /* Data Ends */ /* Index definitions for all user tables */ CREATE INDEX CUSTNAMEX ON CUSTOMER(CUSTOMER); CREATE INDEX CUSTREGION ON CUSTOMER(COUNTRY, CITY); CREATE DESCENDING INDEX BUDGETX ON DEPARTMENT(BUDGET); CREATE INDEX NAMEX ON EMPLOYEE(LAST_NAME, FIRST_NAME); CREATE DESCENDING INDEX MAXSALX ON JOB(JOB_COUNTRY, MAX_SALARY); CREATE INDEX MINSALX ON JOB(JOB_COUNTRY, MIN_SALARY); CREATE UNIQUE INDEX PRODTYPEX ON PROJECT(PRODUCT, PROJ_NAME); CREATE DESCENDING INDEX CHANGEX ON SALARY_HISTORY(CHANGE_DATE); CREATE INDEX UPDATERX ON SALARY_HISTORY(UPDATER_ID); CREATE INDEX NEEDX ON SALES(DATE_NEEDED); CREATE DESCENDING INDEX QTYX ON SALES(ITEM_TYPE, QTY_ORDERED); CREATE INDEX SALESTATX ON SALES(ORDER_STATUS, PAID); ALTER TABLE CUSTOMER ADD FOREIGN KEY (COUNTRY) REFERENCES COUNTRY (COUNTRY); ALTER TABLE DEPARTMENT ADD FOREIGN KEY (HEAD_DEPT) REFERENCES DEPARTMENT (DEPT_NO); ALTER TABLE DEPARTMENT ADD FOREIGN KEY (MNGR_NO) REFERENCES EMPLOYEE (EMP_NO); ALTER TABLE EMPLOYEE ADD FOREIGN KEY (DEPT_NO) REFERENCES DEPARTMENT (DEPT_NO); ALTER TABLE EMPLOYEE ADD FOREIGN KEY (JOB_CODE, JOB_GRADE, JOB_COUNTRY) REFERENCES JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY); ALTER TABLE EMPLOYEE_PROJECT ADD FOREIGN KEY (EMP_NO) REFERENCES EMPLOYEE (EMP_NO); ALTER TABLE EMPLOYEE_PROJECT ADD FOREIGN KEY (PROJ_ID) REFERENCES PROJECT (PROJ_ID); ALTER TABLE JOB ADD FOREIGN KEY (JOB_COUNTRY) REFERENCES COUNTRY (COUNTRY); ALTER TABLE PROJECT ADD FOREIGN KEY (TEAM_LEADER) REFERENCES EMPLOYEE (EMP_NO); ALTER TABLE PROJ_DEPT_BUDGET ADD FOREIGN KEY (DEPT_NO) REFERENCES DEPARTMENT (DEPT_NO); ALTER TABLE PROJ_DEPT_BUDGET ADD FOREIGN KEY (PROJ_ID) REFERENCES PROJECT (PROJ_ID); ALTER TABLE SALARY_HISTORY ADD FOREIGN KEY (EMP_NO) REFERENCES EMPLOYEE (EMP_NO); ALTER TABLE SALES ADD FOREIGN KEY (CUST_NO) REFERENCES CUSTOMER (CUST_NO); ALTER TABLE SALES ADD FOREIGN KEY (SALES_REP) REFERENCES EMPLOYEE (EMP_NO); CREATE SEQUENCE CUST_NO_GEN; ALTER SEQUENCE CUST_NO_GEN RESTART WITH 1016; CREATE SEQUENCE EMP_NO_GEN; ALTER SEQUENCE EMP_NO_GEN RESTART WITH 158; CREATE SEQUENCE FB$OUT_SEQ; ALTER SEQUENCE FB$OUT_SEQ RESTART WITH 1; /* View: DEPTLIST, Owner: SYSDBA */ CREATE VIEW DEPTLIST ( EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY, FULL_NAME, DEPT_PATH, DEPT_KEY_PATH ) AS with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH, cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH, Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO ) Select distinct A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE, A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO ; /* View: PHONE_LIST, Owner: SYSDBA */ CREATE VIEW PHONE_LIST ( EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, LOCATION, PHONE_NO ) AS SELECT emp_no, first_name, last_name, phone_ext, location, phone_no FROM employee, department WHERE employee.dept_no = department.dept_no ; /* Add Domain Check Constraints */ ALTER DOMAIN BUDGET ADD CONSTRAINT CHECK (VALUE > 10000 AND VALUE <= 2000000); ALTER DOMAIN CUSTNO ADD CONSTRAINT CHECK (VALUE > 1000); ALTER DOMAIN DEPTNO ADD CONSTRAINT CHECK (VALUE = '000' OR (VALUE > '0' AND VALUE <= '999') OR VALUE IS NULL); ALTER DOMAIN JOBCODE ADD CONSTRAINT CHECK (VALUE > '99999'); ALTER DOMAIN JOBGRADE ADD CONSTRAINT CHECK (VALUE BETWEEN 0 AND 6); ALTER DOMAIN PONUMBER ADD CONSTRAINT CHECK (VALUE STARTING WITH 'V'); ALTER DOMAIN PRODTYPE ADD CONSTRAINT CHECK (VALUE IN ('software', 'hardware', 'other', 'N/A')); ALTER DOMAIN PROJNO ADD CONSTRAINT CHECK (VALUE = UPPER (VALUE)); ALTER DOMAIN SALARY ADD CONSTRAINT CHECK (VALUE > 0); ALTER TABLE JOB ADD CHECK (min_salary < max_salary); ALTER TABLE JOB ADD CHECK (min_salary < max_salary); ALTER TABLE EMPLOYEE ADD CHECK ( salary >= (SELECT min_salary FROM job WHERE job.job_code = employee.job_code AND job.job_grade = employee.job_grade AND job.job_country = employee.job_country) AND salary <= (SELECT max_salary FROM job WHERE job.job_code = employee.job_code AND job.job_grade = employee.job_grade AND job.job_country = employee.job_country)); ALTER TABLE PROJ_DEPT_BUDGET ADD CHECK (FISCAL_YEAR >= 1993); ALTER TABLE SALARY_HISTORY ADD CHECK (percent_change between -50 and 50); ALTER TABLE CUSTOMER ADD CHECK (on_hold IS NULL OR on_hold = '*'); ALTER TABLE SALES ADD CHECK (order_status in ('new', 'open', 'shipped', 'waiting')); ALTER TABLE SALES ADD CHECK (ship_date >= order_date OR ship_date IS NULL); ALTER TABLE SALES ADD CHECK (date_needed > order_date OR date_needed IS NULL); ALTER TABLE SALES ADD CHECK (paid in ('y', 'n')); ALTER TABLE SALES ADD CHECK (qty_ordered >= 1); ALTER TABLE SALES ADD CHECK (total_value >= 0); ALTER TABLE SALES ADD CHECK (discount >= 0 AND discount <= 1); ALTER TABLE SALES ADD CHECK (NOT (order_status = 'shipped' AND ship_date IS NULL)); ALTER TABLE SALES ADD CHECK (NOT (order_status = 'shipped' AND EXISTS (SELECT on_hold FROM customer WHERE customer.cust_no = sales.cust_no AND customer.on_hold = '*'))); /* Exceptions */ CREATE EXCEPTION CUSTOMER_CHECK 'Overdue balance -- can not ship.'; CREATE EXCEPTION CUSTOMER_ON_HOLD 'This customer is on hold.'; CREATE EXCEPTION ORDER_ALREADY_SHIPPED 'Order status is "shipped."'; CREATE EXCEPTION REASSIGN_SALES 'Reassign the sales records before deleting this employee.'; CREATE EXCEPTION UNKNOWN_EMP_ID 'Invalid employee number or project id.'; COMMIT WORK; SET AUTODDL OFF; SET TERM ^; /* Stored procedures Definitions*/ CREATE PROCEDURE SHOW_LANGS ( CODE VARCHAR(5) CHARACTER SET NONE, GRADE SMALLINT, CTY VARCHAR(15) CHARACTER SET NONE ) RETURNS ( LANGUAGES VARCHAR(15) CHARACTER SET NONE ) AS BEGIN SUSPEND; EXIT; END ^ CREATE PROCEDURE ADD_EMP_PROJ ( EMP_NO SMALLINT, PROJ_ID CHAR(5) CHARACTER SET NONE ) AS BEGIN EXIT; END ^ CREATE PROCEDURE ALL_LANGS RETURNS ( CODE VARCHAR(5) CHARACTER SET NONE, GRADE VARCHAR(5) CHARACTER SET NONE, COUNTRY VARCHAR(15) CHARACTER SET NONE, LANG VARCHAR(15) CHARACTER SET NONE ) AS BEGIN SUSPEND; EXIT; END ^ CREATE PROCEDURE DELETE_EMPLOYEE ( EMP_NUM INTEGER ) AS BEGIN EXIT; END ^ CREATE PROCEDURE DEPT_BUDGET ( DNO CHAR(3) CHARACTER SET NONE ) RETURNS ( TOT DECIMAL(12,2) ) AS BEGIN SUSPEND; EXIT; END ^ CREATE PROCEDURE GET_EMP_PROJ ( EMP_NO SMALLINT ) RETURNS ( PROJ_ID CHAR(5) CHARACTER SET NONE ) AS BEGIN SUSPEND; EXIT; END ^ CREATE PROCEDURE "Has Space" ( ARG1 INTEGER ) AS BEGIN EXIT; END ^ CREATE PROCEDURE MAIL_LABEL ( CUST_NO INTEGER ) RETURNS ( LINE1 CHAR(40) CHARACTER SET NONE, LINE2 CHAR(40) CHARACTER SET NONE, LINE3 CHAR(40) CHARACTER SET NONE, LINE4 CHAR(40) CHARACTER SET NONE, LINE5 CHAR(40) CHARACTER SET NONE, LINE6 CHAR(40) CHARACTER SET NONE ) AS BEGIN SUSPEND; EXIT; END ^ CREATE PROCEDURE ORG_CHART RETURNS ( HEAD_DEPT CHAR(25) CHARACTER SET NONE, DEPARTMENT CHAR(25) CHARACTER SET NONE, MNGR_NAME CHAR(20) CHARACTER SET NONE, TITLE CHAR(5) CHARACTER SET NONE, EMP_CNT INTEGER ) AS BEGIN SUSPEND; EXIT; END ^ CREATE PROCEDURE SHIP_ORDER ( PO_NUM CHAR(8) CHARACTER SET NONE ) AS BEGIN EXIT; END ^ CREATE PROCEDURE SUB_TOT_BUDGET ( HEAD_DEPT CHAR(3) CHARACTER SET NONE ) RETURNS ( TOT_BUDGET DECIMAL(12,2), AVG_BUDGET DECIMAL(12,2), MIN_BUDGET DECIMAL(12,2), MAX_BUDGET DECIMAL(12,2) ) AS BEGIN SUSPEND; EXIT; END ^ CREATE PROCEDURE "UC SPACE" ( ARG1 INTEGER ) AS BEGIN EXIT; END ^ CREATE PROCEDURE "iCASE" AS BEGIN EXIT; END ^ SET TERM ;^ COMMIT WORK; SET AUTODDL ON; SET TERM ^; /* Triggers only will work for SQL triggers */ CREATE TRIGGER SET_CUST_NO FOR CUSTOMER ACTIVE BEFORE INSERT POSITION 0 AS BEGIN if (new.cust_no is null) then new.cust_no = gen_id(cust_no_gen, 1); END ^ CREATE TRIGGER SET_EMP_NO FOR EMPLOYEE ACTIVE BEFORE INSERT POSITION 0 AS BEGIN if (new.emp_no is null) then new.emp_no = gen_id(emp_no_gen, 1); END ^ CREATE TRIGGER SAVE_SALARY_CHANGE FOR EMPLOYEE ACTIVE AFTER UPDATE POSITION 0 AS BEGIN IF (old.salary <> new.salary) THEN INSERT INTO salary_history (emp_no, change_date, updater_id, old_salary, percent_change) VALUES ( old.emp_no, 'NOW', user, old.salary, (new.salary - old.salary) * 100 / old.salary); END ^ CREATE TRIGGER POST_NEW_ORDER FOR SALES ACTIVE AFTER INSERT POSITION 0 AS BEGIN POST_EVENT 'new_order'; END ^ COMMIT WORK^ SET TERM ;^ COMMIT WORK; SET AUTODDL OFF; SET TERM ^; /* Stored procedure Bodies */ ALTER PROCEDURE SHOW_LANGS ( CODE VARCHAR(5) CHARACTER SET NONE, GRADE SMALLINT, CTY VARCHAR(15) CHARACTER SET NONE ) RETURNS ( LANGUAGES VARCHAR(15) CHARACTER SET NONE ) AS DECLARE VARIABLE i INTEGER; BEGIN i = 1; WHILE (i <= 5) DO BEGIN SELECT language_req[:i] FROM joB WHERE ((job_code = :code) AND (job_grade = :grade) AND (job_country = :cty) AND (language_req IS NOT NULL)) INTO :languages; IF (languages = ' ') THEN /* Prints 'NULL' instead of blanks */ languages = 'NULL'; i = i +1; SUSPEND; END END ^ ALTER PROCEDURE ADD_EMP_PROJ ( EMP_NO SMALLINT, PROJ_ID CHAR(5) CHARACTER SET NONE ) AS BEGIN BEGIN INSERT INTO employee_project (emp_no, proj_id) VALUES (:emp_no, :proj_id); WHEN SQLCODE -530 DO EXCEPTION unknown_emp_id; END END ^ ALTER PROCEDURE ALL_LANGS RETURNS ( CODE VARCHAR(5) CHARACTER SET NONE, GRADE VARCHAR(5) CHARACTER SET NONE, COUNTRY VARCHAR(15) CHARACTER SET NONE, LANG VARCHAR(15) CHARACTER SET NONE ) AS BEGIN FOR SELECT job_code, job_grade, job_country FROM job INTO :code, :grade, :country DO BEGIN FOR SELECT languages FROM show_langs (:code, :grade, :country) INTO :lang DO SUSPEND; /* Put nice separators between rows */ code = '====='; grade = '====='; country = '==============='; lang = '=============='; SUSPEND; END END ^ ALTER PROCEDURE DELETE_EMPLOYEE ( EMP_NUM INTEGER ) AS DECLARE VARIABLE any_sales INTEGER; BEGIN any_sales = 0; /* * If there are any sales records referencing this employee, * cannot delete the employee until the sales are re-assigned * to another employee or changed to NULL. */ SELECT count(po_number) FROM sales WHERE sales_rep = :emp_num INTO :any_sales; IF (any_sales > 0) THEN BEGIN EXCEPTION reassign_sales; END /* * If the employee is a manager, update the department. */ UPDATE department SET mngr_no = NULL WHERE mngr_no = :emp_num; /* * If the employee is a project leader, update project. */ UPDATE project SET team_leader = NULL WHERE team_leader = :emp_num; /* * Delete the employee from any projects. */ DELETE FROM employee_project WHERE emp_no = :emp_num; /* * Delete old salary records. */ DELETE FROM salary_history WHERE emp_no = :emp_num; /* * Delete the employee. */ DELETE FROM employee WHERE emp_no = :emp_num; END ^ ALTER PROCEDURE DEPT_BUDGET ( DNO CHAR(3) CHARACTER SET NONE ) RETURNS ( TOT DECIMAL(12,2) ) AS DECLARE VARIABLE sumb DECIMAL(12,2); DECLARE VARIABLE rdno CHAR(3); DECLARE VARIABLE cnt INTEGER; BEGIN tot = 0; SELECT budget FROM department WHERE dept_no = :dno INTO :tot; SELECT count(budget) FROM department WHERE head_dept = :dno INTO :cnt; IF (cnt = 0) THEN SUSPEND; FOR SELECT dept_no FROM department WHERE head_dept = :dno INTO :rdno DO BEGIN EXECUTE PROCEDURE dept_budget :rdno RETURNING_VALUES :sumb; tot = tot + sumb; END SUSPEND; END ^ ALTER PROCEDURE GET_EMP_PROJ ( EMP_NO SMALLINT ) RETURNS ( PROJ_ID CHAR(5) CHARACTER SET NONE ) AS BEGIN FOR SELECT proj_id FROM employee_project WHERE emp_no = :emp_no INTO :proj_id DO SUSPEND; END ^ ALTER PROCEDURE "Has Space" ( ARG1 INTEGER ) AS Begin End ^ ALTER PROCEDURE MAIL_LABEL ( CUST_NO INTEGER ) RETURNS ( LINE1 CHAR(40) CHARACTER SET NONE, LINE2 CHAR(40) CHARACTER SET NONE, LINE3 CHAR(40) CHARACTER SET NONE, LINE4 CHAR(40) CHARACTER SET NONE, LINE5 CHAR(40) CHARACTER SET NONE, LINE6 CHAR(40) CHARACTER SET NONE ) AS DECLARE VARIABLE customer VARCHAR(25); DECLARE VARIABLE first_name VARCHAR(15); DECLARE VARIABLE last_name VARCHAR(20); DECLARE VARIABLE addr1 VARCHAR(30); DECLARE VARIABLE addr2 VARCHAR(30); DECLARE VARIABLE city VARCHAR(25); DECLARE VARIABLE state VARCHAR(15); DECLARE VARIABLE country VARCHAR(15); DECLARE VARIABLE postcode VARCHAR(12); DECLARE VARIABLE cnt INTEGER; BEGIN line1 = ''; line2 = ''; line3 = ''; line4 = ''; line5 = ''; line6 = ''; SELECT customer, contact_first, contact_last, address_line1, address_line2, city, state_province, country, postal_code FROM CUSTOMER WHERE cust_no = :cust_no INTO :customer, :first_name, :last_name, :addr1, :addr2, :city, :state, :country, :postcode; IF (customer IS NOT NULL) THEN line1 = customer; IF (first_name IS NOT NULL) THEN line2 = first_name || ' ' || last_name; ELSE line2 = last_name; IF (addr1 IS NOT NULL) THEN line3 = addr1; IF (addr2 IS NOT NULL) THEN line4 = addr2; IF (country = 'USA') THEN BEGIN IF (city IS NOT NULL) THEN line5 = city || ', ' || state || ' ' || postcode; ELSE line5 = state || ' ' || postcode; END ELSE BEGIN IF (city IS NOT NULL) THEN line5 = city || ', ' || state; ELSE line5 = state; line6 = country || ' ' || postcode; END SUSPEND; END ^ ALTER PROCEDURE ORG_CHART RETURNS ( HEAD_DEPT CHAR(25) CHARACTER SET NONE, DEPARTMENT CHAR(25) CHARACTER SET NONE, MNGR_NAME CHAR(20) CHARACTER SET NONE, TITLE CHAR(5) CHARACTER SET NONE, EMP_CNT INTEGER ) AS DECLARE VARIABLE mngr_no INTEGER; DECLARE VARIABLE dno CHAR(3); BEGIN FOR SELECT h.department, d.department, d.mngr_no, d.dept_no FROM department d LEFT OUTER JOIN department h ON d.head_dept = h.dept_no ORDER BY d.dept_no INTO :head_dept, :department, :mngr_no, :dno DO BEGIN IF (:mngr_no IS NULL) THEN BEGIN mngr_name = '--TBH--'; title = ''; END ELSE SELECT full_name, job_code FROM employee WHERE emp_no = :mngr_no INTO :mngr_name, :title; SELECT COUNT(emp_no) FROM employee WHERE dept_no = :dno INTO :emp_cnt; SUSPEND; END END ^ ALTER PROCEDURE SHIP_ORDER ( PO_NUM CHAR(8) CHARACTER SET NONE ) AS DECLARE VARIABLE ord_stat CHAR(7); DECLARE VARIABLE hold_stat CHAR(1); DECLARE VARIABLE cust_no INTEGER; DECLARE VARIABLE any_po CHAR(8); BEGIN SELECT s.order_status, c.on_hold, c.cust_no FROM sales s, customer c WHERE po_number = :po_num AND s.cust_no = c.cust_no INTO :ord_stat, :hold_stat, :cust_no; /* This purchase order has been already shipped. */ IF (ord_stat = 'shipped') THEN BEGIN EXCEPTION order_already_shipped; END /* Customer is on hold. */ ELSE IF (hold_stat = '*') THEN BEGIN EXCEPTION customer_on_hold; END /* * If there is an unpaid balance on orders shipped over 2 months ago, * put the customer on hold. */ FOR SELECT po_number FROM sales WHERE cust_no = :cust_no AND order_status = 'shipped' AND paid = 'n' AND ship_date < CAST('NOW' AS TIMESTAMP) - 60 INTO :any_po DO BEGIN EXCEPTION customer_check; UPDATE customer SET on_hold = '*' WHERE cust_no = :cust_no; END /* * Ship the order. */ UPDATE sales SET order_status = 'shipped', ship_date = 'NOW' WHERE po_number = :po_num; END ^ ALTER PROCEDURE SUB_TOT_BUDGET ( HEAD_DEPT CHAR(3) CHARACTER SET NONE ) RETURNS ( TOT_BUDGET DECIMAL(12,2), AVG_BUDGET DECIMAL(12,2), MIN_BUDGET DECIMAL(12,2), MAX_BUDGET DECIMAL(12,2) ) AS BEGIN SELECT SUM(budget), AVG(budget), MIN(budget), MAX(budget) FROM department WHERE head_dept = :head_dept INTO :tot_budget, :avg_budget, :min_budget, :max_budget; SUSPEND; END ^ ALTER PROCEDURE "UC SPACE" ( ARG1 INTEGER ) AS Begin End ^ ALTER PROCEDURE "iCASE" AS Begin End ^ SET TERM ;^ COMMIT WORK; SET AUTODDL ON; /* Comments on System Objects */ /* Grant Roles for this database */ /* Grant permissions for this database */ GRANT REFERENCES ON TABLE COUNTRIES TO USER BOB ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE COUNTRY TO USER PUBLIC WITH GRANT OPTION ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE CUSTOMER TO USER PUBLIC WITH GRANT OPTION ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE DEPARTMENT TO USER PUBLIC WITH GRANT OPTION ; GRANT SELECT ON TABLE EMPLOYEE TO USER ALICE WITH GRANT OPTION GRANTED BY BOB ; GRANT SELECT,Update(FIRST_NAME,LAST_NAME) ON TABLE EMPLOYEE TO USER BOB ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE EMPLOYEE TO USER PUBLIC WITH GRANT OPTION ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE EMPLOYEE_PROJECT TO USER PUBLIC WITH GRANT OPTION ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE JOB TO USER PUBLIC WITH GRANT OPTION ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE PHONE_LIST TO USER PUBLIC WITH GRANT OPTION ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE PROJECT TO USER PUBLIC WITH GRANT OPTION ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE PROJ_DEPT_BUDGET TO USER PUBLIC WITH GRANT OPTION ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE SALARY_HISTORY TO USER PUBLIC WITH GRANT OPTION ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE SALES TO USER PUBLIC WITH GRANT OPTION ; GRANT RDB$ADMIN TO ALICE; GRANT RDB$ADMIN TO BOB; GRANT EXECUTE ON PROCEDURE ADD_EMP_PROJ TO USER PUBLIC WITH GRANT OPTION ; GRANT EXECUTE ON PROCEDURE ALL_LANGS TO USER PUBLIC WITH GRANT OPTION ; GRANT EXECUTE ON PROCEDURE DELETE_EMPLOYEE TO USER PUBLIC WITH GRANT OPTION ; GRANT EXECUTE ON PROCEDURE DEPT_BUDGET TO USER PUBLIC WITH GRANT OPTION ; GRANT EXECUTE ON PROCEDURE GET_EMP_PROJ TO USER PUBLIC WITH GRANT OPTION ; GRANT EXECUTE ON PROCEDURE MAIL_LABEL TO USER PUBLIC WITH GRANT OPTION ; GRANT EXECUTE ON PROCEDURE ORG_CHART TO USER PUBLIC WITH GRANT OPTION ; GRANT EXECUTE ON PROCEDURE SHIP_ORDER TO USER PUBLIC WITH GRANT OPTION ; GRANT EXECUTE ON PROCEDURE SHOW_LANGS TO USER PUBLIC WITH GRANT OPTION ; GRANT EXECUTE ON PROCEDURE SUB_TOT_BUDGET TO USER PUBLIC WITH GRANT OPTION ; SET SQL DIALECT 3; SET AUTODDL ON; /* CREATE DATABASE 'localhost:/tmp/ibx-testsuite/testsuite1.fdb' PAGE_SIZE 8192 DEFAULT CHARACTER SET NONE; */ COMMENT ON DATABASE IS 'Employee Test DB'; /* Domain definitions */ CREATE DOMAIN ADDRESSLINE AS VARCHAR(30); CREATE DOMAIN BUDGET AS DECIMAL(12,2) DEFAULT 50000; CREATE DOMAIN COUNTRYNAME AS VARCHAR(15); CREATE DOMAIN CUSTNO AS INTEGER; CREATE DOMAIN DEPTNO AS CHAR(3); CREATE DOMAIN EMPNO AS SMALLINT; CREATE DOMAIN FB$OUT_TYPE AS BLOB SUB_TYPE TEXT SEGMENT SIZE 80 NOT NULL; CREATE DOMAIN FIRSTNAME AS VARCHAR(15); CREATE DOMAIN JOBCODE AS VARCHAR(5); CREATE DOMAIN JOBGRADE AS SMALLINT; CREATE DOMAIN LASTNAME AS VARCHAR(20); CREATE DOMAIN PHONENUMBER AS VARCHAR(20); CREATE DOMAIN PONUMBER AS CHAR(8); CREATE DOMAIN PRODTYPE AS VARCHAR(12) DEFAULT 'software' NOT NULL; CREATE DOMAIN PROJNO AS CHAR(5); CREATE DOMAIN SALARY AS NUMERIC(10,2) DEFAULT 0; /* Table: COUNTRIES, Owner: SYSDBA */ CREATE TABLE COUNTRIES ( COUNTRY VARCHAR(64) NOT NULL, NONEU SMALLINT, ISO2 CHAR(2), ISO3 CHAR(3), PRIMARY KEY (COUNTRY) ); COMMENT ON TABLE COUNTRIES IS 'List of Countries'; COMMENT ON COLUMN COUNTRIES.ISO2 IS 'Two Character ISO Country Code'; /* Table: COUNTRY, Owner: SYSDBA */ CREATE TABLE COUNTRY ( COUNTRY COUNTRYNAME NOT NULL, CURRENCY VARCHAR(10) NOT NULL, PRIMARY KEY (COUNTRY) ); /* Table: CUSTOMER, Owner: SYSDBA */ CREATE TABLE CUSTOMER ( CUST_NO CUSTNO NOT NULL, CUSTOMER VARCHAR(25) NOT NULL, CONTACT_FIRST FIRSTNAME, CONTACT_LAST LASTNAME, PHONE_NO PHONENUMBER, ADDRESS_LINE1 ADDRESSLINE, ADDRESS_LINE2 ADDRESSLINE, CITY VARCHAR(25), STATE_PROVINCE VARCHAR(15), COUNTRY COUNTRYNAME, POSTAL_CODE VARCHAR(12), ON_HOLD CHAR(1) DEFAULT NULL, LONG_REFERENCE BIGINT, PRIMARY KEY (CUST_NO) ); /* Table: DEPARTMENT, Owner: SYSDBA */ CREATE TABLE DEPARTMENT ( DEPT_NO DEPTNO NOT NULL, DEPARTMENT VARCHAR(25) NOT NULL, HEAD_DEPT DEPTNO, MNGR_NO EMPNO, BUDGET BUDGET, LOCATION VARCHAR(15), PHONE_NO PHONENUMBER DEFAULT '555-1234', UNIQUE (DEPARTMENT), PRIMARY KEY (DEPT_NO) ); /* Table: EMPLOYEE, Owner: SYSDBA */ CREATE TABLE EMPLOYEE ( EMP_NO EMPNO NOT NULL, FIRST_NAME FIRSTNAME NOT NULL, LAST_NAME LASTNAME NOT NULL, PHONE_EXT VARCHAR(4), HIRE_DATE TIMESTAMP DEFAULT 'NOW' NOT NULL, DEPT_NO DEPTNO NOT NULL, JOB_CODE JOBCODE NOT NULL, JOB_GRADE JOBGRADE NOT NULL, JOB_COUNTRY COUNTRYNAME NOT NULL, SALARY SALARY NOT NULL, FULL_NAME COMPUTED BY (last_name || ', ' || first_name), PRIMARY KEY (EMP_NO) ); /* Table: EMPLOYEE_PROJECT, Owner: SYSDBA */ CREATE TABLE EMPLOYEE_PROJECT ( EMP_NO EMPNO NOT NULL, PROJ_ID PROJNO NOT NULL, PRIMARY KEY (EMP_NO, PROJ_ID) ); /* Table: FB$OUT_TABLE, Owner: SYSDBA */ CREATE GLOBAL TEMPORARY TABLE FB$OUT_TABLE ( LINE_NUM INTEGER, CONTENT FB$OUT_TYPE ) ON COMMIT PRESERVE ROWS ; /* Table: JOB, Owner: SYSDBA */ CREATE TABLE JOB ( JOB_CODE JOBCODE NOT NULL, JOB_GRADE JOBGRADE NOT NULL, JOB_COUNTRY COUNTRYNAME NOT NULL, JOB_TITLE VARCHAR(25) NOT NULL, MIN_SALARY SALARY NOT NULL, MAX_SALARY SALARY NOT NULL, JOB_REQUIREMENT BLOB SUB_TYPE TEXT SEGMENT SIZE 400, LANGUAGE_REQ VARCHAR(15)[1:5], PRIMARY KEY (JOB_CODE, JOB_GRADE, JOB_COUNTRY) ); /* Table: PROJECT, Owner: SYSDBA */ CREATE TABLE PROJECT ( PROJ_ID PROJNO NOT NULL, PROJ_NAME VARCHAR(20) NOT NULL, PROJ_DESC BLOB SUB_TYPE TEXT SEGMENT SIZE 800, TEAM_LEADER EMPNO, PRODUCT PRODTYPE, UNIQUE (PROJ_NAME), PRIMARY KEY (PROJ_ID) ); /* Table: PROJ_DEPT_BUDGET, Owner: SYSDBA */ CREATE TABLE PROJ_DEPT_BUDGET ( FISCAL_YEAR INTEGER NOT NULL, PROJ_ID PROJNO NOT NULL, DEPT_NO DEPTNO NOT NULL, QUART_HEAD_CNT INTEGER[1:4], PROJECTED_BUDGET BUDGET, PRIMARY KEY (FISCAL_YEAR, PROJ_ID, DEPT_NO) ); /* Table: SALARY_HISTORY, Owner: SYSDBA */ CREATE TABLE SALARY_HISTORY ( EMP_NO EMPNO NOT NULL, CHANGE_DATE TIMESTAMP DEFAULT 'NOW' NOT NULL, UPDATER_ID VARCHAR(20) NOT NULL, OLD_SALARY SALARY NOT NULL, PERCENT_CHANGE DOUBLE PRECISION DEFAULT 0 NOT NULL, NEW_SALARY COMPUTED BY (old_salary + old_salary * percent_change / 100), PRIMARY KEY (EMP_NO, CHANGE_DATE, UPDATER_ID) ); /* Table: SALES, Owner: SYSDBA */ CREATE TABLE SALES ( PO_NUMBER PONUMBER NOT NULL, CUST_NO CUSTNO NOT NULL, SALES_REP EMPNO, ORDER_STATUS VARCHAR(7) DEFAULT 'new' NOT NULL, ORDER_DATE TIMESTAMP DEFAULT 'NOW' NOT NULL, SHIP_DATE TIMESTAMP, DATE_NEEDED TIMESTAMP, PAID CHAR(1) DEFAULT 'n', QTY_ORDERED INTEGER DEFAULT 1 NOT NULL, TOTAL_VALUE DECIMAL(9,2) NOT NULL, DISCOUNT FLOAT DEFAULT 0 NOT NULL, ITEM_TYPE PRODTYPE, AGED COMPUTED BY (ship_date - order_date), PRIMARY KEY (PO_NUMBER) ); /* External Function declarations */ DECLARE EXTERNAL FUNCTION ADDDAY TIMESTAMP, INTEGER RETURNS TIMESTAMP ENTRY_POINT 'addDay' MODULE_NAME 'fbudf' ; DECLARE EXTERNAL FUNCTION I64TRUNCATE NUMERIC(18,0) BY DESCRIPTOR, NUMERIC(18,0) BY DESCRIPTOR RETURNS PARAMETER 2 ENTRY_POINT 'fbtruncate' MODULE_NAME 'fbudf' ; DECLARE EXTERNAL FUNCTION TESTIT TIMESTAMP, INTEGER NULL, CSTRING(10) CHARACTER SET NONE, CSTRING(10) CHARACTER SET NONE BY DESCRIPTOR RETURNS CSTRING(32) CHARACTER SET NONE FREE_IT ENTRY_POINT 'testit' MODULE_NAME 'fbudf' ; /* Data Starts */ /* Inserting data into Table: COUNTRY */ INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('USA','Dollar'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('England','Pound'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Canada','CdnDlr'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Switzerland','SFranc'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Japan','Yen'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Italy','Euro'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('France','Euro'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Germany','Euro'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Australia','ADollar'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Hong Kong','HKDollar'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Netherlands','Euro'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Belgium','Euro'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Austria','Euro'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Fiji','FDollar'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Russia','Ruble'); INSERT INTO COUNTRY (COUNTRY,CURRENCY) VALUES('Romania','RLeu'); COMMIT; /* Inserting data into Table: CUSTOMER */ INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1001,'Signature Design','Dale J.','Little','(619) 530-2710','15500 Pacific Heights Blvd.',NULL,'San Diego','CA','USA','92121',NULL,NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1002,'Dallas Technologies','Glen','Brown','(214) 960-2233','P. O. Box 47000',NULL,'Dallas','TX','USA','75205','*',NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1003,'Buttle, Griffith and Co.','James','Buttle','(617) 488-1864','2300 Newbury Street','Suite 101','Boston','MA','USA','02115',NULL,NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1004,'Central Bank','Elizabeth','Brocket','61 211 99 88','66 Lloyd Street',NULL,'Manchester',NULL,'England','M2 3LA',NULL,NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1005,'DT Systems, LTD.','Tai','Wu','(852) 850 43 98','400 Connaught Road',NULL,'Central Hong Kong',NULL,'Hong Kong',NULL,NULL,NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1006,'DataServe International','Tomas','Bright','(613) 229 3323','2000 Carling Avenue','Suite 150','Ottawa','ON','Canada','K1V 9G1',NULL,NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1007,'Mrs. Beauvais',NULL,'Mrs. Beauvais',NULL,'P.O. Box 22743',NULL,'Pebble Beach','CA','USA','93953',NULL,NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1008,'Anini Vacation Rentals','Leilani','Briggs','(808) 835-7605','3320 Lawai Road',NULL,'Lihue','HI','USA','96766',NULL,NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1009,'Max','Max',NULL,'22 01 23','1 Emerald Cove',NULL,'Turtle Island',NULL,'Fiji',NULL,'*',NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1010,'MPM Corporation','Miwako','Miyamoto','3 880 77 19','2-64-7 Sasazuka',NULL,'Tokyo',NULL,'Japan','150',NULL,NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1011,'Dynamic Intelligence Corp','Victor','Granges','01 221 16 50','Florhofgasse 10',NULL,'Zurich',NULL,'Switzerland','8005',NULL,NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1012,'3D-Pad Corp.','Michelle','Roche','1 43 60 61','22 Place de la Concorde',NULL,'Paris',NULL,'France','75008',NULL,NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1013,'Lorenzi Export, Ltd.','Andreas','Lorenzi','02 404 6284','Via Eugenia, 15',NULL,'Milan',NULL,'Italy','20124',NULL,NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1014,'Dyno Consulting','Greta','Hessels','02 500 5940','Rue Royale 350',NULL,'Brussels',NULL,'Belgium','1210',NULL,NULL); INSERT INTO CUSTOMER (CUST_NO,CUSTOMER,CONTACT_FIRST,CONTACT_LAST,PHONE_NO,ADDRESS_LINE1,ADDRESS_LINE2,CITY,STATE_PROVINCE,COUNTRY,POSTAL_CODE,ON_HOLD,LONG_REFERENCE) VALUES(1015,'GeoTech Inc.','K.M.','Neppelenbroek','(070) 44 91 18','P.0.Box 702',NULL,'Den Haag',NULL,'Netherlands','2514',NULL,NULL); COMMIT; /* Inserting data into Table: DEPARTMENT */ INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('000','Corporate Headquarters',NULL,105,1000000,'Monterey','(408) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('100','Sales and Marketing','000',85,2000000,'San Francisco','(415) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('600','Engineering','000',2,1100000,'Monterey','(408) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('900','Finance','000',46,400000,'Monterey','(408) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('180','Marketing','100',NULL,1500000,'San Francisco','(415) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('620','Software Products Div.','600',NULL,1200000,'Monterey','(408) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('621','Software Development','620',NULL,400000,'Monterey','(408) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('622','Quality Assurance','620',9,300000,'Monterey','(408) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('623','Customer Support','620',15,650000,'Monterey','(408) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('670','Consumer Electronics Div.','600',107,1150000,'Burlington, VT','(802) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('671','Research and Development','670',20,460000,'Burlington, VT','(802) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('672','Customer Services','670',94,850000,'Burlington, VT','(802) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('130','Field Office: East Coast','100',11,500000,'Boston','(617) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('140','Field Office: Canada','100',72,500000,'Toronto','(416) 677-1000'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('110','Pacific Rim Headquarters','100',34,600000,'Kuaui','(808) 555-1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('115','Field Office: Japan','110',118,500000,'Tokyo','3 5350 0901'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('116','Field Office: Singapore','110',NULL,300000,'Singapore','3 55 1234'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('120','European Headquarters','100',36,700000,'London','71 235-4400'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('121','Field Office: Switzerland','120',141,500000,'Zurich','1 211 7767'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('123','Field Office: France','120',134,400000,'Cannes','58 68 11 12'); INSERT INTO DEPARTMENT (DEPT_NO,DEPARTMENT,HEAD_DEPT,MNGR_NO,BUDGET,LOCATION,PHONE_NO) VALUES('125','Field Office: Italy','120',121,400000,'Milan','2 430 39 39'); COMMIT; /* Inserting data into Table: EMPLOYEE */ INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(2,'Robert','Nelson','250','1988.12.28 00:00:00.000','600','VP',2,'USA',105900); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(4,'Bruce','Young','233','1988.12.28 00:00:00.000','621','Eng',2,'USA',97500); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(5,'Kim','Lambert','22','1989.02.06 00:00:00.000','130','Eng',2,'USA',102750); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(8,'Leslie','Johnson','410','1989.04.05 00:00:00.000','180','Mktg',3,'USA',64635); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(9,'Phil','Forest','229','1989.04.17 00:00:00.000','622','Mngr',3,'USA',75060); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(11,'K. J.','Weston','34','1990.01.17 00:00:00.000','130','SRep',4,'USA',86292.94); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(12,'Terri','Lee','256','1990.05.01 00:00:00.000','000','Admin',4,'USA',53793); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(14,'Stewart','Hall','227','1990.06.04 00:00:00.000','900','Finan',3,'USA',69482.63); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(15,'Katherine','Young','231','1990.06.14 00:00:00.000','623','Mngr',3,'USA',67241.25); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(20,'Chris','Papadopoulos','887','1990.01.01 00:00:00.000','671','Mngr',3,'USA',89655); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(24,'Pete','Fisher','888','1990.09.12 00:00:00.000','671','Eng',3,'USA',81810.19); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(28,'Ann','Bennet','5','1991.02.01 00:00:00.000','120','Admin',5,'England',22935); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(29,'Roger','De Souza','288','1991.02.18 00:00:00.000','623','Eng',3,'USA',69482.63); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(34,'Janet','Baldwin','2','1991.03.21 00:00:00.000','110','Sales',3,'USA',61637.8); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(36,'Roger','Reeves','6','1991.04.25 00:00:00.000','120','Sales',3,'England',33620.63); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(37,'Willie','Stansbury','7','1991.04.25 00:00:00.000','120','Eng',4,'England',39224.06); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(44,'Leslie','Phong','216','1991.06.03 00:00:00.000','623','Eng',4,'USA',56034.38); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(45,'Ashok','Ramanathan','209','1991.08.01 00:00:00.000','621','Eng',3,'USA',80689.5); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(46,'Walter','Steadman','210','1991.08.09 00:00:00.000','900','CFO',1,'USA',116100); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(52,'Carol','Nordstrom','420','1991.10.02 00:00:00.000','180','PRel',4,'USA',42742.5); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(61,'Luke','Leung','3','1992.02.18 00:00:00.000','110','SRep',4,'USA',68805); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(65,'Sue Anne','O''Brien','877','1992.03.23 00:00:00.000','670','Admin',5,'USA',31275); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(71,'Jennifer M.','Burbank','289','1992.04.15 00:00:00.000','622','Eng',3,'USA',53167.5); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(72,'Claudia','Sutherland',NULL,'1992.04.20 00:00:00.000','140','SRep',4,'Canada',100914); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(83,'Dana','Bishop','290','1992.06.02 00:00:00.000','621','Eng',3,'USA',62550.02); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(85,'Mary S.','MacDonald','477','1992.06.01 00:00:00.000','100','VP',2,'USA',111262.5); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(94,'Randy','Williams','892','1992.08.08 00:00:00.000','672','Mngr',4,'USA',56295); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(105,'Oliver H A','Bender','255','1992.10.08 00:00:00.000','000','CEO',1,'USA',212850); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(107,'Kevin','Cook','894','1993.02.01 00:00:00.000','670','Dir',2,'USA',111262.5); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(109,'Kelly','Brown','202','1993.02.04 00:00:00.000','600','Admin',5,'USA',27000.01); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(110,'Yuki','Ichida','22','1993.02.04 00:00:00.000','115','Eng',3,'Japan',6000000); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(113,'Mary','Page','845','1993.04.12 00:00:00.000','671','Eng',4,'USA',48000); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(114,'Bill','Parker','247','1993.06.01 00:00:00.000','623','Eng',5,'USA',35000); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(118,'Takashi','Yamamoto','23','1993.07.01 00:00:00.000','115','SRep',4,'Japan',7480000); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(121,'Roberto','Ferrari','1','1993.07.12 00:00:00.000','125','SRep',4,'USA',33000.01); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(127,'Michael','Yanowski','492','1993.08.09 00:00:00.000','100','SRep',4,'USA',44000); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(134,'Jacques','Glon',NULL,'1993.08.23 00:00:00.000','123','SRep',4,'France',38500); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(136,'Scott','Johnson','265','1993.09.13 00:00:00.000','623','Doc',3,'USA',60000); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(138,'T.J.','Green','218','1993.11.01 00:00:00.000','621','Eng',4,'USA',36000); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(141,'Pierre','Osborne',NULL,'1994.01.03 00:00:00.000','121','SRep',4,'Switzerland',110000); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(144,'John','Montgomery','820','1994.03.30 00:00:00.000','672','Eng',5,'USA',35000); INSERT INTO EMPLOYEE (EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,HIRE_DATE,DEPT_NO,JOB_CODE,JOB_GRADE,JOB_COUNTRY,SALARY) VALUES(145,'Mark','Guckenheimer','221','1994.05.02 00:00:00.000','622','Eng',5,'USA',32000); COMMIT; /* Inserting data into Table: EMPLOYEE_PROJECT */ INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(144,'DGPII'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(113,'DGPII'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(24,'DGPII'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(8,'VBASE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(136,'VBASE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(15,'VBASE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(71,'VBASE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(145,'VBASE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(44,'VBASE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(4,'VBASE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(83,'VBASE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(138,'VBASE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(45,'VBASE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(20,'GUIDE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(24,'GUIDE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(113,'GUIDE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(8,'GUIDE'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(4,'MAPDB'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(71,'MAPDB'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(46,'MKTPR'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(105,'MKTPR'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(12,'MKTPR'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(85,'MKTPR'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(110,'MKTPR'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(34,'MKTPR'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(8,'MKTPR'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(14,'MKTPR'); INSERT INTO EMPLOYEE_PROJECT (EMP_NO,PROJ_ID) VALUES(52,'MKTPR'); COMMIT; /* Inserting data into Table: JOB */ INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('CEO',1,'USA','Chief Executive Officer',130000,250000,'No specific requirements. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('CFO',1,'USA','Chief Financial Officer',85000,140000,'15+ years in finance or 5+ years as a CFO with a proven track record. MBA or J.D. degree. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('VP',2,'USA','Vice President',80000,130000,'No specific requirements. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Dir',2,'USA','Director',75000,120000,'5-10 years as a director in computer or electronics industries. An advanced degree. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Mngr',3,'USA','Manager',60000,100000,'BA/BS required. 3-5 years in management, plus 2-4 years engineering experience. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Mngr',4,'USA','Manager',30000,60000,'5+ years office management experience. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Admin',4,'USA','Administrative Assistant',35000,55000,'3-5 years experience in executive environment. Strong organizational and communication skills required. BA degree preferred. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Admin',5,'USA','Administrative Assistant',20000,40000,'2-4 years clerical experience. Facility with word processing and data entry. AA degree preferred. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Admin',5,'England','Administrative Assistant',13400,26800,NULL,NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('PRel',4,'USA','Public Relations Rep.',25000,65000,NULL,NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Mktg',3,'USA','Marketing Analyst',40000,80000,'MBA required. 10+ years experience in high tech environment. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Mktg',4,'USA','Marketing Analyst',20000,50000,'BA/BS required. MBA preferred. 3-5 years experience. Knowledgeable with spreadsheets and databases. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Accnt',4,'USA','Accountant',28000,55000,'CPA with 3-5 years experience. Spreadsheet, data entry, and word processing knowledge required. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Finan',3,'USA','Financial Analyst',35000,85000,'5-10 years of accounting and financial experience. Strong analytical skills. CPA/MBA required. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Eng',2,'USA','Engineer',70000,110000,'Distinguished engineer. Ph.D/MS/BS or equivalent experience. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Eng',3,'USA','Engineer',50000,90000,'5+ years experience. BA/BS required. MS degree preferred. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Eng',3,'Japan','Engineer',5400000,9720000,'5+ years experience. BA/BS and/or MS degrees required. Customer support experience desired. Knowledge of Japanese and English. ', Japanese Mandarin English ); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Eng',4,'USA','Engineer',30000,65000,'BA/BS and 3-5 years experience. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Eng',4,'England','Engineer',20100,43550,'BA/BS and 2-4 years experience in technical support. Knowledge of several European languages helpful. ', English German French ); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Eng',5,'USA','Engineer',25000,35000,'BA/BS preferred. 2-4 years technical experience. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Doc',3,'USA','Technical Writer',38000,60000,'4+ years writing highly technical software documentation. A bachelor''s degree or equivalent. Programming experience required. Excellent language skills. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Doc',5,'USA','Technical Writer',22000,40000,'BA in English/journalism or excellent language skills. Some programming experience required. 2-4 years of technical writing. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Sales',3,'USA','Sales Co-ordinator',40000,70000,'Experience in sales and public relations in a high tech environment. Excellent communication skills. BA or equivalent. ',NULL); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('Sales',3,'England','Sales Co-ordinator',26800,46900,'Experience in sales and public relations in a high tech environment. Excellent communication skills. BA or equivalent. Knowledge of several European languages helpful. ', English German French ); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'USA','Sales Representative',20000,100000,'Computer/electronics industry sales experience. Excellent communications, negotiation, and analytical skills. Experience in establishing long term customer relationships. Some knowledge of Spanish required. Travel required. ', English Spanish ); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'England','Sales Representative',13400,67000,'Computer/electronics industry sales experience. Excellent communications, negotiation, and analytical skills. Experience in establishing long term customer relationships. Knowledge of several European languages helpful. Travel required. ', English German French ); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'Canada','Sales Representative',26400,132000,'Computer/electronics industry sales experience. Excellent communications, negotiation, and analytical skills. Experience in establishing long term customer relationships. Travel required. English plus speaking knowledge of French required. ', English French ); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'Switzerland','Sales Representative',28000,149000,'Computer/electronics industry sales experience. Excellent communications, negotiation, and analytical skills. Experience in establishing long term customer relationships. Knowledge of German required; one or more other European language helpful. Travel required. ', German French English Italian ); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'Japan','Sales Representative',2160000,10800000,'Computer/electronics industry sales experience. Excellent communications, negotiation, and analytical skills. Experience in establishing long term customer relationships. Knowledge of Japanese required. Travel required. ', Japanese English ); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'Italy','Sales Representative',20000,100000,'Computer/electronics industry sales experience. Excellent communications, negotiation, and analytical skills. Experience in establishing long term customer relationships. Fluency in Italian; some knowledge of German helpful. Travel required. ', Italian German French ); INSERT INTO JOB (JOB_CODE,JOB_GRADE,JOB_COUNTRY,JOB_TITLE,MIN_SALARY,MAX_SALARY,JOB_REQUIREMENT,LANGUAGE_REQ) VALUES('SRep',4,'France','Sales Representative',20000,100000,'Computer/electronics industry sales experience. Excellent communications, negotiation, and analytical skills. Experience in establishing long term customer relationships. Fluency in French; some knowledge of German/Spanish helpful. Travel required. ', English French Spanish ); COMMIT; /* Inserting data into Table: PROJECT */ INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('VBASE','Video Database','Design a video data base management system for controlling on-demand video distribution. ',45,'software'); INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('DGPII','DigiPizza','Develop second generation digital pizza maker with flash-bake heating element and digital ingredient measuring system. ',24,'other'); INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('GUIDE','AutoMap','Develop a prototype for the automobile version of the hand-held map browsing device. ',20,'hardware'); INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('MAPDB','MapBrowser port','Port the map browsing database software to run on the automobile model. ',4,'software'); INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('HWRII','Translator upgrade','Integrate the hand-writing recognition module into the universal language translator. ',NULL,'software'); INSERT INTO PROJECT (PROJ_ID,PROJ_NAME,PROJ_DESC,TEAM_LEADER,PRODUCT) VALUES('MKTPR','Marketing project 3','Expand marketing and sales in the Pacific Rim. Set up a field office in Australia and Singapore. ',85,'N/A'); COMMIT; /* Inserting data into Table: PROJ_DEPT_BUDGET */ INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'GUIDE','100', 1 1 1 0 ,200000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'GUIDE','671', 3 2 1 0 ,450000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1993,'MAPDB','621', 0 0 0 1 ,20000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MAPDB','621', 2 1 0 0 ,40000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MAPDB','622', 1 1 0 0 ,60000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MAPDB','671', 1 1 0 0 ,11000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'HWRII','670', 1 1 1 1 ,20000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'HWRII','621', 2 3 2 1 ,400000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'HWRII','622', 1 1 2 2 ,100000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MKTPR','623', 1 1 1 2 ,80000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MKTPR','672', 1 1 1 2 ,100000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MKTPR','100', 4 5 6 6 ,1000000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MKTPR','110', 2 2 0 3 ,200000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'MKTPR','000', 1 1 2 2 ,100000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1995,'MKTPR','623', 7 7 4 4 ,1200000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1995,'MKTPR','672', 2 3 3 3 ,800000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1995,'MKTPR','100', 4 5 6 6 ,2000000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1995,'MKTPR','110', 1 1 1 1 ,1200000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'VBASE','621', 4 5 5 3 ,1900000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1995,'VBASE','621', 4 3 2 2 ,900000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'VBASE','622', 2 2 2 1 ,400000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1994,'VBASE','100', 1 1 2 3 ,300000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1995,'VBASE','100', 3 3 1 1 ,1500000); INSERT INTO PROJ_DEPT_BUDGET (FISCAL_YEAR,PROJ_ID,DEPT_NO,QUART_HEAD_CNT,PROJECTED_BUDGET) VALUES(1996,'VBASE','100', 1 1 0 0 ,150000); COMMIT; /* Inserting data into Table: SALARY_HISTORY */ INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(28,'1992.12.15 00:00:00.000','admin2',20000,10); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(2,'1992.12.15 00:00:00.000','admin2',98000,8.0612); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(4,'1992.12.15 00:00:00.000','admin2',90000,8.3333); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(5,'1992.12.15 00:00:00.000','admin2',95000,8.1578); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(11,'1992.12.15 00:00:00.000','admin2',70000,7.5); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(12,'1992.12.15 00:00:00.000','admin2',48000,7.5); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(14,'1992.12.15 00:00:00.000','admin2',62000,7.5); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(15,'1992.12.15 00:00:00.000','admin2',60000,7.5); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(20,'1992.12.15 00:00:00.000','admin2',80000,7.5); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(24,'1992.12.15 00:00:00.000','admin2',73000,7.5); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(29,'1992.12.15 00:00:00.000','admin2',62000,7.5); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(34,'1992.12.15 00:00:00.000','admin2',55000,7.5); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(36,'1992.12.15 00:00:00.000','admin2',30000,7.5); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(37,'1992.12.15 00:00:00.000','admin2',35000,7.5); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(44,'1992.12.15 00:00:00.000','admin2',50000,7.5); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(45,'1992.12.15 00:00:00.000','admin2',72000,7.5); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(8,'1993.09.08 00:00:00.000','elaine',62000,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(9,'1993.09.08 00:00:00.000','elaine',72000,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(11,'1993.09.08 00:00:00.000','elaine',75250,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(12,'1993.09.08 00:00:00.000','elaine',51600,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(14,'1993.09.08 00:00:00.000','elaine',66650,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(15,'1993.09.08 00:00:00.000','elaine',64500,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(20,'1993.09.08 00:00:00.000','elaine',86000,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(24,'1993.09.08 00:00:00.000','elaine',78475,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(28,'1993.09.08 00:00:00.000','elaine',22000,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(29,'1993.09.08 00:00:00.000','elaine',66650,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(34,'1993.09.08 00:00:00.000','elaine',59125,4.2499); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(36,'1993.09.08 00:00:00.000','elaine',32250,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(37,'1993.09.08 00:00:00.000','elaine',37625,4.2499); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(44,'1993.09.08 00:00:00.000','elaine',53750,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(45,'1993.09.08 00:00:00.000','elaine',77400,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(52,'1993.09.08 00:00:00.000','elaine',41000,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(61,'1993.09.08 00:00:00.000','elaine',60000,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(65,'1993.09.08 00:00:00.000','elaine',30000,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(71,'1993.09.08 00:00:00.000','elaine',51000,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(72,'1993.09.08 00:00:00.000','elaine',88000,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(83,'1993.09.08 00:00:00.000','elaine',60000,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(94,'1993.09.08 00:00:00.000','elaine',54000,4.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(46,'1993.12.20 00:00:00.000','tj',120000,-3.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(85,'1993.12.20 00:00:00.000','tj',115000,-3.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(105,'1993.12.20 00:00:00.000','tj',220000,-3.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(107,'1993.12.20 00:00:00.000','tj',115000,-3.25); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(11,'1993.12.20 00:00:00.000','elaine',78448.13,9.9999); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(61,'1993.12.20 00:00:00.000','elaine',62550,10); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(72,'1993.12.20 00:00:00.000','elaine',91740,10); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(118,'1993.12.20 00:00:00.000','elaine',6800000,10); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(121,'1993.12.20 00:00:00.000','elaine',30000,10); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(127,'1993.12.20 00:00:00.000','elaine',40000,10); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(134,'1993.12.20 00:00:00.000','elaine',35000,10); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(28,'2017.11.06 16:46:27.145','SYSDBA',22935,0); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(28,'2017.11.06 16:47:01.376','SYSDBA',22935.01,0); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(12,'2017.12.29 12:18:48.909','SYSDBA',53793,0); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(12,'2017.12.29 12:18:58.051','SYSDBA',53793.01,0); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(83,'2018.01.04 10:57:34.245','SYSDBA',62550,0); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(121,'2018.03.13 15:29:08.850','SYSDBA',33000,0); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(109,'2018.03.13 17:12:06.340','SYSDBA',27000,0); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(34,'2018.03.13 17:13:20.671','SYSDBA',61637.81,0); INSERT INTO SALARY_HISTORY (EMP_NO,CHANGE_DATE,UPDATER_ID,OLD_SALARY,PERCENT_CHANGE) VALUES(83,'2018.03.13 17:13:35.845','SYSDBA',62550.01,0); COMMIT; /* Inserting data into Table: SALES */ INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V91E0210',1004,11,'shipped','1991.03.04 00:00:00.000','1991.03.05 00:00:00.000',NULL,'y',10,5000,0.100000001490116,'hardware'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V92E0340',1004,11,'shipped','1992.10.15 00:00:00.000','1992.10.16 00:00:00.000','1992.10.17 00:00:00.000','y',7,70000,0,'hardware'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V92J1003',1010,61,'shipped','1992.07.26 00:00:00.000','1992.08.04 00:00:00.000','1992.09.15 00:00:00.000','y',15,2985,0,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93J2004',1010,118,'shipped','1993.10.30 00:00:00.000','1993.12.02 00:00:00.000','1993.11.15 00:00:00.000','y',3,210,0,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93J3100',1010,118,'shipped','1993.08.20 00:00:00.000','1993.08.20 00:00:00.000',NULL,'y',16,18000.4,0.100000001490116,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V92F3004',1012,11,'shipped','1992.10.15 00:00:00.000','1993.01.16 00:00:00.000','1993.01.16 00:00:00.000','y',3,2000,0,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93F3088',1012,134,'shipped','1993.08.27 00:00:00.000','1993.09.08 00:00:00.000',NULL,'n',10,10000,0,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93F2030',1012,134,'open','1993.12.12 00:00:00.000',NULL,NULL,'y',15,450000.49,0,'hardware'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93F2051',1012,134,'waiting','1993.12.18 00:00:00.000',NULL,'1994.03.01 00:00:00.000','n',1,999.98,0,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93H0030',1005,118,'open','1993.12.12 00:00:00.000',NULL,'1994.01.01 00:00:00.000','y',20,5980,0.200000002980232,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V94H0079',1005,61,'open','1994.02.13 00:00:00.000',NULL,'1994.04.20 00:00:00.000','n',10,9000,0.0500000007450581,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9324200',1001,72,'shipped','1993.08.09 00:00:00.000','1993.08.09 00:00:00.000','1993.08.17 00:00:00.000','y',1000,560000,0.200000002980232,'hardware'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9324320',1001,127,'shipped','1993.08.16 00:00:00.000','1993.08.16 00:00:00.000','1993.09.01 00:00:00.000','y',1,0,1,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9320630',1001,127,'open','1993.12.12 00:00:00.000',NULL,'1993.12.15 00:00:00.000','n',3,60000,0.200000002980232,'hardware'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9420099',1001,127,'open','1994.01.17 00:00:00.000',NULL,'1994.06.01 00:00:00.000','n',100,3399.15,0.150000005960464,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9427029',1001,127,'shipped','1994.02.07 00:00:00.000','1994.02.10 00:00:00.000','1994.02.10 00:00:00.000','n',17,422210.97,0,'hardware'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9333005',1002,11,'shipped','1993.02.03 00:00:00.000','1993.03.03 00:00:00.000',NULL,'y',2,600.5,0,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9333006',1002,11,'shipped','1993.04.27 00:00:00.000','1993.05.02 00:00:00.000','1993.05.02 00:00:00.000','n',5,20000,0,'other'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9336100',1002,11,'waiting','1993.12.27 00:00:00.000','1994.01.01 00:00:00.000','1994.01.01 00:00:00.000','n',150,14850,0.0500000007450581,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9346200',1003,11,'waiting','1993.12.31 00:00:00.000',NULL,'1994.01.24 00:00:00.000','n',3,0,1,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9345200',1003,11,'shipped','1993.11.11 00:00:00.000','1993.12.02 00:00:00.000','1993.12.01 00:00:00.000','y',900,27000,0.300000011920929,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9345139',1003,127,'shipped','1993.09.09 00:00:00.000','1993.09.20 00:00:00.000','1993.10.01 00:00:00.000','y',20,12582.12,0.100000001490116,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93C0120',1006,72,'shipped','1993.03.22 00:00:00.000','1993.05.31 00:00:00.000','1993.04.17 00:00:00.000','y',1,47.5,0,'other'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93C0990',1006,72,'shipped','1993.08.09 00:00:00.000','1993.09.02 00:00:00.000',NULL,'y',40,399960.5,0.100000001490116,'hardware'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V9456220',1007,127,'open','1994.01.04 00:00:00.000',NULL,'1994.01.30 00:00:00.000','y',1,3999.99,0,'hardware'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93S4702',1011,121,'shipped','1993.10.27 00:00:00.000','1993.10.28 00:00:00.000','1993.12.15 00:00:00.000','y',4,120000,0,'hardware'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V94S6400',1011,141,'waiting','1994.01.06 00:00:00.000',NULL,'1994.02.15 00:00:00.000','y',20,1980.72,0.400000005960464,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93H3009',1008,61,'shipped','1993.08.01 00:00:00.000','1993.12.02 00:00:00.000','1993.12.01 00:00:00.000','n',3,9000,0.0500000007450581,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93H0500',1008,61,'open','1993.12.12 00:00:00.000',NULL,'1993.12.15 00:00:00.000','n',3,16000,0.200000002980232,'hardware'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93F0020',1009,61,'shipped','1993.10.10 00:00:00.000','1993.11.11 00:00:00.000','1993.11.11 00:00:00.000','n',1,490.69,0,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93I4700',1013,121,'open','1993.10.27 00:00:00.000',NULL,'1993.12.15 00:00:00.000','n',5,2693,0,'hardware'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93B1002',1014,134,'shipped','1993.09.20 00:00:00.000','1993.09.21 00:00:00.000','1993.09.25 00:00:00.000','y',1,100.02,0,'software'); INSERT INTO SALES (PO_NUMBER,CUST_NO,SALES_REP,ORDER_STATUS,ORDER_DATE,SHIP_DATE,DATE_NEEDED,PAID,QTY_ORDERED,TOTAL_VALUE,DISCOUNT,ITEM_TYPE) VALUES('V93N5822',1015,134,'shipped','1993.12.18 00:00:00.000','1994.01.14 00:00:00.000',NULL,'n',2,1500,0,'software'); COMMIT; /* Data Ends */ /* Index definitions for all user tables */ CREATE INDEX CUSTNAMEX ON CUSTOMER(CUSTOMER); CREATE INDEX CUSTREGION ON CUSTOMER(COUNTRY, CITY); CREATE DESCENDING INDEX BUDGETX ON DEPARTMENT(BUDGET); CREATE INDEX NAMEX ON EMPLOYEE(LAST_NAME, FIRST_NAME); CREATE DESCENDING INDEX MAXSALX ON JOB(JOB_COUNTRY, MAX_SALARY); CREATE INDEX MINSALX ON JOB(JOB_COUNTRY, MIN_SALARY); CREATE UNIQUE INDEX PRODTYPEX ON PROJECT(PRODUCT, PROJ_NAME); CREATE DESCENDING INDEX CHANGEX ON SALARY_HISTORY(CHANGE_DATE); CREATE INDEX UPDATERX ON SALARY_HISTORY(UPDATER_ID); CREATE INDEX NEEDX ON SALES(DATE_NEEDED); CREATE DESCENDING INDEX QTYX ON SALES(ITEM_TYPE, QTY_ORDERED); CREATE INDEX SALESTATX ON SALES(ORDER_STATUS, PAID); ALTER TABLE CUSTOMER ADD FOREIGN KEY (COUNTRY) REFERENCES COUNTRY (COUNTRY); ALTER TABLE DEPARTMENT ADD FOREIGN KEY (HEAD_DEPT) REFERENCES DEPARTMENT (DEPT_NO); ALTER TABLE DEPARTMENT ADD FOREIGN KEY (MNGR_NO) REFERENCES EMPLOYEE (EMP_NO); ALTER TABLE EMPLOYEE ADD FOREIGN KEY (DEPT_NO) REFERENCES DEPARTMENT (DEPT_NO); ALTER TABLE EMPLOYEE ADD FOREIGN KEY (JOB_CODE, JOB_GRADE, JOB_COUNTRY) REFERENCES JOB (JOB_CODE, JOB_GRADE, JOB_COUNTRY); ALTER TABLE EMPLOYEE_PROJECT ADD FOREIGN KEY (EMP_NO) REFERENCES EMPLOYEE (EMP_NO); ALTER TABLE EMPLOYEE_PROJECT ADD FOREIGN KEY (PROJ_ID) REFERENCES PROJECT (PROJ_ID); ALTER TABLE JOB ADD FOREIGN KEY (JOB_COUNTRY) REFERENCES COUNTRY (COUNTRY); ALTER TABLE PROJECT ADD FOREIGN KEY (TEAM_LEADER) REFERENCES EMPLOYEE (EMP_NO); ALTER TABLE PROJ_DEPT_BUDGET ADD FOREIGN KEY (DEPT_NO) REFERENCES DEPARTMENT (DEPT_NO); ALTER TABLE PROJ_DEPT_BUDGET ADD FOREIGN KEY (PROJ_ID) REFERENCES PROJECT (PROJ_ID); ALTER TABLE SALARY_HISTORY ADD FOREIGN KEY (EMP_NO) REFERENCES EMPLOYEE (EMP_NO); ALTER TABLE SALES ADD FOREIGN KEY (CUST_NO) REFERENCES CUSTOMER (CUST_NO); ALTER TABLE SALES ADD FOREIGN KEY (SALES_REP) REFERENCES EMPLOYEE (EMP_NO); CREATE SEQUENCE CUST_NO_GEN; ALTER SEQUENCE CUST_NO_GEN RESTART WITH 1016; CREATE SEQUENCE EMP_NO_GEN; ALTER SEQUENCE EMP_NO_GEN RESTART WITH 158; CREATE SEQUENCE FB$OUT_SEQ; ALTER SEQUENCE FB$OUT_SEQ RESTART WITH 1; /* View: DEPTLIST, Owner: SYSDBA */ CREATE VIEW DEPTLIST ( EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE, DEPT_NO, JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY, FULL_NAME, DEPT_PATH, DEPT_KEY_PATH ) AS with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH, cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH, Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO ) Select distinct A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE, A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO ; /* View: PHONE_LIST, Owner: SYSDBA */ CREATE VIEW PHONE_LIST ( EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, LOCATION, PHONE_NO ) AS SELECT emp_no, first_name, last_name, phone_ext, location, phone_no FROM employee, department WHERE employee.dept_no = department.dept_no ; /* Add Domain Check Constraints */ ALTER DOMAIN BUDGET ADD CONSTRAINT CHECK (VALUE > 10000 AND VALUE <= 2000000); ALTER DOMAIN CUSTNO ADD CONSTRAINT CHECK (VALUE > 1000); ALTER DOMAIN DEPTNO ADD CONSTRAINT CHECK (VALUE = '000' OR (VALUE > '0' AND VALUE <= '999') OR VALUE IS NULL); ALTER DOMAIN JOBCODE ADD CONSTRAINT CHECK (VALUE > '99999'); ALTER DOMAIN JOBGRADE ADD CONSTRAINT CHECK (VALUE BETWEEN 0 AND 6); ALTER DOMAIN PONUMBER ADD CONSTRAINT CHECK (VALUE STARTING WITH 'V'); ALTER DOMAIN PRODTYPE ADD CONSTRAINT CHECK (VALUE IN ('software', 'hardware', 'other', 'N/A')); ALTER DOMAIN PROJNO ADD CONSTRAINT CHECK (VALUE = UPPER (VALUE)); ALTER DOMAIN SALARY ADD CONSTRAINT CHECK (VALUE > 0); ALTER TABLE JOB ADD CHECK (min_salary < max_salary); ALTER TABLE JOB ADD CHECK (min_salary < max_salary); ALTER TABLE EMPLOYEE ADD CHECK ( salary >= (SELECT min_salary FROM job WHERE job.job_code = employee.job_code AND job.job_grade = employee.job_grade AND job.job_country = employee.job_country) AND salary <= (SELECT max_salary FROM job WHERE job.job_code = employee.job_code AND job.job_grade = employee.job_grade AND job.job_country = employee.job_country)); ALTER TABLE PROJ_DEPT_BUDGET ADD CHECK (FISCAL_YEAR >= 1993); ALTER TABLE SALARY_HISTORY ADD CHECK (percent_change between -50 and 50); ALTER TABLE CUSTOMER ADD CHECK (on_hold IS NULL OR on_hold = '*'); ALTER TABLE SALES ADD CHECK (order_status in ('new', 'open', 'shipped', 'waiting')); ALTER TABLE SALES ADD CHECK (ship_date >= order_date OR ship_date IS NULL); ALTER TABLE SALES ADD CHECK (date_needed > order_date OR date_needed IS NULL); ALTER TABLE SALES ADD CHECK (paid in ('y', 'n')); ALTER TABLE SALES ADD CHECK (qty_ordered >= 1); ALTER TABLE SALES ADD CHECK (total_value >= 0); ALTER TABLE SALES ADD CHECK (discount >= 0 AND discount <= 1); ALTER TABLE SALES ADD CHECK (NOT (order_status = 'shipped' AND ship_date IS NULL)); ALTER TABLE SALES ADD CHECK (NOT (order_status = 'shipped' AND EXISTS (SELECT on_hold FROM customer WHERE customer.cust_no = sales.cust_no AND customer.on_hold = '*'))); /* Exceptions */ CREATE EXCEPTION CUSTOMER_CHECK 'Overdue balance -- can not ship.'; CREATE EXCEPTION CUSTOMER_ON_HOLD 'This customer is on hold.'; CREATE EXCEPTION ORDER_ALREADY_SHIPPED 'Order status is "shipped."'; CREATE EXCEPTION REASSIGN_SALES 'Reassign the sales records before deleting this employee.'; CREATE EXCEPTION UNKNOWN_EMP_ID 'Invalid employee number or project id.'; COMMIT WORK; SET AUTODDL OFF; SET TERM ^; /* Stored procedures Definitions*/ CREATE PROCEDURE SHOW_LANGS ( CODE VARCHAR(5) CHARACTER SET NONE, GRADE SMALLINT, CTY VARCHAR(15) CHARACTER SET NONE ) RETURNS ( LANGUAGES VARCHAR(15) CHARACTER SET NONE ) AS BEGIN SUSPEND; EXIT; END ^ CREATE PROCEDURE ADD_EMP_PROJ ( EMP_NO SMALLINT, PROJ_ID CHAR(5) CHARACTER SET NONE ) AS BEGIN EXIT; END ^ CREATE PROCEDURE ALL_LANGS RETURNS ( CODE VARCHAR(5) CHARACTER SET NONE, GRADE VARCHAR(5) CHARACTER SET NONE, COUNTRY VARCHAR(15) CHARACTER SET NONE, LANG VARCHAR(15) CHARACTER SET NONE ) AS BEGIN SUSPEND; EXIT; END ^ CREATE PROCEDURE DELETE_EMPLOYEE ( EMP_NUM INTEGER ) AS BEGIN EXIT; END ^ CREATE PROCEDURE DEPT_BUDGET ( DNO CHAR(3) CHARACTER SET NONE ) RETURNS ( TOT DECIMAL(12,2) ) AS BEGIN SUSPEND; EXIT; END ^ CREATE PROCEDURE GET_EMP_PROJ ( EMP_NO SMALLINT ) RETURNS ( PROJ_ID CHAR(5) CHARACTER SET NONE ) AS BEGIN SUSPEND; EXIT; END ^ CREATE PROCEDURE "Has Space" ( ARG1 INTEGER ) AS BEGIN EXIT; END ^ CREATE PROCEDURE MAIL_LABEL ( CUST_NO INTEGER ) RETURNS ( LINE1 CHAR(40) CHARACTER SET NONE, LINE2 CHAR(40) CHARACTER SET NONE, LINE3 CHAR(40) CHARACTER SET NONE, LINE4 CHAR(40) CHARACTER SET NONE, LINE5 CHAR(40) CHARACTER SET NONE, LINE6 CHAR(40) CHARACTER SET NONE ) AS BEGIN SUSPEND; EXIT; END ^ CREATE PROCEDURE ORG_CHART RETURNS ( HEAD_DEPT CHAR(25) CHARACTER SET NONE, DEPARTMENT CHAR(25) CHARACTER SET NONE, MNGR_NAME CHAR(20) CHARACTER SET NONE, TITLE CHAR(5) CHARACTER SET NONE, EMP_CNT INTEGER ) AS BEGIN SUSPEND; EXIT; END ^ CREATE PROCEDURE SHIP_ORDER ( PO_NUM CHAR(8) CHARACTER SET NONE ) AS BEGIN EXIT; END ^ CREATE PROCEDURE SUB_TOT_BUDGET ( HEAD_DEPT CHAR(3) CHARACTER SET NONE ) RETURNS ( TOT_BUDGET DECIMAL(12,2), AVG_BUDGET DECIMAL(12,2), MIN_BUDGET DECIMAL(12,2), MAX_BUDGET DECIMAL(12,2) ) AS BEGIN SUSPEND; EXIT; END ^ CREATE PROCEDURE "UC SPACE" ( ARG1 INTEGER ) AS BEGIN EXIT; END ^ CREATE PROCEDURE "iCASE" AS BEGIN EXIT; END ^ SET TERM ;^ COMMIT WORK; SET AUTODDL ON; SET TERM ^; /* Triggers only will work for SQL triggers */ CREATE TRIGGER SET_CUST_NO FOR CUSTOMER ACTIVE BEFORE INSERT POSITION 0 AS BEGIN if (new.cust_no is null) then new.cust_no = gen_id(cust_no_gen, 1); END ^ CREATE TRIGGER SET_EMP_NO FOR EMPLOYEE ACTIVE BEFORE INSERT POSITION 0 AS BEGIN if (new.emp_no is null) then new.emp_no = gen_id(emp_no_gen, 1); END ^ CREATE TRIGGER SAVE_SALARY_CHANGE FOR EMPLOYEE ACTIVE AFTER UPDATE POSITION 0 AS BEGIN IF (old.salary <> new.salary) THEN INSERT INTO salary_history (emp_no, change_date, updater_id, old_salary, percent_change) VALUES ( old.emp_no, 'NOW', user, old.salary, (new.salary - old.salary) * 100 / old.salary); END ^ CREATE TRIGGER POST_NEW_ORDER FOR SALES ACTIVE AFTER INSERT POSITION 0 AS BEGIN POST_EVENT 'new_order'; END ^ COMMIT WORK^ SET TERM ;^ COMMIT WORK; SET AUTODDL OFF; SET TERM ^; /* Stored procedure Bodies */ ALTER PROCEDURE SHOW_LANGS ( CODE VARCHAR(5) CHARACTER SET NONE, GRADE SMALLINT, CTY VARCHAR(15) CHARACTER SET NONE ) RETURNS ( LANGUAGES VARCHAR(15) CHARACTER SET NONE ) AS DECLARE VARIABLE i INTEGER; BEGIN i = 1; WHILE (i <= 5) DO BEGIN SELECT language_req[:i] FROM joB WHERE ((job_code = :code) AND (job_grade = :grade) AND (job_country = :cty) AND (language_req IS NOT NULL)) INTO :languages; IF (languages = ' ') THEN /* Prints 'NULL' instead of blanks */ languages = 'NULL'; i = i +1; SUSPEND; END END ^ ALTER PROCEDURE ADD_EMP_PROJ ( EMP_NO SMALLINT, PROJ_ID CHAR(5) CHARACTER SET NONE ) AS BEGIN BEGIN INSERT INTO employee_project (emp_no, proj_id) VALUES (:emp_no, :proj_id); WHEN SQLCODE -530 DO EXCEPTION unknown_emp_id; END END ^ ALTER PROCEDURE ALL_LANGS RETURNS ( CODE VARCHAR(5) CHARACTER SET NONE, GRADE VARCHAR(5) CHARACTER SET NONE, COUNTRY VARCHAR(15) CHARACTER SET NONE, LANG VARCHAR(15) CHARACTER SET NONE ) AS BEGIN FOR SELECT job_code, job_grade, job_country FROM job INTO :code, :grade, :country DO BEGIN FOR SELECT languages FROM show_langs (:code, :grade, :country) INTO :lang DO SUSPEND; /* Put nice separators between rows */ code = '====='; grade = '====='; country = '==============='; lang = '=============='; SUSPEND; END END ^ ALTER PROCEDURE DELETE_EMPLOYEE ( EMP_NUM INTEGER ) AS DECLARE VARIABLE any_sales INTEGER; BEGIN any_sales = 0; /* * If there are any sales records referencing this employee, * cannot delete the employee until the sales are re-assigned * to another employee or changed to NULL. */ SELECT count(po_number) FROM sales WHERE sales_rep = :emp_num INTO :any_sales; IF (any_sales > 0) THEN BEGIN EXCEPTION reassign_sales; END /* * If the employee is a manager, update the department. */ UPDATE department SET mngr_no = NULL WHERE mngr_no = :emp_num; /* * If the employee is a project leader, update project. */ UPDATE project SET team_leader = NULL WHERE team_leader = :emp_num; /* * Delete the employee from any projects. */ DELETE FROM employee_project WHERE emp_no = :emp_num; /* * Delete old salary records. */ DELETE FROM salary_history WHERE emp_no = :emp_num; /* * Delete the employee. */ DELETE FROM employee WHERE emp_no = :emp_num; END ^ ALTER PROCEDURE DEPT_BUDGET ( DNO CHAR(3) CHARACTER SET NONE ) RETURNS ( TOT DECIMAL(12,2) ) AS DECLARE VARIABLE sumb DECIMAL(12,2); DECLARE VARIABLE rdno CHAR(3); DECLARE VARIABLE cnt INTEGER; BEGIN tot = 0; SELECT budget FROM department WHERE dept_no = :dno INTO :tot; SELECT count(budget) FROM department WHERE head_dept = :dno INTO :cnt; IF (cnt = 0) THEN SUSPEND; FOR SELECT dept_no FROM department WHERE head_dept = :dno INTO :rdno DO BEGIN EXECUTE PROCEDURE dept_budget :rdno RETURNING_VALUES :sumb; tot = tot + sumb; END SUSPEND; END ^ ALTER PROCEDURE GET_EMP_PROJ ( EMP_NO SMALLINT ) RETURNS ( PROJ_ID CHAR(5) CHARACTER SET NONE ) AS BEGIN FOR SELECT proj_id FROM employee_project WHERE emp_no = :emp_no INTO :proj_id DO SUSPEND; END ^ ALTER PROCEDURE "Has Space" ( ARG1 INTEGER ) AS Begin End ^ ALTER PROCEDURE MAIL_LABEL ( CUST_NO INTEGER ) RETURNS ( LINE1 CHAR(40) CHARACTER SET NONE, LINE2 CHAR(40) CHARACTER SET NONE, LINE3 CHAR(40) CHARACTER SET NONE, LINE4 CHAR(40) CHARACTER SET NONE, LINE5 CHAR(40) CHARACTER SET NONE, LINE6 CHAR(40) CHARACTER SET NONE ) AS DECLARE VARIABLE customer VARCHAR(25); DECLARE VARIABLE first_name VARCHAR(15); DECLARE VARIABLE last_name VARCHAR(20); DECLARE VARIABLE addr1 VARCHAR(30); DECLARE VARIABLE addr2 VARCHAR(30); DECLARE VARIABLE city VARCHAR(25); DECLARE VARIABLE state VARCHAR(15); DECLARE VARIABLE country VARCHAR(15); DECLARE VARIABLE postcode VARCHAR(12); DECLARE VARIABLE cnt INTEGER; BEGIN line1 = ''; line2 = ''; line3 = ''; line4 = ''; line5 = ''; line6 = ''; SELECT customer, contact_first, contact_last, address_line1, address_line2, city, state_province, country, postal_code FROM CUSTOMER WHERE cust_no = :cust_no INTO :customer, :first_name, :last_name, :addr1, :addr2, :city, :state, :country, :postcode; IF (customer IS NOT NULL) THEN line1 = customer; IF (first_name IS NOT NULL) THEN line2 = first_name || ' ' || last_name; ELSE line2 = last_name; IF (addr1 IS NOT NULL) THEN line3 = addr1; IF (addr2 IS NOT NULL) THEN line4 = addr2; IF (country = 'USA') THEN BEGIN IF (city IS NOT NULL) THEN line5 = city || ', ' || state || ' ' || postcode; ELSE line5 = state || ' ' || postcode; END ELSE BEGIN IF (city IS NOT NULL) THEN line5 = city || ', ' || state; ELSE line5 = state; line6 = country || ' ' || postcode; END SUSPEND; END ^ ALTER PROCEDURE ORG_CHART RETURNS ( HEAD_DEPT CHAR(25) CHARACTER SET NONE, DEPARTMENT CHAR(25) CHARACTER SET NONE, MNGR_NAME CHAR(20) CHARACTER SET NONE, TITLE CHAR(5) CHARACTER SET NONE, EMP_CNT INTEGER ) AS DECLARE VARIABLE mngr_no INTEGER; DECLARE VARIABLE dno CHAR(3); BEGIN FOR SELECT h.department, d.department, d.mngr_no, d.dept_no FROM department d LEFT OUTER JOIN department h ON d.head_dept = h.dept_no ORDER BY d.dept_no INTO :head_dept, :department, :mngr_no, :dno DO BEGIN IF (:mngr_no IS NULL) THEN BEGIN mngr_name = '--TBH--'; title = ''; END ELSE SELECT full_name, job_code FROM employee WHERE emp_no = :mngr_no INTO :mngr_name, :title; SELECT COUNT(emp_no) FROM employee WHERE dept_no = :dno INTO :emp_cnt; SUSPEND; END END ^ ALTER PROCEDURE SHIP_ORDER ( PO_NUM CHAR(8) CHARACTER SET NONE ) AS DECLARE VARIABLE ord_stat CHAR(7); DECLARE VARIABLE hold_stat CHAR(1); DECLARE VARIABLE cust_no INTEGER; DECLARE VARIABLE any_po CHAR(8); BEGIN SELECT s.order_status, c.on_hold, c.cust_no FROM sales s, customer c WHERE po_number = :po_num AND s.cust_no = c.cust_no INTO :ord_stat, :hold_stat, :cust_no; /* This purchase order has been already shipped. */ IF (ord_stat = 'shipped') THEN BEGIN EXCEPTION order_already_shipped; END /* Customer is on hold. */ ELSE IF (hold_stat = '*') THEN BEGIN EXCEPTION customer_on_hold; END /* * If there is an unpaid balance on orders shipped over 2 months ago, * put the customer on hold. */ FOR SELECT po_number FROM sales WHERE cust_no = :cust_no AND order_status = 'shipped' AND paid = 'n' AND ship_date < CAST('NOW' AS TIMESTAMP) - 60 INTO :any_po DO BEGIN EXCEPTION customer_check; UPDATE customer SET on_hold = '*' WHERE cust_no = :cust_no; END /* * Ship the order. */ UPDATE sales SET order_status = 'shipped', ship_date = 'NOW' WHERE po_number = :po_num; END ^ ALTER PROCEDURE SUB_TOT_BUDGET ( HEAD_DEPT CHAR(3) CHARACTER SET NONE ) RETURNS ( TOT_BUDGET DECIMAL(12,2), AVG_BUDGET DECIMAL(12,2), MIN_BUDGET DECIMAL(12,2), MAX_BUDGET DECIMAL(12,2) ) AS BEGIN SELECT SUM(budget), AVG(budget), MIN(budget), MAX(budget) FROM department WHERE head_dept = :head_dept INTO :tot_budget, :avg_budget, :min_budget, :max_budget; SUSPEND; END ^ ALTER PROCEDURE "UC SPACE" ( ARG1 INTEGER ) AS Begin End ^ ALTER PROCEDURE "iCASE" AS Begin End ^ SET TERM ;^ COMMIT WORK; SET AUTODDL ON; /* Comments on System Objects */ COMMENT ON CHARACTER SET UTF8 IS 'Default Character set'; /* Grant Roles for this database */ /* Grant permissions for this database */ GRANT REFERENCES ON TABLE COUNTRIES TO USER BOB ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE COUNTRY TO USER PUBLIC WITH GRANT OPTION ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE CUSTOMER TO USER PUBLIC WITH GRANT OPTION ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE DEPARTMENT TO USER PUBLIC WITH GRANT OPTION ; GRANT SELECT ON TABLE EMPLOYEE TO USER ALICE WITH GRANT OPTION GRANTED BY BOB ; GRANT SELECT,Update(FIRST_NAME,LAST_NAME) ON TABLE EMPLOYEE TO USER BOB ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE EMPLOYEE TO USER PUBLIC WITH GRANT OPTION ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE EMPLOYEE_PROJECT TO USER PUBLIC WITH GRANT OPTION ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE JOB TO USER PUBLIC WITH GRANT OPTION ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE PHONE_LIST TO USER PUBLIC WITH GRANT OPTION ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE PROJECT TO USER PUBLIC WITH GRANT OPTION ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE PROJ_DEPT_BUDGET TO USER PUBLIC WITH GRANT OPTION ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE SALARY_HISTORY TO USER PUBLIC WITH GRANT OPTION ; GRANT DELETE,INSERT,REFERENCES,SELECT,UPDATE ON TABLE SALES TO USER PUBLIC WITH GRANT OPTION ; GRANT RDB$ADMIN TO ALICE; GRANT RDB$ADMIN TO BOB; GRANT EXECUTE ON PROCEDURE ADD_EMP_PROJ TO USER PUBLIC WITH GRANT OPTION ; GRANT EXECUTE ON PROCEDURE ALL_LANGS TO USER PUBLIC WITH GRANT OPTION ; GRANT EXECUTE ON PROCEDURE DELETE_EMPLOYEE TO USER PUBLIC WITH GRANT OPTION ; GRANT EXECUTE ON PROCEDURE DEPT_BUDGET TO USER PUBLIC WITH GRANT OPTION ; GRANT EXECUTE ON PROCEDURE GET_EMP_PROJ TO USER PUBLIC WITH GRANT OPTION ; GRANT EXECUTE ON PROCEDURE MAIL_LABEL TO USER PUBLIC WITH GRANT OPTION ; GRANT EXECUTE ON PROCEDURE ORG_CHART TO USER PUBLIC WITH GRANT OPTION ; GRANT EXECUTE ON PROCEDURE SHIP_ORDER TO USER PUBLIC WITH GRANT OPTION ; GRANT EXECUTE ON PROCEDURE SHOW_LANGS TO USER PUBLIC WITH GRANT OPTION ; GRANT EXECUTE ON PROCEDURE SUB_TOT_BUDGET TO USER PUBLIC WITH GRANT OPTION ; Schema written to Test10.out Run diff command returns 256 Output from diff command 1,2d0 < /* Script for ODS 11 */ < 6c4 < CREATE DATABASE 'inet://localhost//tmp/ibx-testsuite/testsuite1.fdb' PAGE_SIZE 8192 --- > /* CREATE DATABASE 'localhost:/tmp/ibx-testsuite/testsuite1.fdb' PAGE_SIZE 8192 8c6 < DEFAULT CHARACTER SET NONE; --- > DEFAULT CHARACTER SET NONE; */ 961a960 > 988a988 > 1102,1103c1102 < AS < BEGIN SUSPEND; EXIT; END --- > AS BEGIN SUSPEND; EXIT; END 1111,1112c1110 < AS < BEGIN EXIT; END --- > AS BEGIN EXIT; END 1123,1124c1121 < AS < BEGIN SUSPEND; EXIT; END --- > AS BEGIN SUSPEND; EXIT; END 1131,1132c1128 < AS < BEGIN EXIT; END --- > AS BEGIN EXIT; END 1143,1144c1139 < AS < BEGIN SUSPEND; EXIT; END --- > AS BEGIN SUSPEND; EXIT; END 1155,1156c1150 < AS < BEGIN SUSPEND; EXIT; END --- > AS BEGIN SUSPEND; EXIT; END 1163,1164c1157 < AS < BEGIN EXIT; END --- > AS BEGIN EXIT; END 1180,1181c1173 < AS < BEGIN SUSPEND; EXIT; END --- > AS BEGIN SUSPEND; EXIT; END 1193,1194c1185 < AS < BEGIN SUSPEND; EXIT; END --- > AS BEGIN SUSPEND; EXIT; END 1201,1202c1192 < AS < BEGIN EXIT; END --- > AS BEGIN EXIT; END 1216,1217c1206 < AS < BEGIN SUSPEND; EXIT; END --- > AS BEGIN SUSPEND; EXIT; END 1224,1225c1213 < AS < BEGIN EXIT; END --- > AS BEGIN EXIT; END 1229,1230c1217 < AS < BEGIN EXIT; END --- > AS BEGIN EXIT; END ------------------------------------------------------ Running Test 11: Event Handling Case #1: Deferred Event Registration Creating Database from resources/Test11.sql Set Term ^; Create Procedure CallEvent( EventName VarChar(32) ) As Begin Post_Event :EventName; End^ set term ;^ Event Called Event Handled: EVENT1, Count = 1 Event Handled: EVENT2, Count = 0 Case #2: Event Registration after DB Open Creating Database from resources/Test11.sql Set Term ^; Create Procedure CallEvent( EventName VarChar(32) ) As Begin Post_Event :EventName; End^ set term ;^ Event Called Event Handled: EVENT1, Count = 0 Event Handled: EVENT2, Count = 1 ------------------------------------------------------ Running Test 12: Test use of Services Connection Firebird Library PathName = /opt/firebird/2.5.9/lib/libfbembed.so Connect String = localhost:service_mgr Server Version = LI-V2.5.9.27139 Firebird 2.5 Server Implementation = Firebird/linux AMD64 Service Version = 2 Firebird Release = 2.5.9 (Build no. 27139) No. of attachments = 0 No. of databases = 0 Base Location = /opt/firebird/2.5.9/ Lock File Location = /tmp/firebird/ Security Database Location = /opt/firebird/2.5.9/security2.fdb Message File Location = /opt/firebird/2.5.9/ Database Statistics for employee Database "/opt/firebird/2.5.9/examples/empbuild/employee.fdb" Gstat execution time Fri Oct 20 11:30:39 2023 Database header page information: Flags 0 Checksum 12345 Generation 12351 Page size 4096 ODS version 11.2 Oldest transaction 7165 Oldest active 7441 Oldest snapshot 7441 Next transaction 7441 Bumped transaction 1 Sequence number 0 Next attachment ID 2524 Implementation ID 24 Shadow count 0 Page buffers 0 Next header page 0 Database dialect 3 Creation date Jun 17, 2019 19:37:08 Attributes force write Variable header data: *END* Database file sequence: File /opt/firebird/2.5.9/examples/empbuild/employee.fdb is the only file Analyzing database pages ... COUNTRY (128) Primary pointer page: 169, Index root page: 170 Data pages: 1, data page slots: 1, average fill: 15% Fill distribution: 0 - 19% = 1 20 - 39% = 0 40 - 59% = 0 60 - 79% = 0 80 - 99% = 0 CUSTOMER (137) Primary pointer page: 228, Index root page: 229 Data pages: 1, data page slots: 1, average fill: 52% Fill distribution: 0 - 19% = 0 20 - 39% = 0 40 - 59% = 1 60 - 79% = 0 80 - 99% = 0 DEPARTMENT (130) Primary pointer page: 184, Index root page: 185 Data pages: 1, data page slots: 1, average fill: 47% Fill distribution: 0 - 19% = 0 20 - 39% = 0 40 - 59% = 1 60 - 79% = 0 80 - 99% = 0 EMPLOYEE (131) Primary pointer page: 190, Index root page: 191 Data pages: 2, data page slots: 2, average fill: 44% Fill distribution: 0 - 19% = 1 20 - 39% = 0 40 - 59% = 0 60 - 79% = 1 80 - 99% = 0 EMPLOYEE_PROJECT (134) Primary pointer page: 207, Index root page: 208 Data pages: 1, data page slots: 1, average fill: 20% Fill distribution: 0 - 19% = 1 20 - 39% = 0 40 - 59% = 0 60 - 79% = 0 80 - 99% = 0 JOB (129) Primary pointer page: 175, Index root page: 176 Data pages: 3, data page slots: 3, average fill: 80% Fill distribution: 0 - 19% = 0 20 - 39% = 0 40 - 59% = 0 60 - 79% = 1 80 - 99% = 2 PROJECT (133) Primary pointer page: 200, Index root page: 201 Data pages: 1, data page slots: 1, average fill: 29% Fill distribution: 0 - 19% = 0 20 - 39% = 1 40 - 59% = 0 60 - 79% = 0 80 - 99% = 0 PROJ_DEPT_BUDGET (135) Primary pointer page: 213, Index root page: 214 Data pages: 1, data page slots: 1, average fill: 82% Fill distribution: 0 - 19% = 0 20 - 39% = 0 40 - 59% = 0 60 - 79% = 0 80 - 99% = 1 SALARY_HISTORY (136) Primary pointer page: 221, Index root page: 222 Data pages: 1, data page slots: 1, average fill: 61% Fill distribution: 0 - 19% = 0 20 - 39% = 0 40 - 59% = 0 60 - 79% = 1 80 - 99% = 0 SALES (138) Primary pointer page: 237, Index root page: 238 Data pages: 1, data page slots: 1, average fill: 70% Fill distribution: 0 - 19% = 0 20 - 39% = 0 40 - 59% = 0 60 - 79% = 1 80 - 99% = 0 Server Log zeus Tue Jun 9 14:31:01 2020 INET/inet_error: connect errno = 111 Online Validation 11:30:41.47 Validation started 11:30:41.47 Relation 128 (COUNTRY) 11:30:41.47 process pointer page 0 of 1 11:30:41.47 Index 1 (RDB$PRIMARY1) 11:30:41.47 Relation 128 (COUNTRY) is ok 11:30:41.47 Relation 129 (JOB) 11:30:41.47 process pointer page 0 of 1 11:30:41.47 Index 1 (RDB$PRIMARY2) 11:30:41.47 Index 2 (RDB$FOREIGN3) 11:30:41.47 Index 3 (MAXSALX) 11:30:41.47 Index 4 (MINSALX) 11:30:41.47 Relation 129 (JOB) is ok 11:30:41.47 Relation 130 (DEPARTMENT) 11:30:41.47 process pointer page 0 of 1 11:30:41.47 Index 1 (RDB$4) 11:30:41.47 Index 2 (RDB$PRIMARY5) 11:30:41.47 Index 3 (RDB$FOREIGN6) 11:30:41.47 Index 4 (BUDGETX) 11:30:41.47 Index 5 (RDB$FOREIGN10) 11:30:41.47 Relation 130 (DEPARTMENT) is ok 11:30:41.47 Relation 131 (EMPLOYEE) 11:30:41.47 process pointer page 0 of 1 11:30:41.47 Index 1 (RDB$PRIMARY7) 11:30:41.47 Index 2 (RDB$FOREIGN8) 11:30:41.47 Index 3 (RDB$FOREIGN9) 11:30:41.47 Index 4 (NAMEX) 11:30:41.47 Relation 131 (EMPLOYEE) is ok 11:30:41.47 Relation 133 (PROJECT) 11:30:41.47 process pointer page 0 of 1 11:30:41.47 Index 1 (RDB$11) 11:30:41.47 Index 2 (RDB$PRIMARY12) 11:30:41.47 Index 3 (RDB$FOREIGN13) 11:30:41.47 Index 4 (PRODTYPEX) 11:30:41.47 Relation 133 (PROJECT) is ok 11:30:41.47 Relation 134 (EMPLOYEE_PROJECT) 11:30:41.48 process pointer page 0 of 1 11:30:41.48 Index 1 (RDB$PRIMARY14) 11:30:41.48 Index 2 (RDB$FOREIGN15) 11:30:41.48 Index 3 (RDB$FOREIGN16) 11:30:41.48 Relation 134 (EMPLOYEE_PROJECT) is ok 11:30:41.48 Relation 135 (PROJ_DEPT_BUDGET) 11:30:41.48 process pointer page 0 of 1 11:30:41.48 Index 1 (RDB$PRIMARY17) 11:30:41.48 Index 2 (RDB$FOREIGN18) 11:30:41.48 Index 3 (RDB$FOREIGN19) 11:30:41.48 Relation 135 (PROJ_DEPT_BUDGET) is ok 11:30:41.48 Relation 136 (SALARY_HISTORY) 11:30:41.48 process pointer page 0 of 1 11:30:41.48 Index 1 (RDB$PRIMARY20) 11:30:41.48 Index 2 (RDB$FOREIGN21) 11:30:41.48 Index 3 (CHANGEX) 11:30:41.48 Index 4 (UPDATERX) 11:30:41.48 Relation 136 (SALARY_HISTORY) is ok 11:30:41.48 Relation 137 (CUSTOMER) 11:30:41.48 process pointer page 0 of 1 11:30:41.48 Index 1 (RDB$PRIMARY22) 11:30:41.48 Index 2 (RDB$FOREIGN23) 11:30:41.48 Index 3 (CUSTNAMEX) 11:30:41.48 Index 4 (CUSTREGION) 11:30:41.48 Relation 137 (CUSTOMER) is ok 11:30:41.49 Relation 138 (SALES) 11:30:41.49 process pointer page 0 of 1 11:30:41.49 Index 1 (RDB$PRIMARY24) 11:30:41.49 Index 2 (RDB$FOREIGN25) 11:30:41.49 Index 3 (RDB$FOREIGN26) 11:30:41.49 Index 4 (NEEDX) 11:30:41.49 Index 5 (QTYX) 11:30:41.49 Index 6 (SALESTATX) 11:30:41.49 Relation 138 (SALES) is ok 11:30:41.49 Validation finished Normal Validation Validation Completed Database Sweep Database Swept Current User List Row No = 1 UserID = 0 GroupID = 0 SEC$USER_NAME = SYSDBA SEC$FIRST_NAME = Sql SEC$MIDDLE_NAME = Server SEC$LAST_NAME = Administrator SEC$PASSWORD = NULL SEC$ADMIN = False Rows printed = 1 Add user Updated User List Row No = 1 UserID = 0 GroupID = 0 SEC$USER_NAME = SYSDBA SEC$FIRST_NAME = Sql SEC$MIDDLE_NAME = Server SEC$LAST_NAME = Administrator SEC$PASSWORD = NULL SEC$ADMIN = False Row No = 2 UserID = 0 GroupID = 0 SEC$USER_NAME = Test12Tester SEC$FIRST_NAME = NULL SEC$MIDDLE_NAME = NULL SEC$LAST_NAME = Tester SEC$PASSWORD = LetMeIn SEC$ADMIN = False Rows printed = 2 Close and re-open user list Row No = 1 UserID = 0 GroupID = 0 SEC$USER_NAME = SYSDBA SEC$FIRST_NAME = Sql SEC$MIDDLE_NAME = Server SEC$LAST_NAME = Administrator SEC$PASSWORD = NULL SEC$ADMIN = False Row No = 2 UserID = 0 GroupID = 0 SEC$USER_NAME = TEST12TESTER SEC$FIRST_NAME = SEC$MIDDLE_NAME = SEC$LAST_NAME = Tester SEC$PASSWORD = NULL SEC$ADMIN = False Rows printed = 2 Modify the new user Row No = 1 UserID = 0 GroupID = 0 SEC$USER_NAME = SYSDBA SEC$FIRST_NAME = Sql SEC$MIDDLE_NAME = Server SEC$LAST_NAME = Administrator SEC$PASSWORD = NULL SEC$ADMIN = False Row No = 2 UserID = 0 GroupID = 0 SEC$USER_NAME = TEST12TESTER SEC$FIRST_NAME = The SEC$MIDDLE_NAME = SEC$LAST_NAME = Tester SEC$PASSWORD = NULL SEC$ADMIN = False Rows printed = 2 Close and re-open user list Row No = 1 UserID = 0 GroupID = 0 SEC$USER_NAME = SYSDBA SEC$FIRST_NAME = Sql SEC$MIDDLE_NAME = Server SEC$LAST_NAME = Administrator SEC$PASSWORD = NULL SEC$ADMIN = False Row No = 2 UserID = 0 GroupID = 0 SEC$USER_NAME = TEST12TESTER SEC$FIRST_NAME = The SEC$MIDDLE_NAME = SEC$LAST_NAME = Tester SEC$PASSWORD = NULL SEC$ADMIN = False Rows printed = 2 Now delete the new user Updated User List Row No = 1 UserID = 0 GroupID = 0 SEC$USER_NAME = SYSDBA SEC$FIRST_NAME = Sql SEC$MIDDLE_NAME = Server SEC$LAST_NAME = Administrator SEC$PASSWORD = NULL SEC$ADMIN = False Rows printed = 1 Employee Database is Online = TRUE Employee Database is Online = FALSE Employee Database is Online = TRUE Starting Backup Backup Completed - File Size = 74752 bytes Restore Started Restore Completed Show the EMPLOYEE Table from the restored database Row No = 1 EMP_NO = 2 FIRST_NAME = Robert LAST_NAME = Nelson PHONE_EXT = 250 HIRE_DATE = 28/12/1988 DEPT_NO = 600 JOB_CODE = VP JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 105900 FULL_NAME = Nelson, Robert Row No = 2 EMP_NO = 4 FIRST_NAME = Bruce LAST_NAME = Young PHONE_EXT = 233 HIRE_DATE = 28/12/1988 DEPT_NO = 621 JOB_CODE = Eng JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 97500 FULL_NAME = Young, Bruce Row No = 3 EMP_NO = 5 FIRST_NAME = Kim LAST_NAME = Lambert PHONE_EXT = 22 HIRE_DATE = 06/2/1989 DEPT_NO = 130 JOB_CODE = Eng JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 102750 FULL_NAME = Lambert, Kim Row No = 4 EMP_NO = 8 FIRST_NAME = Leslie LAST_NAME = Johnson PHONE_EXT = 410 HIRE_DATE = 05/4/1989 DEPT_NO = 180 JOB_CODE = Mktg JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 64635 FULL_NAME = Johnson, Leslie Row No = 5 EMP_NO = 9 FIRST_NAME = Phil LAST_NAME = Forest PHONE_EXT = 229 HIRE_DATE = 17/4/1989 DEPT_NO = 622 JOB_CODE = Mngr JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 75060 FULL_NAME = Forest, Phil Row No = 6 EMP_NO = 11 FIRST_NAME = K. J. LAST_NAME = Weston PHONE_EXT = 34 HIRE_DATE = 17/1/1990 DEPT_NO = 130 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 86292.94 FULL_NAME = Weston, K. J. Row No = 7 EMP_NO = 12 FIRST_NAME = Terri LAST_NAME = Lee PHONE_EXT = 256 HIRE_DATE = 01/5/1990 DEPT_NO = 000 JOB_CODE = Admin JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 53793 FULL_NAME = Lee, Terri Row No = 8 EMP_NO = 14 FIRST_NAME = Stewart LAST_NAME = Hall PHONE_EXT = 227 HIRE_DATE = 04/6/1990 DEPT_NO = 900 JOB_CODE = Finan JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 69482.63 FULL_NAME = Hall, Stewart Row No = 9 EMP_NO = 15 FIRST_NAME = Katherine LAST_NAME = Young PHONE_EXT = 231 HIRE_DATE = 14/6/1990 DEPT_NO = 623 JOB_CODE = Mngr JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 67241.25 FULL_NAME = Young, Katherine Row No = 10 EMP_NO = 20 FIRST_NAME = Chris LAST_NAME = Papadopoulos PHONE_EXT = 887 HIRE_DATE = 01/1/1990 DEPT_NO = 671 JOB_CODE = Mngr JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 89655 FULL_NAME = Papadopoulos, Chris Row No = 11 EMP_NO = 24 FIRST_NAME = Pete LAST_NAME = Fisher PHONE_EXT = 888 HIRE_DATE = 12/9/1990 DEPT_NO = 671 JOB_CODE = Eng JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 81810.19 FULL_NAME = Fisher, Pete Row No = 12 EMP_NO = 28 FIRST_NAME = Ann LAST_NAME = Bennet PHONE_EXT = 5 HIRE_DATE = 01/2/1991 DEPT_NO = 120 JOB_CODE = Admin JOB_GRADE = 5 JOB_COUNTRY = England SALARY = 22935 FULL_NAME = Bennet, Ann Row No = 13 EMP_NO = 29 FIRST_NAME = Roger LAST_NAME = De Souza PHONE_EXT = 288 HIRE_DATE = 18/2/1991 DEPT_NO = 623 JOB_CODE = Eng JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 69482.63 FULL_NAME = De Souza, Roger Row No = 14 EMP_NO = 34 FIRST_NAME = Janet LAST_NAME = Baldwin PHONE_EXT = 2 HIRE_DATE = 21/3/1991 DEPT_NO = 110 JOB_CODE = Sales JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 61637.81 FULL_NAME = Baldwin, Janet Row No = 15 EMP_NO = 36 FIRST_NAME = Roger LAST_NAME = Reeves PHONE_EXT = 6 HIRE_DATE = 25/4/1991 DEPT_NO = 120 JOB_CODE = Sales JOB_GRADE = 3 JOB_COUNTRY = England SALARY = 33620.63 FULL_NAME = Reeves, Roger Row No = 16 EMP_NO = 37 FIRST_NAME = Willie LAST_NAME = Stansbury PHONE_EXT = 7 HIRE_DATE = 25/4/1991 DEPT_NO = 120 JOB_CODE = Eng JOB_GRADE = 4 JOB_COUNTRY = England SALARY = 39224.06 FULL_NAME = Stansbury, Willie Row No = 17 EMP_NO = 44 FIRST_NAME = Leslie LAST_NAME = Phong PHONE_EXT = 216 HIRE_DATE = 03/6/1991 DEPT_NO = 623 JOB_CODE = Eng JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 56034.38 FULL_NAME = Phong, Leslie Row No = 18 EMP_NO = 45 FIRST_NAME = Ashok LAST_NAME = Ramanathan PHONE_EXT = 209 HIRE_DATE = 01/8/1991 DEPT_NO = 621 JOB_CODE = Eng JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 80689.5 FULL_NAME = Ramanathan, Ashok Row No = 19 EMP_NO = 46 FIRST_NAME = Walter LAST_NAME = Steadman PHONE_EXT = 210 HIRE_DATE = 09/8/1991 DEPT_NO = 900 JOB_CODE = CFO JOB_GRADE = 1 JOB_COUNTRY = USA SALARY = 116100 FULL_NAME = Steadman, Walter Row No = 20 EMP_NO = 52 FIRST_NAME = Carol LAST_NAME = Nordstrom PHONE_EXT = 420 HIRE_DATE = 02/10/1991 DEPT_NO = 180 JOB_CODE = PRel JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 42742.5 FULL_NAME = Nordstrom, Carol Row No = 21 EMP_NO = 61 FIRST_NAME = Luke LAST_NAME = Leung PHONE_EXT = 3 HIRE_DATE = 18/2/1992 DEPT_NO = 110 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 68805 FULL_NAME = Leung, Luke Row No = 22 EMP_NO = 65 FIRST_NAME = Sue Anne LAST_NAME = O'Brien PHONE_EXT = 877 HIRE_DATE = 23/3/1992 DEPT_NO = 670 JOB_CODE = Admin JOB_GRADE = 5 JOB_COUNTRY = USA SALARY = 31275 FULL_NAME = O'Brien, Sue Anne Row No = 23 EMP_NO = 71 FIRST_NAME = Jennifer M. LAST_NAME = Burbank PHONE_EXT = 289 HIRE_DATE = 15/4/1992 DEPT_NO = 622 JOB_CODE = Eng JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 53167.5 FULL_NAME = Burbank, Jennifer M. Row No = 24 EMP_NO = 72 FIRST_NAME = Claudia LAST_NAME = Sutherland PHONE_EXT = NULL HIRE_DATE = 20/4/1992 DEPT_NO = 140 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = Canada SALARY = 100914 FULL_NAME = Sutherland, Claudia Row No = 25 EMP_NO = 83 FIRST_NAME = Dana LAST_NAME = Bishop PHONE_EXT = 290 HIRE_DATE = 01/6/1992 DEPT_NO = 621 JOB_CODE = Eng JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 62550 FULL_NAME = Bishop, Dana Row No = 26 EMP_NO = 85 FIRST_NAME = Mary S. LAST_NAME = MacDonald PHONE_EXT = 477 HIRE_DATE = 01/6/1992 DEPT_NO = 100 JOB_CODE = VP JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 111262.5 FULL_NAME = MacDonald, Mary S. Row No = 27 EMP_NO = 94 FIRST_NAME = Randy LAST_NAME = Williams PHONE_EXT = 892 HIRE_DATE = 08/8/1992 DEPT_NO = 672 JOB_CODE = Mngr JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 56295 FULL_NAME = Williams, Randy Row No = 28 EMP_NO = 105 FIRST_NAME = Oliver H. LAST_NAME = Bender PHONE_EXT = 255 HIRE_DATE = 08/10/1992 DEPT_NO = 000 JOB_CODE = CEO JOB_GRADE = 1 JOB_COUNTRY = USA SALARY = 212850 FULL_NAME = Bender, Oliver H. Row No = 29 EMP_NO = 107 FIRST_NAME = Kevin LAST_NAME = Cook PHONE_EXT = 894 HIRE_DATE = 01/2/1993 DEPT_NO = 670 JOB_CODE = Dir JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 111262.5 FULL_NAME = Cook, Kevin Row No = 30 EMP_NO = 109 FIRST_NAME = Kelly LAST_NAME = Brown PHONE_EXT = 202 HIRE_DATE = 04/2/1993 DEPT_NO = 600 JOB_CODE = Admin JOB_GRADE = 5 JOB_COUNTRY = USA SALARY = 27000 FULL_NAME = Brown, Kelly Row No = 31 EMP_NO = 110 FIRST_NAME = Yuki LAST_NAME = Ichida PHONE_EXT = 22 HIRE_DATE = 04/2/1993 DEPT_NO = 115 JOB_CODE = Eng JOB_GRADE = 3 JOB_COUNTRY = Japan SALARY = 6000000 FULL_NAME = Ichida, Yuki Row No = 32 EMP_NO = 113 FIRST_NAME = Mary LAST_NAME = Page PHONE_EXT = 845 HIRE_DATE = 12/4/1993 DEPT_NO = 671 JOB_CODE = Eng JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 48000 FULL_NAME = Page, Mary Row No = 33 EMP_NO = 114 FIRST_NAME = Bill LAST_NAME = Parker PHONE_EXT = 247 HIRE_DATE = 01/6/1993 DEPT_NO = 623 JOB_CODE = Eng JOB_GRADE = 5 JOB_COUNTRY = USA SALARY = 35000 FULL_NAME = Parker, Bill Row No = 34 EMP_NO = 118 FIRST_NAME = Takashi LAST_NAME = Yamamoto PHONE_EXT = 23 HIRE_DATE = 01/7/1993 DEPT_NO = 115 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = Japan SALARY = 7480000 FULL_NAME = Yamamoto, Takashi Row No = 35 EMP_NO = 121 FIRST_NAME = Roberto LAST_NAME = Ferrari PHONE_EXT = 1 HIRE_DATE = 12/7/1993 DEPT_NO = 125 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = Italy SALARY = 99000000 FULL_NAME = Ferrari, Roberto Row No = 36 EMP_NO = 127 FIRST_NAME = Michael LAST_NAME = Yanowski PHONE_EXT = 492 HIRE_DATE = 09/8/1993 DEPT_NO = 100 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 44000 FULL_NAME = Yanowski, Michael Row No = 37 EMP_NO = 134 FIRST_NAME = Jacques LAST_NAME = Glon PHONE_EXT = NULL HIRE_DATE = 23/8/1993 DEPT_NO = 123 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = France SALARY = 390500 FULL_NAME = Glon, Jacques Row No = 38 EMP_NO = 136 FIRST_NAME = Scott LAST_NAME = Johnson PHONE_EXT = 265 HIRE_DATE = 13/9/1993 DEPT_NO = 623 JOB_CODE = Doc JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 60000 FULL_NAME = Johnson, Scott Row No = 39 EMP_NO = 138 FIRST_NAME = T.J. LAST_NAME = Green PHONE_EXT = 218 HIRE_DATE = 01/11/1993 DEPT_NO = 621 JOB_CODE = Eng JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 36000 FULL_NAME = Green, T.J. Row No = 40 EMP_NO = 141 FIRST_NAME = Pierre LAST_NAME = Osborne PHONE_EXT = NULL HIRE_DATE = 03/1/1994 DEPT_NO = 121 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = Switzerland SALARY = 110000 FULL_NAME = Osborne, Pierre Row No = 41 EMP_NO = 144 FIRST_NAME = John LAST_NAME = Montgomery PHONE_EXT = 820 HIRE_DATE = 30/3/1994 DEPT_NO = 672 JOB_CODE = Eng JOB_GRADE = 5 JOB_COUNTRY = USA SALARY = 35000 FULL_NAME = Montgomery, John Row No = 42 EMP_NO = 145 FIRST_NAME = Mark LAST_NAME = Guckenheimer PHONE_EXT = 221 HIRE_DATE = 02/5/1994 DEPT_NO = 622 JOB_CODE = Eng JOB_GRADE = 5 JOB_COUNTRY = USA SALARY = 32000 FULL_NAME = Guckenheimer, Mark Rows printed = 42 Starting Server Side Backup Backup Completed Restore Started Restore Completed Show the EMPLOYEE Table from the restored database Row No = 1 EMP_NO = 2 FIRST_NAME = Robert LAST_NAME = Nelson PHONE_EXT = 250 HIRE_DATE = 28/12/1988 DEPT_NO = 600 JOB_CODE = VP JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 105900 FULL_NAME = Nelson, Robert Row No = 2 EMP_NO = 4 FIRST_NAME = Bruce LAST_NAME = Young PHONE_EXT = 233 HIRE_DATE = 28/12/1988 DEPT_NO = 621 JOB_CODE = Eng JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 97500 FULL_NAME = Young, Bruce Row No = 3 EMP_NO = 5 FIRST_NAME = Kim LAST_NAME = Lambert PHONE_EXT = 22 HIRE_DATE = 06/2/1989 DEPT_NO = 130 JOB_CODE = Eng JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 102750 FULL_NAME = Lambert, Kim Row No = 4 EMP_NO = 8 FIRST_NAME = Leslie LAST_NAME = Johnson PHONE_EXT = 410 HIRE_DATE = 05/4/1989 DEPT_NO = 180 JOB_CODE = Mktg JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 64635 FULL_NAME = Johnson, Leslie Row No = 5 EMP_NO = 9 FIRST_NAME = Phil LAST_NAME = Forest PHONE_EXT = 229 HIRE_DATE = 17/4/1989 DEPT_NO = 622 JOB_CODE = Mngr JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 75060 FULL_NAME = Forest, Phil Row No = 6 EMP_NO = 11 FIRST_NAME = K. J. LAST_NAME = Weston PHONE_EXT = 34 HIRE_DATE = 17/1/1990 DEPT_NO = 130 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 86292.94 FULL_NAME = Weston, K. J. Row No = 7 EMP_NO = 12 FIRST_NAME = Terri LAST_NAME = Lee PHONE_EXT = 256 HIRE_DATE = 01/5/1990 DEPT_NO = 000 JOB_CODE = Admin JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 53793 FULL_NAME = Lee, Terri Row No = 8 EMP_NO = 14 FIRST_NAME = Stewart LAST_NAME = Hall PHONE_EXT = 227 HIRE_DATE = 04/6/1990 DEPT_NO = 900 JOB_CODE = Finan JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 69482.63 FULL_NAME = Hall, Stewart Row No = 9 EMP_NO = 15 FIRST_NAME = Katherine LAST_NAME = Young PHONE_EXT = 231 HIRE_DATE = 14/6/1990 DEPT_NO = 623 JOB_CODE = Mngr JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 67241.25 FULL_NAME = Young, Katherine Row No = 10 EMP_NO = 20 FIRST_NAME = Chris LAST_NAME = Papadopoulos PHONE_EXT = 887 HIRE_DATE = 01/1/1990 DEPT_NO = 671 JOB_CODE = Mngr JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 89655 FULL_NAME = Papadopoulos, Chris Row No = 11 EMP_NO = 24 FIRST_NAME = Pete LAST_NAME = Fisher PHONE_EXT = 888 HIRE_DATE = 12/9/1990 DEPT_NO = 671 JOB_CODE = Eng JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 81810.19 FULL_NAME = Fisher, Pete Row No = 12 EMP_NO = 28 FIRST_NAME = Ann LAST_NAME = Bennet PHONE_EXT = 5 HIRE_DATE = 01/2/1991 DEPT_NO = 120 JOB_CODE = Admin JOB_GRADE = 5 JOB_COUNTRY = England SALARY = 22935 FULL_NAME = Bennet, Ann Row No = 13 EMP_NO = 29 FIRST_NAME = Roger LAST_NAME = De Souza PHONE_EXT = 288 HIRE_DATE = 18/2/1991 DEPT_NO = 623 JOB_CODE = Eng JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 69482.63 FULL_NAME = De Souza, Roger Row No = 14 EMP_NO = 34 FIRST_NAME = Janet LAST_NAME = Baldwin PHONE_EXT = 2 HIRE_DATE = 21/3/1991 DEPT_NO = 110 JOB_CODE = Sales JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 61637.81 FULL_NAME = Baldwin, Janet Row No = 15 EMP_NO = 36 FIRST_NAME = Roger LAST_NAME = Reeves PHONE_EXT = 6 HIRE_DATE = 25/4/1991 DEPT_NO = 120 JOB_CODE = Sales JOB_GRADE = 3 JOB_COUNTRY = England SALARY = 33620.63 FULL_NAME = Reeves, Roger Row No = 16 EMP_NO = 37 FIRST_NAME = Willie LAST_NAME = Stansbury PHONE_EXT = 7 HIRE_DATE = 25/4/1991 DEPT_NO = 120 JOB_CODE = Eng JOB_GRADE = 4 JOB_COUNTRY = England SALARY = 39224.06 FULL_NAME = Stansbury, Willie Row No = 17 EMP_NO = 44 FIRST_NAME = Leslie LAST_NAME = Phong PHONE_EXT = 216 HIRE_DATE = 03/6/1991 DEPT_NO = 623 JOB_CODE = Eng JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 56034.38 FULL_NAME = Phong, Leslie Row No = 18 EMP_NO = 45 FIRST_NAME = Ashok LAST_NAME = Ramanathan PHONE_EXT = 209 HIRE_DATE = 01/8/1991 DEPT_NO = 621 JOB_CODE = Eng JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 80689.5 FULL_NAME = Ramanathan, Ashok Row No = 19 EMP_NO = 46 FIRST_NAME = Walter LAST_NAME = Steadman PHONE_EXT = 210 HIRE_DATE = 09/8/1991 DEPT_NO = 900 JOB_CODE = CFO JOB_GRADE = 1 JOB_COUNTRY = USA SALARY = 116100 FULL_NAME = Steadman, Walter Row No = 20 EMP_NO = 52 FIRST_NAME = Carol LAST_NAME = Nordstrom PHONE_EXT = 420 HIRE_DATE = 02/10/1991 DEPT_NO = 180 JOB_CODE = PRel JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 42742.5 FULL_NAME = Nordstrom, Carol Row No = 21 EMP_NO = 61 FIRST_NAME = Luke LAST_NAME = Leung PHONE_EXT = 3 HIRE_DATE = 18/2/1992 DEPT_NO = 110 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 68805 FULL_NAME = Leung, Luke Row No = 22 EMP_NO = 65 FIRST_NAME = Sue Anne LAST_NAME = O'Brien PHONE_EXT = 877 HIRE_DATE = 23/3/1992 DEPT_NO = 670 JOB_CODE = Admin JOB_GRADE = 5 JOB_COUNTRY = USA SALARY = 31275 FULL_NAME = O'Brien, Sue Anne Row No = 23 EMP_NO = 71 FIRST_NAME = Jennifer M. LAST_NAME = Burbank PHONE_EXT = 289 HIRE_DATE = 15/4/1992 DEPT_NO = 622 JOB_CODE = Eng JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 53167.5 FULL_NAME = Burbank, Jennifer M. Row No = 24 EMP_NO = 72 FIRST_NAME = Claudia LAST_NAME = Sutherland PHONE_EXT = NULL HIRE_DATE = 20/4/1992 DEPT_NO = 140 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = Canada SALARY = 100914 FULL_NAME = Sutherland, Claudia Row No = 25 EMP_NO = 83 FIRST_NAME = Dana LAST_NAME = Bishop PHONE_EXT = 290 HIRE_DATE = 01/6/1992 DEPT_NO = 621 JOB_CODE = Eng JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 62550 FULL_NAME = Bishop, Dana Row No = 26 EMP_NO = 85 FIRST_NAME = Mary S. LAST_NAME = MacDonald PHONE_EXT = 477 HIRE_DATE = 01/6/1992 DEPT_NO = 100 JOB_CODE = VP JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 111262.5 FULL_NAME = MacDonald, Mary S. Row No = 27 EMP_NO = 94 FIRST_NAME = Randy LAST_NAME = Williams PHONE_EXT = 892 HIRE_DATE = 08/8/1992 DEPT_NO = 672 JOB_CODE = Mngr JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 56295 FULL_NAME = Williams, Randy Row No = 28 EMP_NO = 105 FIRST_NAME = Oliver H. LAST_NAME = Bender PHONE_EXT = 255 HIRE_DATE = 08/10/1992 DEPT_NO = 000 JOB_CODE = CEO JOB_GRADE = 1 JOB_COUNTRY = USA SALARY = 212850 FULL_NAME = Bender, Oliver H. Row No = 29 EMP_NO = 107 FIRST_NAME = Kevin LAST_NAME = Cook PHONE_EXT = 894 HIRE_DATE = 01/2/1993 DEPT_NO = 670 JOB_CODE = Dir JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 111262.5 FULL_NAME = Cook, Kevin Row No = 30 EMP_NO = 109 FIRST_NAME = Kelly LAST_NAME = Brown PHONE_EXT = 202 HIRE_DATE = 04/2/1993 DEPT_NO = 600 JOB_CODE = Admin JOB_GRADE = 5 JOB_COUNTRY = USA SALARY = 27000 FULL_NAME = Brown, Kelly Row No = 31 EMP_NO = 110 FIRST_NAME = Yuki LAST_NAME = Ichida PHONE_EXT = 22 HIRE_DATE = 04/2/1993 DEPT_NO = 115 JOB_CODE = Eng JOB_GRADE = 3 JOB_COUNTRY = Japan SALARY = 6000000 FULL_NAME = Ichida, Yuki Row No = 32 EMP_NO = 113 FIRST_NAME = Mary LAST_NAME = Page PHONE_EXT = 845 HIRE_DATE = 12/4/1993 DEPT_NO = 671 JOB_CODE = Eng JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 48000 FULL_NAME = Page, Mary Row No = 33 EMP_NO = 114 FIRST_NAME = Bill LAST_NAME = Parker PHONE_EXT = 247 HIRE_DATE = 01/6/1993 DEPT_NO = 623 JOB_CODE = Eng JOB_GRADE = 5 JOB_COUNTRY = USA SALARY = 35000 FULL_NAME = Parker, Bill Row No = 34 EMP_NO = 118 FIRST_NAME = Takashi LAST_NAME = Yamamoto PHONE_EXT = 23 HIRE_DATE = 01/7/1993 DEPT_NO = 115 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = Japan SALARY = 7480000 FULL_NAME = Yamamoto, Takashi Row No = 35 EMP_NO = 121 FIRST_NAME = Roberto LAST_NAME = Ferrari PHONE_EXT = 1 HIRE_DATE = 12/7/1993 DEPT_NO = 125 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = Italy SALARY = 99000000 FULL_NAME = Ferrari, Roberto Row No = 36 EMP_NO = 127 FIRST_NAME = Michael LAST_NAME = Yanowski PHONE_EXT = 492 HIRE_DATE = 09/8/1993 DEPT_NO = 100 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 44000 FULL_NAME = Yanowski, Michael Row No = 37 EMP_NO = 134 FIRST_NAME = Jacques LAST_NAME = Glon PHONE_EXT = NULL HIRE_DATE = 23/8/1993 DEPT_NO = 123 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = France SALARY = 390500 FULL_NAME = Glon, Jacques Row No = 38 EMP_NO = 136 FIRST_NAME = Scott LAST_NAME = Johnson PHONE_EXT = 265 HIRE_DATE = 13/9/1993 DEPT_NO = 623 JOB_CODE = Doc JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 60000 FULL_NAME = Johnson, Scott Row No = 39 EMP_NO = 138 FIRST_NAME = T.J. LAST_NAME = Green PHONE_EXT = 218 HIRE_DATE = 01/11/1993 DEPT_NO = 621 JOB_CODE = Eng JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 36000 FULL_NAME = Green, T.J. Row No = 40 EMP_NO = 141 FIRST_NAME = Pierre LAST_NAME = Osborne PHONE_EXT = NULL HIRE_DATE = 03/1/1994 DEPT_NO = 121 JOB_CODE = SRep JOB_GRADE = 4 JOB_COUNTRY = Switzerland SALARY = 110000 FULL_NAME = Osborne, Pierre Row No = 41 EMP_NO = 144 FIRST_NAME = John LAST_NAME = Montgomery PHONE_EXT = 820 HIRE_DATE = 30/3/1994 DEPT_NO = 672 JOB_CODE = Eng JOB_GRADE = 5 JOB_COUNTRY = USA SALARY = 35000 FULL_NAME = Montgomery, John Row No = 42 EMP_NO = 145 FIRST_NAME = Mark LAST_NAME = Guckenheimer PHONE_EXT = 221 HIRE_DATE = 02/5/1994 DEPT_NO = 622 JOB_CODE = Eng JOB_GRADE = 5 JOB_COUNTRY = USA SALARY = 32000 FULL_NAME = Guckenheimer, Mark Rows printed = 42 ------------------------------------------------------ Running Test 13: Open and read from Employee Database with ISQLMonitor Row No = 1 EMP_NO = 12 FIRST_NAME = Terri LAST_NAME = Lee PHONE_EXT = 256 HIRE_DATE = 01/5/1990 DEPT_NO = 000 JOB_CODE = Admin JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 53793 FULL_NAME = Lee, Terri DEPT_PATH = Corporate Headquarters DEPT_KEY_PATH = 000 Row No = 2 EMP_NO = 105 FIRST_NAME = Oliver H. LAST_NAME = Bender PHONE_EXT = 255 HIRE_DATE = 08/10/1992 DEPT_NO = 000 JOB_CODE = CEO JOB_GRADE = 1 JOB_COUNTRY = USA SALARY = 212850 FULL_NAME = Bender, Oliver H. DEPT_PATH = Corporate Headquarters DEPT_KEY_PATH = 000 Rows printed = 2 Current memory = 970,592 Delta memory = 9,232 Max memory = 1,013,352 Elapsed time= 0.001 sec Cpu = 0.000 sec Buffers = 75 Reads = 2 Writes = 0 Fetches = 10 Selects = 0 Inserts = 0 Updates = 0 Deletes = 0 Reconnect Row No = 1 EMP_NO = 12 FIRST_NAME = Terri LAST_NAME = Lee PHONE_EXT = 256 HIRE_DATE = 01/5/1990 DEPT_NO = 000 JOB_CODE = Admin JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 53793 FULL_NAME = Lee, Terri DEPT_PATH = Corporate Headquarters DEPT_KEY_PATH = 000 Row No = 2 EMP_NO = 105 FIRST_NAME = Oliver H. LAST_NAME = Bender PHONE_EXT = 255 HIRE_DATE = 08/10/1992 DEPT_NO = 000 JOB_CODE = CEO JOB_GRADE = 1 JOB_COUNTRY = USA SALARY = 212850 FULL_NAME = Bender, Oliver H. DEPT_PATH = Corporate Headquarters DEPT_KEY_PATH = 000 Rows printed = 2 35 ISQL Monitor Messages Received (Monitoring Disabled) 35 ISQL Monitor Messages written *Monitor* [Application: IBX Test Suite] Test_Database_13: [Connect] *Monitor* [Application: IBX Test Suite] Test_Transaction_13: [Start transaction] *Monitor* [Application: IBX Test Suite] : [Prepare] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO Plan: PLAN JOIN ((DEPTS DEPARTMENT INDEX (RDB$FOREIGN6)) PLAN (DEPTS D INDEX (RDB$FOREIGN6)), A INDEX (RDB$FOREIGN8)) *Monitor* [Application: IBX Test Suite] : [Start transaction] *Monitor* [Application: IBX Test Suite] : [Prepare] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null) Plan: PLAN JOIN (JOIN (R INDEX (RDB$INDEX_4), F INDEX (RDB$INDEX_2)), JOIN (X C INDEX (RDB$INDEX_42), X S INDEX (RDB$INDEX_6))) *Monitor* [Application: IBX Test Suite] : [Execute] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null) RELATION = EMPLOYEE *Monitor* [Application: IBX Test Suite] : [Fetch] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null) *Monitor* [Application: IBX Test Suite] : [Fetch] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null) *Monitor* [Application: IBX Test Suite] : [Fetch] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null) *Monitor* [Application: IBX Test Suite] : [Fetch] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null) SEOFReached *Monitor* [Application: IBX Test Suite] : [Commit (Hard commit)] *Monitor* [Application: IBX Test Suite] : [Execute] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO *Monitor* [Application: IBX Test Suite] : [Fetch] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO *Monitor* [Application: IBX Test Suite] : [Fetch] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO *Monitor* [Application: IBX Test Suite] : [Fetch] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO SEOFReached *Monitor* [Application: IBX Test Suite] Test_Transaction_13: [Commit (Hard commit)] *Monitor* [Application: IBX Test Suite] Test_Database_13: [Disconnect] *Monitor* [Application: IBX Test Suite] Test_Database_13: [Connect] *Monitor* [Application: IBX Test Suite] Test_Transaction_13: [Start transaction] *Monitor* [Application: IBX Test Suite] : [Prepare] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO Plan: PLAN JOIN ((DEPTS DEPARTMENT INDEX (RDB$FOREIGN6)) PLAN (DEPTS D INDEX (RDB$FOREIGN6)), A INDEX (RDB$FOREIGN8)) *Monitor* [Application: IBX Test Suite] : [Start transaction] *Monitor* [Application: IBX Test Suite] : [Prepare] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null) Plan: PLAN JOIN (JOIN (R INDEX (RDB$INDEX_4), F INDEX (RDB$INDEX_2)), JOIN (X C INDEX (RDB$INDEX_42), X S INDEX (RDB$INDEX_6))) *Monitor* [Application: IBX Test Suite] : [Execute] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null) RELATION = EMPLOYEE *Monitor* [Application: IBX Test Suite] : [Fetch] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null) *Monitor* [Application: IBX Test Suite] : [Fetch] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null) *Monitor* [Application: IBX Test Suite] : [Fetch] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null) *Monitor* [Application: IBX Test Suite] : [Fetch] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null) SEOFReached *Monitor* [Application: IBX Test Suite] : [Commit (Hard commit)] *Monitor* [Application: IBX Test Suite] : [Execute] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO *Monitor* [Application: IBX Test Suite] : [Fetch] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO *Monitor* [Application: IBX Test Suite] : [Fetch] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO *Monitor* [Application: IBX Test Suite] : [Fetch] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO SEOFReached *Monitor* [Application: IBX Test Suite] Test_Transaction_13: [Commit (Hard commit)] *Monitor* [Application: IBX Test Suite] Test_Database_13: [Disconnect] *Monitor* [Application: IBX Test Suite] Monitoring Disabled 35 ISQL Monitor Messages Received ------------------------------------------------------ Running Test 14: Open and read from Employee Database with ISQLMonitor and external monitor Row No = 1 EMP_NO = 12 FIRST_NAME = Terri LAST_NAME = Lee PHONE_EXT = 256 HIRE_DATE = 01/5/1990 DEPT_NO = 000 JOB_CODE = Admin JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 53793 FULL_NAME = Lee, Terri DEPT_PATH = Corporate Headquarters DEPT_KEY_PATH = 000 Row No = 2 EMP_NO = 105 FIRST_NAME = Oliver H. LAST_NAME = Bender PHONE_EXT = 255 HIRE_DATE = 08/10/1992 DEPT_NO = 000 JOB_CODE = CEO JOB_GRADE = 1 JOB_COUNTRY = USA SALARY = 212850 FULL_NAME = Bender, Oliver H. DEPT_PATH = Corporate Headquarters DEPT_KEY_PATH = 000 Rows printed = 2 Current memory = 970,592 Delta memory = 9,232 Max memory = 1,013,352 Elapsed time= 0.105 sec Cpu = 0.000 sec Buffers = 75 Reads = 2 Writes = 0 Fetches = 10 Selects = 0 Inserts = 0 Updates = 0 Deletes = 0 Reconnect Row No = 1 EMP_NO = 12 FIRST_NAME = Terri LAST_NAME = Lee PHONE_EXT = 256 HIRE_DATE = 01/5/1990 DEPT_NO = 000 JOB_CODE = Admin JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 53793 FULL_NAME = Lee, Terri DEPT_PATH = Corporate Headquarters DEPT_KEY_PATH = 000 Row No = 2 EMP_NO = 105 FIRST_NAME = Oliver H. LAST_NAME = Bender PHONE_EXT = 255 HIRE_DATE = 08/10/1992 DEPT_NO = 000 JOB_CODE = CEO JOB_GRADE = 1 JOB_COUNTRY = USA SALARY = 212850 FULL_NAME = Bender, Oliver H. DEPT_PATH = Corporate Headquarters DEPT_KEY_PATH = 000 Rows printed = 2 35 ISQL Monitor Messages written *Monitor* [Application: IBX Test Suite] Test_Database_14: [Connect] *Monitor* [Application: IBX Test Suite] Test_Transaction_14: [Start transaction] *Monitor* [Application: IBX Test Suite] : [Prepare] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO Plan: PLAN JOIN ((DEPTS DEPARTMENT INDEX (RDB$FOREIGN6)) PLAN (DEPTS D INDEX (RDB$FOREIGN6)), A INDEX (RDB$FOREIGN8)) *Monitor* [Application: IBX Test Suite] : [Start transaction] *Monitor* [Application: IBX Test Suite] : [Prepare] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null) Plan: PLAN JOIN (JOIN (R INDEX (RDB$INDEX_4), F INDEX (RDB$INDEX_2)), JOIN (X C INDEX (RDB$INDEX_42), X S INDEX (RDB$INDEX_6))) *Monitor* [Application: IBX Test Suite] : [Execute] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null) RELATION = EMPLOYEE *Monitor* [Application: IBX Test Suite] : [Fetch] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null) *Monitor* [Application: IBX Test Suite] : [Fetch] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null) *Monitor* [Application: IBX Test Suite] : [Fetch] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null) *Monitor* [Application: IBX Test Suite] : [Fetch] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null) SEOFReached *Monitor* [Application: IBX Test Suite] : [Commit (Hard commit)] *Monitor* [Application: IBX Test Suite] : [Execute] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO *Monitor* [Application: IBX Test Suite] : [Fetch] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO *Monitor* [Application: IBX Test Suite] : [Fetch] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO *Monitor* [Application: IBX Test Suite] : [Fetch] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO SEOFReached *Monitor* [Application: IBX Test Suite] Test_Transaction_14: [Commit (Hard commit)] *Monitor* [Application: IBX Test Suite] Test_Database_14: [Disconnect] *Monitor* [Application: IBX Test Suite] Test_Database_14: [Connect] *Monitor* [Application: IBX Test Suite] Test_Transaction_14: [Start transaction] *Monitor* [Application: IBX Test Suite] : [Prepare] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO Plan: PLAN JOIN ((DEPTS DEPARTMENT INDEX (RDB$FOREIGN6)) PLAN (DEPTS D INDEX (RDB$FOREIGN6)), A INDEX (RDB$FOREIGN8)) *Monitor* [Application: IBX Test Suite] : [Start transaction] *Monitor* [Application: IBX Test Suite] : [Prepare] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null) Plan: PLAN JOIN (JOIN (R INDEX (RDB$INDEX_4), F INDEX (RDB$INDEX_2)), JOIN (X C INDEX (RDB$INDEX_42), X S INDEX (RDB$INDEX_6))) *Monitor* [Application: IBX Test Suite] : [Execute] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null) RELATION = EMPLOYEE *Monitor* [Application: IBX Test Suite] : [Fetch] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null) *Monitor* [Application: IBX Test Suite] : [Fetch] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null) *Monitor* [Application: IBX Test Suite] : [Fetch] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null) *Monitor* [Application: IBX Test Suite] : [Fetch] Select F.RDB$COMPUTED_BLR,F.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME, X.RDB$CONSTRAINT_TYPE from RDB$RELATION_FIELDS R JOIN RDB$FIELDS F on R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME Left Outer Join (Select C.RDB$RELATION_NAME, S.RDB$FIELD_NAME, C.RDB$CONSTRAINT_TYPE From RDB$RELATION_CONSTRAINTS C JOIN RDB$INDEX_SEGMENTS S On C.RDB$INDEX_NAME = S.RDB$INDEX_NAME Where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') X On X.RDB$RELATION_NAME = R.RDB$RELATION_NAME and X.RDB$FIELD_NAME = R.RDB$FIELD_NAME where R.RDB$RELATION_NAME = :RELATION and ( F.RDB$COMPUTED_BLR is not NULL or F.RDB$DEFAULT_VALUE is not NULL or X.RDB$CONSTRAINT_TYPE is not null) SEOFReached *Monitor* [Application: IBX Test Suite] : [Commit (Hard commit)] *Monitor* [Application: IBX Test Suite] : [Execute] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO *Monitor* [Application: IBX Test Suite] : [Fetch] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO *Monitor* [Application: IBX Test Suite] : [Fetch] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO *Monitor* [Application: IBX Test Suite] : [Fetch] with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO )Select First 2 A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO SEOFReached *Monitor* [Application: IBX Test Suite] Test_Transaction_14: [Commit (Hard commit)] *Monitor* [Application: IBX Test Suite] Test_Database_14: [Disconnect] *Monitor* [Application: IBX Test Suite] Monitoring Disabled 35 ISQL Monitor Messages Received ------------------------------------------------------ Skipping 15 ------------------------------------------------------ Running Test 16: TIBTable in master/detail relationship Department No 000 Selected Row No = 1 EMP_NO = 12 FIRST_NAME = Terri LAST_NAME = Lee PHONE_EXT = 256 HIRE_DATE = 01/5/1990 DEPT_NO = 000 JOB_CODE = Admin JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 53793 FULL_NAME = Lee, Terri Row No = 2 EMP_NO = 105 FIRST_NAME = Oliver H. LAST_NAME = Bender PHONE_EXT = 255 HIRE_DATE = 08/10/1992 DEPT_NO = 000 JOB_CODE = CEO JOB_GRADE = 1 JOB_COUNTRY = USA SALARY = 212850 FULL_NAME = Bender, Oliver H. Rows printed = 2 Department No 600 Selected Row No = 1 EMP_NO = 2 FIRST_NAME = Robert LAST_NAME = Nelson PHONE_EXT = 250 HIRE_DATE = 28/12/1988 DEPT_NO = 600 JOB_CODE = VP JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 105900 FULL_NAME = Nelson, Robert Row No = 2 EMP_NO = 109 FIRST_NAME = Kelly LAST_NAME = Brown PHONE_EXT = 202 HIRE_DATE = 04/2/1993 DEPT_NO = 600 JOB_CODE = Admin JOB_GRADE = 5 JOB_COUNTRY = USA SALARY = 27000 FULL_NAME = Brown, Kelly Rows printed = 2 Department No 621 Selected Row No = 1 EMP_NO = 4 FIRST_NAME = Bruce LAST_NAME = Young PHONE_EXT = 233 HIRE_DATE = 28/12/1988 DEPT_NO = 621 JOB_CODE = Eng JOB_GRADE = 2 JOB_COUNTRY = USA SALARY = 97500 FULL_NAME = Young, Bruce Row No = 2 EMP_NO = 45 FIRST_NAME = Ashok LAST_NAME = Ramanathan PHONE_EXT = 209 HIRE_DATE = 01/8/1991 DEPT_NO = 621 JOB_CODE = Eng JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 80689.5 FULL_NAME = Ramanathan, Ashok Row No = 3 EMP_NO = 83 FIRST_NAME = Dana LAST_NAME = Bishop PHONE_EXT = 290 HIRE_DATE = 01/6/1992 DEPT_NO = 621 JOB_CODE = Eng JOB_GRADE = 3 JOB_COUNTRY = USA SALARY = 62550 FULL_NAME = Bishop, Dana Row No = 4 EMP_NO = 138 FIRST_NAME = T.J. LAST_NAME = Green PHONE_EXT = 218 HIRE_DATE = 01/11/1993 DEPT_NO = 621 JOB_CODE = Eng JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 36000 FULL_NAME = Green, T.J. Rows printed = 4 Update Row with Computed Field EMP_NO = 138 FIRST_NAME = Boris LAST_NAME = Green PHONE_EXT = 218 HIRE_DATE = 01/11/1993 DEPT_NO = 621 JOB_CODE = Eng JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 36000 FULL_NAME = Green, Boris ------------------------------------------------------ Running Test 17: TIBDataset Tests Creating Database from resources/Test17.sql Create Table IBDataSetTest ( KeyField Integer not null, PlainText VarChar(128), TextAndKey Computed By (KeyField || ': ' || PlainText), ServerSideText VarChar(256), Primary Key (KeyField) ); Create Generator AGenerator; Create Trigger BeforeInsertTest for IBDataSetTest Before Insert or Update As Begin new.ServerSideText = new.KeyField || ' - ' || new.PlainText; End FIBDataSet1: Simple Append KEYFIELD = 1 PLAINTEXT = This is a test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 1: This is a test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 1 - This is a test (Charset = UTF8 Codepage = 65001) After Refresh KEYFIELD = 1 PLAINTEXT = This is a test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 1: This is a test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 1 - This is a test (Charset = UTF8 Codepage = 65001) Append and Update KEYFIELD = 2 PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 2: This is another test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 2 - This is another test (Charset = UTF8 Codepage = 65001) KEYFIELD = 2 PLAINTEXT = This is the update test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 2: This is the update test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 2 - This is the update test (Charset = UTF8 Codepage = 65001) Show whole Dataset Row No = 1 KEYFIELD = 1 PLAINTEXT = This is a test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 1: This is a test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 1 - This is a test (Charset = UTF8 Codepage = 65001) Row No = 2 KEYFIELD = 2 PLAINTEXT = This is the update test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 2: This is the update test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 2 - This is the update test (Charset = UTF8 Codepage = 65001) Rows printed = 2 Now delete the first row Row No = 1 KEYFIELD = 2 PLAINTEXT = This is the update test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 2: This is the update test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 2 - This is the update test (Charset = UTF8 Codepage = 65001) Rows printed = 1 On Post KeyField Assignment KEYFIELD = NULL PLAINTEXT = On Post KeyField test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = NULL SERVERSIDETEXT = NULL Row data after post KEYFIELD = 3 PLAINTEXT = On Post KeyField test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 3: On Post KeyField test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 3 - On Post KeyField test (Charset = UTF8 Codepage = 65001) Catch a Post Error - duplicate key Post Error Called: Engine Code: 335544665 violation of PRIMARY or UNIQUE KEY constraint "INTEG_2" on table "IBDATASETTEST" -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 ------------------------------------------------------ Running Test 18: Cached Updates Creating Database from resources/Test18.sql Create Table IBDataSetTest ( KeyField Integer not null, PlainText VarChar(128), TextAndKey Computed By (KeyField || ': ' || PlainText), ServerSideText VarChar(256), Primary Key (KeyField) ); Create Generator AGenerator; Create Trigger BeforeInsertTest for IBDataSetTest Before Insert or Update As Begin new.ServerSideText = new.KeyField || ' - ' || new.PlainText; End Print Dataset for IBTestData Dataset Empty Rows printed = 0 Unidirectional caching = FALSE Simple Append i.e. caching of inserted records and cancel Print Dataset for IBTestData Row No = 1 KEYFIELD = 1 PLAINTEXT = This is a test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = NULL SERVERSIDETEXT = NULL Row No = 2 KEYFIELD = 2 PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = NULL SERVERSIDETEXT = NULL Rows printed = 2 Cancel Updates Print Dataset for IBTestData Dataset Empty Rows printed = 0 Now reopen and show empty Print Dataset for IBTestData Dataset Empty Rows printed = 0 Simple Append i.e. caching of inserted records and apply updates Print Dataset for IBTestData Row No = 1 KEYFIELD = 3 PLAINTEXT = This is a test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = NULL SERVERSIDETEXT = NULL Row No = 2 KEYFIELD = 4 PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = NULL SERVERSIDETEXT = NULL Row No = 3 KEYFIELD = 5 PLAINTEXT = And another (Charset = UTF8 Codepage = 65001) TEXTANDKEY = NULL SERVERSIDETEXT = NULL Rows printed = 3 Apply Updates Update Record Called for ukInsert KEYFIELD = 3 PLAINTEXT = This is a test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = NULL SERVERSIDETEXT = NULL Update Record Called for ukInsert KEYFIELD = 4 PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = NULL SERVERSIDETEXT = NULL Update Record Called for ukInsert KEYFIELD = 5 PLAINTEXT = And another (Charset = UTF8 Codepage = 65001) TEXTANDKEY = NULL SERVERSIDETEXT = NULL Print Dataset for IBTestData Row No = 1 KEYFIELD = 3 PLAINTEXT = This is a test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 3: This is a test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 3 - This is a test (Charset = UTF8 Codepage = 65001) Row No = 2 KEYFIELD = 4 PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 4: This is another test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 4 - This is another test (Charset = UTF8 Codepage = 65001) Row No = 3 KEYFIELD = 5 PLAINTEXT = And another (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 5: And another (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 5 - And another (Charset = UTF8 Codepage = 65001) Rows printed = 3 Now reopen and show still there Print Dataset for IBTestData Row No = 1 KEYFIELD = 3 PLAINTEXT = This is a test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 3: This is a test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 3 - This is a test (Charset = UTF8 Codepage = 65001) Row No = 2 KEYFIELD = 4 PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 4: This is another test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 4 - This is another test (Charset = UTF8 Codepage = 65001) Row No = 3 KEYFIELD = 5 PLAINTEXT = And another (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 5: And another (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 5 - And another (Charset = UTF8 Codepage = 65001) Rows printed = 3 Update of First and Last records and cancel Print Dataset for IBTestData Row No = 1 KEYFIELD = 3 PLAINTEXT = This is an updated test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 3: This is a test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 3 - This is a test (Charset = UTF8 Codepage = 65001) Row No = 2 KEYFIELD = 4 PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 4: This is another test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 4 - This is another test (Charset = UTF8 Codepage = 65001) Row No = 3 KEYFIELD = 5 PLAINTEXT = This is another updated test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 5: And another (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 5 - And another (Charset = UTF8 Codepage = 65001) Rows printed = 3 Cancel Updates Print Dataset for IBTestData Row No = 1 KEYFIELD = 3 PLAINTEXT = This is a test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 3: This is a test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 3 - This is a test (Charset = UTF8 Codepage = 65001) Row No = 2 KEYFIELD = 4 PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 4: This is another test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 4 - This is another test (Charset = UTF8 Codepage = 65001) Row No = 3 KEYFIELD = 5 PLAINTEXT = And another (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 5: And another (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 5 - And another (Charset = UTF8 Codepage = 65001) Rows printed = 3 Now reopen and show no change Print Dataset for IBTestData Row No = 1 KEYFIELD = 3 PLAINTEXT = This is a test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 3: This is a test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 3 - This is a test (Charset = UTF8 Codepage = 65001) Row No = 2 KEYFIELD = 4 PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 4: This is another test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 4 - This is another test (Charset = UTF8 Codepage = 65001) Row No = 3 KEYFIELD = 5 PLAINTEXT = And another (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 5: And another (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 5 - And another (Charset = UTF8 Codepage = 65001) Rows printed = 3 Update of First and Last records and apply Print Dataset for IBTestData Row No = 1 KEYFIELD = 3 PLAINTEXT = This is an updated test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 3: This is a test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 3 - This is a test (Charset = UTF8 Codepage = 65001) Row No = 2 KEYFIELD = 4 PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 4: This is another test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 4 - This is another test (Charset = UTF8 Codepage = 65001) Row No = 3 KEYFIELD = 5 PLAINTEXT = This is another updated test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 5: And another (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 5 - And another (Charset = UTF8 Codepage = 65001) Rows printed = 3 Apply Updates Update Record Called for ukModify KEYFIELD = 3 PLAINTEXT = This is an updated test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 3: This is a test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 3 - This is a test (Charset = UTF8 Codepage = 65001) Update Record Called for ukModify KEYFIELD = 5 PLAINTEXT = This is another updated test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 5: And another (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 5 - And another (Charset = UTF8 Codepage = 65001) Print Dataset for IBTestData Row No = 1 KEYFIELD = 3 PLAINTEXT = This is an updated test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 3: This is an updated test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 3 - This is an updated test (Charset = UTF8 Codepage = 65001) Row No = 2 KEYFIELD = 4 PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 4: This is another test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 4 - This is another test (Charset = UTF8 Codepage = 65001) Row No = 3 KEYFIELD = 5 PLAINTEXT = This is another updated test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 5: This is another updated test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 5 - This is another updated test (Charset = UTF8 Codepage = 65001) Rows printed = 3 Now reopen and show still there Print Dataset for IBTestData Row No = 1 KEYFIELD = 3 PLAINTEXT = This is an updated test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 3: This is an updated test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 3 - This is an updated test (Charset = UTF8 Codepage = 65001) Row No = 2 KEYFIELD = 4 PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 4: This is another test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 4 - This is another test (Charset = UTF8 Codepage = 65001) Row No = 3 KEYFIELD = 5 PLAINTEXT = This is another updated test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 5: This is another updated test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 5 - This is another updated test (Charset = UTF8 Codepage = 65001) Rows printed = 3 Update of First and Last records and implicitly apply Update Record Called for ukModify KEYFIELD = 3 PLAINTEXT = This is an updated test (implicit apply updates) (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 3: This is an updated test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 3 - This is an updated test (Charset = UTF8 Codepage = 65001) Print Dataset for IBTestData Row No = 1 KEYFIELD = 3 PLAINTEXT = This is an updated test (implicit apply updates) (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 3: This is an updated test (implicit apply updates) (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 3 - This is an updated test (implicit apply updates) (Charset = UTF8 Codepage = 65001) Row No = 2 KEYFIELD = 4 PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 4: This is another test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 4 - This is another test (Charset = UTF8 Codepage = 65001) Row No = 3 KEYFIELD = 5 PLAINTEXT = This is another updated test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 5: This is another updated test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 5 - This is another updated test (Charset = UTF8 Codepage = 65001) Rows printed = 3 Delete First and Last records and Cancel Print Dataset for IBTestData Row No = 1 KEYFIELD = 4 PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 4: This is another test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 4 - This is another test (Charset = UTF8 Codepage = 65001) Rows printed = 1 Cancel Updates Print Dataset for IBTestData Row No = 1 KEYFIELD = 3 PLAINTEXT = This is an updated test (implicit apply updates) (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 3: This is an updated test (implicit apply updates) (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 3 - This is an updated test (implicit apply updates) (Charset = UTF8 Codepage = 65001) Row No = 2 KEYFIELD = 4 PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 4: This is another test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 4 - This is another test (Charset = UTF8 Codepage = 65001) Row No = 3 KEYFIELD = 5 PLAINTEXT = This is another updated test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 5: This is another updated test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 5 - This is another updated test (Charset = UTF8 Codepage = 65001) Rows printed = 3 Now reopen and show no change Print Dataset for IBTestData Row No = 1 KEYFIELD = 3 PLAINTEXT = This is an updated test (implicit apply updates) (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 3: This is an updated test (implicit apply updates) (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 3 - This is an updated test (implicit apply updates) (Charset = UTF8 Codepage = 65001) Row No = 2 KEYFIELD = 4 PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 4: This is another test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 4 - This is another test (Charset = UTF8 Codepage = 65001) Row No = 3 KEYFIELD = 5 PLAINTEXT = This is another updated test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 5: This is another updated test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 5 - This is another updated test (Charset = UTF8 Codepage = 65001) Rows printed = 3 Delete First and Last records and Apply Print Dataset for IBTestData Row No = 1 KEYFIELD = 4 PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 4: This is another test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 4 - This is another test (Charset = UTF8 Codepage = 65001) Rows printed = 1 Apply Updates Update Record Called for ukDelete KEYFIELD = 3 PLAINTEXT = This is an updated test (implicit apply updates) (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 3: This is an updated test (implicit apply updates) (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 3 - This is an updated test (implicit apply updates) (Charset = UTF8 Codepage = 65001) Update Record Called for ukDelete KEYFIELD = 5 PLAINTEXT = This is another updated test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 5: This is another updated test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 5 - This is another updated test (Charset = UTF8 Codepage = 65001) Print Dataset for IBTestData Row No = 1 KEYFIELD = 4 PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 4: This is another test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 4 - This is another test (Charset = UTF8 Codepage = 65001) Rows printed = 1 Now reopen and show no change Print Dataset for IBTestData Row No = 1 KEYFIELD = 4 PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 4: This is another test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 4 - This is another test (Charset = UTF8 Codepage = 65001) Rows printed = 1 Test Error Handling Print Dataset for IBTestData Row No = 1 KEYFIELD = 4 PLAINTEXT = This is another test (Charset = UTF8 Codepage = 65001) TEXTANDKEY = 4: This is another test (Charset = UTF8 Codepage = 65001) SERVERSIDETEXT = 4 - This is another test (Charset = UTF8 Codepage = 65001) Row No = 2 KEYFIELD = 4 PLAINTEXT = NULL TEXTANDKEY = NULL SERVERSIDETEXT = NULL Rows printed = 2 Update Record Called for ukInsert KEYFIELD = 4 PLAINTEXT = NULL TEXTANDKEY = NULL SERVERSIDETEXT = NULL Update Error raised: Engine Code: 335544665 violation of PRIMARY or UNIQUE KEY constraint "INTEG_2" on table "IBDATASETTEST" -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 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 20/10/2023 11:31:17.165 Data load completed at 20/10/2023 11:32:18.741 Elapsed Time = 61576 ms, 100000 records loaded Message Hash = b2bf188b3dd7189a6c6513acdc162a44 Database Read started at 20/10/2023 11:32:18.742 Read Dataset completed at 20/10/2023 11:32:24.572 Elapsed Time = 5830 ms, 100000 records read Message Hash = b2bf188b3dd7189a6c6513acdc162a44 Test Completed successfully 20/10/2023 11:32:24.573 Test 21 passes as long as the checksums are identical ------------------------------------------------------ Skipping Test 22: TIBUpdate Tests Skipping 22 ------------------------------------------------------ Running Test 23: Transliteration Tests Creating Database from resources/Test23.sql CREATE TABLE TESTDATA (ROWID INTEGER NOT NULL, TITLE VARCHAR(32), NOTES VARCHAR(64) CHARACTER SET ISO8859_1, BLOBDATA BLOB SUB_TYPE TEXT SEGMENT SIZE 80 CHARACTER SET WIN1252, INCLEAR VARCHAR(16) CHARACTER SET NONE, PRIMARY KEY (ROWID)); Default Character Set = UTF8 ROWID = 1 TITLE = Blob Test ©€ (Charset Id = 4 Codepage = 65001) NOTES = Écoute moi (Charset Id = 4 Codepage = 65001) BLOBDATA (Charset Id = 4 Codepage = 65001) Some German Special Characters like ÖÄÜöäüß INCLEAR = Test à Default Character Set = WIN1252 ROWID = 1 TITLE = Blob Test ©€ (Charset Id = 53 Codepage = 1252) NOTES = Écoute moi (Charset Id = 53 Codepage = 1252) BLOBDATA (Charset Id = 53 Codepage = 1252) Some German Special Characters like ÖÄÜöäüß INCLEAR = Test à Default Character Set = NONE ROWID = 1 TITLE = Blob Test ©€ (Charset Id = 4 Codepage = 65001) NOTES = Écoute moi (Charset Id = 21 Codepage = 28591) BLOBDATA (Charset Id = 53 Codepage = 1252) Some German Special Characters like ÖÄÜöäüß INCLEAR = Test à Default Character Set = UTF8 ROWID = 1 TITLE = Blob Test ©€ (Charset Id = 4 Codepage = 65001) NOTES = Écoute moi (Charset Id = 4 Codepage = 65001) BLOBDATA (Charset Id = 4 Codepage = 65001) Some German Special Characters like ÖÄÜöäüß INCLEAR = Test à Default Character Set = WIN1252 ROWID = 1 TITLE = 42 6C 6F 62 20 54 65 73 74 20 A9 80 (Charset Id = 53 Codepage = 1252) NOTES = C9 63 6F 75 74 65 20 6D 6F 69 (Charset Id = 53 Codepage = 1252) BLOBDATA = 53 6F 6D 65 20 47 65 72 6D 61 6E 20 53 70 65 63 69 61 6C 20 43 68 61 72 61 63 74 65 72 73 20 6C 69 6B 65 20 D6 C4 DC F6 E4 FC DF (Charset Id = 53 Codepage = 1252) INCLEAR = 1 54 65 73 74 D C3 (Charset Id = 0 Codepage = 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:created database /home/tony/.MWA Software/testsuite1.fdb, page_size 4096 bytes gbak:started transaction gbak:restoring domain FIRSTNAME gbak:restoring domain LASTNAME gbak:restoring domain PHONENUMBER gbak:restoring domain COUNTRYNAME gbak:restoring domain ADDRESSLINE gbak:restoring domain EMPNO gbak:restoring domain DEPTNO gbak:restoring domain PROJNO gbak:restoring domain CUSTNO gbak:restoring domain JOBCODE gbak:restoring domain JOBGRADE gbak:restoring domain SALARY gbak:restoring domain BUDGET gbak:restoring domain PRODTYPE gbak:restoring domain PONUMBER gbak:restoring domain RDB$1 gbak:restoring domain RDB$2 gbak:restoring domain RDB$3 gbak:restoring domain RDB$4 gbak:restoring domain RDB$5 gbak:restoring domain RDB$6 gbak:restoring domain RDB$7 gbak:restoring domain RDB$8 gbak:restoring domain RDB$9 gbak:restoring domain RDB$10 gbak:restoring domain RDB$11 gbak:restoring domain RDB$12 gbak:restoring domain RDB$13 gbak:restoring domain RDB$14 gbak:restoring domain RDB$15 gbak:restoring domain RDB$16 gbak:restoring domain RDB$17 gbak:restoring domain RDB$18 gbak:restoring domain RDB$19 gbak:restoring domain RDB$20 gbak:restoring domain RDB$21 gbak:restoring domain RDB$22 gbak:restoring domain RDB$23 gbak:restoring domain RDB$24 gbak:restoring domain RDB$25 gbak:restoring domain RDB$26 gbak:restoring domain RDB$27 gbak:restoring domain RDB$28 gbak:restoring domain RDB$29 gbak:restoring domain RDB$30 gbak:restoring domain RDB$31 gbak:restoring domain RDB$32 gbak:restoring domain RDB$33 gbak:restoring domain RDB$34 gbak:restoring domain RDB$35 gbak:restoring domain RDB$36 gbak:restoring domain RDB$37 gbak:restoring domain RDB$38 gbak:restoring domain RDB$39 gbak:restoring domain RDB$40 gbak:restoring domain RDB$41 gbak:restoring domain RDB$42 gbak:restoring domain RDB$43 gbak:restoring domain RDB$44 gbak:restoring domain RDB$45 gbak:restoring domain RDB$46 gbak:restoring domain RDB$47 gbak:restoring domain RDB$48 gbak:restoring domain RDB$49 gbak:restoring domain RDB$50 gbak:restoring domain RDB$51 gbak:restoring domain RDB$52 gbak:restoring domain RDB$53 gbak:restoring domain RDB$54 gbak:restoring domain RDB$55 gbak:restoring domain RDB$56 gbak:restoring domain RDB$57 gbak:restoring domain RDB$58 gbak:restoring domain RDB$59 gbak:restoring domain RDB$60 gbak:restoring domain RDB$61 gbak:restoring domain RDB$62 gbak:restoring domain RDB$63 gbak:restoring domain RDB$64 gbak: committing metadata gbak:restoring table COUNTRY gbak: restoring column CURRENCY gbak: restoring column COUNTRY gbak:restoring table JOB gbak: restoring column MIN_SALARY gbak: restoring column MAX_SALARY gbak: restoring column JOB_REQUIREMENT gbak: restoring column JOB_GRADE gbak: restoring column JOB_CODE gbak: restoring column JOB_COUNTRY gbak: restoring column JOB_TITLE gbak: restoring column LANGUAGE_REQ gbak:restoring table DEPARTMENT gbak: restoring column BUDGET gbak: restoring column MNGR_NO gbak: restoring column PHONE_NO gbak: restoring column DEPT_NO gbak: restoring column DEPARTMENT gbak: restoring column HEAD_DEPT gbak: restoring column LOCATION gbak:restoring table EMPLOYEE gbak: restoring column HIRE_DATE gbak: restoring column SALARY gbak: restoring column EMP_NO gbak: restoring column LAST_NAME gbak: restoring column PHONE_EXT gbak: restoring column JOB_GRADE gbak: restoring column FIRST_NAME gbak: restoring column DEPT_NO gbak: restoring column JOB_CODE gbak: restoring column JOB_COUNTRY gbak: restoring column FULL_NAME gbak:restoring table SALES gbak: restoring column PO_NUMBER gbak: restoring column ORDER_DATE gbak: restoring column SHIP_DATE gbak: restoring column DATE_NEEDED gbak: restoring column AGED gbak: restoring column CUST_NO gbak: restoring column QTY_ORDERED gbak: restoring column TOTAL_VALUE gbak: restoring column DISCOUNT gbak: restoring column SALES_REP gbak: restoring column ITEM_TYPE gbak: restoring column ORDER_STATUS gbak: restoring column PAID gbak:restoring table PHONE_LIST gbak: restoring column EMP_NO gbak: restoring column LAST_NAME gbak: restoring column PHONE_EXT gbak: restoring column PHONE_NO gbak: restoring column FIRST_NAME gbak: restoring column LOCATION gbak:restoring table PROJECT gbak: restoring column PROJ_DESC gbak: restoring column PROJ_NAME gbak: restoring column TEAM_LEADER gbak: restoring column PRODUCT gbak: restoring column PROJ_ID gbak:restoring table EMPLOYEE_PROJECT gbak: restoring column EMP_NO gbak: restoring column PROJ_ID gbak:restoring table PROJ_DEPT_BUDGET gbak: restoring column PROJECTED_BUDGET gbak: restoring column FISCAL_YEAR gbak: restoring column QUART_HEAD_CNT gbak: restoring column PROJ_ID gbak: restoring column DEPT_NO gbak:restoring table SALARY_HISTORY gbak: restoring column CHANGE_DATE gbak: restoring column OLD_SALARY gbak: restoring column PERCENT_CHANGE gbak: restoring column NEW_SALARY gbak: restoring column EMP_NO gbak: restoring column UPDATER_ID gbak:restoring table CUSTOMER gbak: restoring column ADDRESS_LINE1 gbak: restoring column ADDRESS_LINE2 gbak: restoring column CUST_NO gbak: restoring column CONTACT_LAST gbak: restoring column PHONE_NO gbak: restoring column POSTAL_CODE gbak: restoring column CUSTOMER gbak: restoring column CONTACT_FIRST gbak: restoring column CITY gbak: restoring column STATE_PROVINCE gbak: restoring column COUNTRY gbak: restoring column ON_HOLD gbak:restoring generator EMP_NO_GEN value: 145 gbak:restoring generator CUST_NO_GEN value: 1015 gbak:restoring stored procedure GET_EMP_PROJ gbak:restoring parameter EMP_NO for stored procedure gbak:restoring parameter PROJ_ID for stored procedure gbak:restoring stored procedure ADD_EMP_PROJ gbak:restoring parameter EMP_NO for stored procedure gbak:restoring parameter PROJ_ID for stored procedure gbak:restoring stored procedure SUB_TOT_BUDGET gbak:restoring parameter HEAD_DEPT for stored procedure gbak:restoring parameter TOT_BUDGET for stored procedure gbak:restoring parameter AVG_BUDGET for stored procedure gbak:restoring parameter MIN_BUDGET for stored procedure gbak:restoring parameter MAX_BUDGET for stored procedure gbak:restoring stored procedure DELETE_EMPLOYEE gbak:restoring parameter EMP_NUM for stored procedure gbak:restoring stored procedure DEPT_BUDGET gbak:restoring parameter DNO for stored procedure gbak:restoring parameter TOT for stored procedure gbak:restoring stored procedure ORG_CHART gbak:restoring parameter HEAD_DEPT for stored procedure gbak:restoring parameter DEPARTMENT for stored procedure gbak:restoring parameter MNGR_NAME for stored procedure gbak:restoring parameter TITLE for stored procedure gbak:restoring parameter EMP_CNT for stored procedure gbak:restoring stored procedure MAIL_LABEL gbak:restoring parameter CUST_NO for stored procedure gbak:restoring parameter LINE1 for stored procedure gbak:restoring parameter LINE2 for stored procedure gbak:restoring parameter LINE3 for stored procedure gbak:restoring parameter LINE4 for stored procedure gbak:restoring parameter LINE5 for stored procedure gbak:restoring parameter LINE6 for stored procedure gbak:restoring stored procedure SHIP_ORDER gbak:restoring parameter PO_NUM for stored procedure gbak:restoring stored procedure SHOW_LANGS gbak:restoring parameter CODE for stored procedure gbak:restoring parameter GRADE for stored procedure gbak:restoring parameter CTY for stored procedure gbak:restoring parameter LANGUAGES for stored procedure gbak:restoring stored procedure ALL_LANGS gbak:restoring parameter CODE for stored procedure gbak:restoring parameter GRADE for stored procedure gbak:restoring parameter COUNTRY for stored procedure gbak:restoring parameter LANG for stored procedure gbak:restoring exception UNKNOWN_EMP_ID gbak:restoring exception REASSIGN_SALES gbak:restoring exception ORDER_ALREADY_SHIPPED gbak:restoring exception CUSTOMER_ON_HOLD gbak:restoring exception CUSTOMER_CHECK gbak: committing metadata gbak: restoring index RDB$PRIMARY22 gbak: restoring index RDB$FOREIGN23 gbak: restoring index CUSTNAMEX gbak: restoring index CUSTREGION gbak:restoring data for table CUSTOMER gbak: 15 records restored gbak: restoring index RDB$PRIMARY20 gbak: restoring index RDB$FOREIGN21 gbak: restoring index UPDATERX gbak: restoring index CHANGEX gbak:restoring data for table SALARY_HISTORY gbak: 49 records restored gbak: restoring index RDB$PRIMARY17 gbak: restoring index RDB$FOREIGN18 gbak: restoring index RDB$FOREIGN19 gbak:restoring data for table PROJ_DEPT_BUDGET gbak: 24 records restored gbak: restoring index RDB$PRIMARY14 gbak: restoring index RDB$FOREIGN15 gbak: restoring index RDB$FOREIGN16 gbak:restoring data for table EMPLOYEE_PROJECT gbak: 28 records restored gbak: restoring index RDB$11 gbak: restoring index RDB$PRIMARY12 gbak: restoring index RDB$FOREIGN13 gbak: restoring index PRODTYPEX gbak:restoring data for table PROJECT gbak: 6 records restored gbak: restoring index RDB$PRIMARY24 gbak: restoring index RDB$FOREIGN25 gbak: restoring index RDB$FOREIGN26 gbak: restoring index NEEDX gbak: restoring index SALESTATX gbak: restoring index QTYX gbak:restoring data for table SALES gbak: 33 records restored gbak: restoring index RDB$PRIMARY7 gbak: restoring index RDB$FOREIGN8 gbak: restoring index RDB$FOREIGN9 gbak: restoring index NAMEX gbak:restoring data for table EMPLOYEE gbak: 42 records restored gbak: restoring index RDB$4 gbak: restoring index RDB$PRIMARY5 gbak: restoring index RDB$FOREIGN6 gbak: restoring index BUDGETX gbak: restoring index RDB$FOREIGN10 gbak:restoring data for table DEPARTMENT gbak: 21 records restored gbak: restoring index RDB$PRIMARY2 gbak: restoring index RDB$FOREIGN3 gbak: restoring index MINSALX gbak: restoring index MAXSALX gbak:restoring data for table JOB gbak: 31 records restored gbak: restoring index RDB$PRIMARY1 gbak:restoring data for table COUNTRY gbak: 14 records restored gbak: restoring trigger CHECK_1 gbak: restoring trigger CHECK_2 gbak: restoring trigger CHECK_3 gbak: restoring trigger CHECK_4 gbak: restoring trigger SET_EMP_NO gbak: restoring trigger CHECK_5 gbak: restoring trigger CHECK_6 gbak: restoring trigger CHECK_7 gbak: restoring trigger CHECK_8 gbak: restoring trigger SAVE_SALARY_CHANGE gbak: restoring trigger CHECK_9 gbak: restoring trigger CHECK_10 gbak: restoring trigger SET_CUST_NO gbak: restoring trigger CHECK_11 gbak: restoring trigger CHECK_12 gbak: restoring trigger CHECK_13 gbak: restoring trigger CHECK_14 gbak: restoring trigger CHECK_15 gbak: restoring trigger CHECK_16 gbak: restoring trigger CHECK_17 gbak: restoring trigger CHECK_18 gbak: restoring trigger CHECK_19 gbak: restoring trigger CHECK_20 gbak: restoring trigger CHECK_21 gbak: restoring trigger CHECK_22 gbak: restoring trigger CHECK_23 gbak: restoring trigger CHECK_24 gbak: restoring trigger CHECK_25 gbak: restoring trigger CHECK_26 gbak: restoring trigger CHECK_27 gbak: restoring trigger CHECK_28 gbak: restoring trigger POST_NEW_ORDER gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user PUBLIC gbak:creating indexes gbak: committing metadata gbak: activating and creating deferred index RDB$PRIMARY22 gbak: activating and creating deferred index CUSTNAMEX gbak: activating and creating deferred index CUSTREGION gbak: activating and creating deferred index RDB$PRIMARY20 gbak: activating and creating deferred index UPDATERX gbak: activating and creating deferred index CHANGEX gbak: activating and creating deferred index RDB$PRIMARY17 gbak: activating and creating deferred index RDB$PRIMARY14 gbak: activating and creating deferred index RDB$11 gbak: activating and creating deferred index RDB$PRIMARY12 gbak: activating and creating deferred index PRODTYPEX gbak: activating and creating deferred index RDB$PRIMARY24 gbak: activating and creating deferred index NEEDX gbak: activating and creating deferred index SALESTATX gbak: activating and creating deferred index QTYX gbak: activating and creating deferred index RDB$PRIMARY7 gbak: activating and creating deferred index NAMEX gbak: activating and creating deferred index RDB$4 gbak: activating and creating deferred index RDB$PRIMARY5 gbak: activating and creating deferred index BUDGETX gbak: activating and creating deferred index RDB$PRIMARY2 gbak: activating and creating deferred index MINSALX gbak: activating and creating deferred index MAXSALX gbak: activating and creating deferred index RDB$PRIMARY1 gbak: activating and creating deferred index RDB$FOREIGN3 gbak: activating and creating deferred index RDB$FOREIGN6 gbak: activating and creating deferred index RDB$FOREIGN8 gbak: activating and creating deferred index RDB$FOREIGN9 gbak: activating and creating deferred index RDB$FOREIGN10 gbak: activating and creating deferred index RDB$FOREIGN13 gbak: activating and creating deferred index RDB$FOREIGN15 gbak: activating and creating deferred index RDB$FOREIGN16 gbak: activating and creating deferred index RDB$FOREIGN18 gbak: activating and creating deferred index RDB$FOREIGN19 gbak: activating and creating deferred index RDB$FOREIGN21 gbak: activating and creating deferred index RDB$FOREIGN23 gbak: activating and creating deferred index RDB$FOREIGN25 gbak: activating and creating deferred index RDB$FOREIGN26 gbak:finishing, closing, and going home Upgrading to Version 1 Applying Update from resources/Test27/patches/01-patch.sql Create Table DBVERSIONINFO( VersionNo Integer not null ); Insert into DBVERSIONINFO(VersionNo) Values(1); Commit; Upgrading to Version 2 Applying Update from resources/Test27/patches/02-patch.sql Alter Table EMPLOYEE Add Photo Blob; Create View DeptList As with recursive Depts As ( Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT as VarChar(256)) as DEPT_PATH, cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH From DEPARTMENT Where HEAD_DEPT is NULL UNION ALL Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH || ' / ' || D.DEPARTMENT as DEPT_PATH, Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT D JOIN Depts On D.HEAD_DEPT = Depts.DEPT_NO ) Select A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE, A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH, A.PHOTO From EMPLOYEE A JOIN Depts D On D.DEPT_NO = A.DEPT_NO; Update EMPLOYEE Set Photo =:MUGSHOT Where Emp_no = 2; Resolving Query Parameter: MUGSHOT Update DBVERSIONINFO Set VersionNo = 2; Commit; Row No = 1 EMP_NO = 12 FIRST_NAME = Terri LAST_NAME = Lee PHONE_EXT = 256 HIRE_DATE = 01/5/1990 DEPT_NO = 000 JOB_CODE = Admin JOB_GRADE = 4 JOB_COUNTRY = USA SALARY = 53793 FULL_NAME = Lee, Terri PHOTO = NULL DEPT_PATH = Corporate Headquarters DEPT_KEY_PATH = 000 Row No = 2 EMP_NO = 105 FIRST_NAME = Oliver H. LAST_NAME = Bender PHONE_EXT = 255 HIRE_DATE = 08/10/1992 DEPT_NO = 000 JOB_CODE = CEO JOB_GRADE = 1 JOB_COUNTRY = USA SALARY = 212850 FULL_NAME = Bender, Oliver H. PHOTO = NULL DEPT_PATH = Corporate Headquarters DEPT_KEY_PATH = 000 Rows printed = 2 ------------------------------------------------------ Running Test 28: Create Local Database from Script Creating new Database Show schema for /home/tony/.MWA Software/testsuite1.fdb SET SQL DIALECT 3; SET AUTODDL ON; /* CREATE DATABASE '/home/tony/.MWA Software/testsuite1.fdb' PAGE_SIZE 4096 DEFAULT CHARACTER SET UTF8; */ /* Table: DBVERSIONINFO, Owner: SYSDBA */ CREATE TABLE DBVERSIONINFO ( VERSIONNO INTEGER NOT NULL, PRIMARY KEY (VERSIONNO) ); /* Table: IBDATASETTEST, Owner: SYSDBA */ CREATE TABLE IBDATASETTEST ( KEYFIELD INTEGER NOT NULL, PLAINTEXT VARCHAR(128), TEXTANDKEY COMPUTED BY (KeyField || ': ' || PlainText), SERVERSIDETEXT VARCHAR(256), PRIMARY KEY (KEYFIELD) ); /* Data Starts */ /* Inserting data into Table: DBVERSIONINFO */ INSERT INTO DBVERSIONINFO (VERSIONNO) VALUES(1); COMMIT; /* Data Ends */ CREATE SEQUENCE AGENERATOR; ALTER SEQUENCE AGENERATOR RESTART WITH 0; SET TERM ^; /* Triggers only will work for SQL triggers */ CREATE TRIGGER BEFOREINSERTTEST FOR IBDATASETTEST ACTIVE BEFORE INSERT or UPDATE POSITION 0 As Begin new.ServerSideText = new.KeyField || ' - ' || new.PlainText; End ^ COMMIT WORK^ SET TERM ;^ /* Comments on System Objects */ /* Grant Roles for this database */ /* Grant permissions for this database */ Now test out an upgrade failure gbak:readied database /home/tony/.MWA Software/testsuite1.fdb for backup gbak:creating file /home/tony/.MWA Software/testsuite1.1.gbk gbak:starting transaction gbak:database /home/tony/.MWA Software/testsuite1.fdb has a page size of 4096 bytes. gbak:writing domains gbak: writing domain RDB$1 gbak: writing domain RDB$2 gbak: writing domain RDB$3 gbak: writing domain RDB$4 gbak: writing domain RDB$5 gbak:writing shadow files gbak:writing character sets gbak:writing collations gbak:writing functions gbak:writing tables gbak: writing table IBDATASETTEST gbak: writing column KEYFIELD gbak: writing column PLAINTEXT gbak: writing column TEXTANDKEY gbak: writing column SERVERSIDETEXT gbak: writing table DBVERSIONINFO gbak: writing column VERSIONNO gbak:writing types gbak:writing filters gbak:writing id generators gbak: writing generator AGENERATOR value 1 gbak:writing stored procedures gbak:writing exceptions gbak: writing index RDB$PRIMARY2 gbak: writing data for table DBVERSIONINFO gbak:1 records written gbak: writing index RDB$PRIMARY1 gbak: writing data for table IBDATASETTEST gbak:1 records written gbak:writing triggers gbak: writing trigger BEFOREINSERTTEST gbak:writing trigger messages gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user PUBLIC gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user PUBLIC gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user PUBLIC gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak:writing table constraints gbak:writing constraint INTEG_1 gbak:writing constraint INTEG_2 gbak:writing constraint INTEG_3 gbak:writing referential constraints gbak:writing check constraints gbak:writing SQL roles gbak:writing names mapping gbak:closing file, committing, and finishing. 3072 bytes written Database Archived to /home/tony/.MWA Software/testsuite1.1.gbk Upgrading to Version 2 Applying Update from resources/Test28/patches/01-badpatch.sql Create table GoodTable( TheKey integer not null, aText VarChar(12), Primary Key(TheKey) ); Create table blah; Error processing SQL statement: On Line 8 Character 1: Engine Code: 335544569 Dynamic SQL Error -SQL error code = -104 -Unexpected end of command - line 1, column 14 When Executing: Create table blah - for statement "Create table blah" Downgrading to version 1 gbak:opened file /home/tony/.MWA Software/testsuite1.1.gbk gbak:transportable backup -- data in XDR format gbak: backup file is compressed gbak:created database /home/tony/.MWA Software/testsuite1.fdb, page_size 4096 bytes gbak:started transaction gbak:restoring domain RDB$1 gbak:restoring domain RDB$2 gbak:restoring domain RDB$3 gbak:restoring domain RDB$4 gbak:restoring domain RDB$5 gbak: committing metadata gbak:restoring table IBDATASETTEST gbak: restoring column KEYFIELD gbak: restoring column PLAINTEXT gbak: restoring column TEXTANDKEY gbak: restoring column SERVERSIDETEXT gbak:restoring table DBVERSIONINFO gbak: restoring column VERSIONNO gbak:restoring generator AGENERATOR value: 1 gbak: committing metadata gbak: restoring index RDB$PRIMARY2 gbak:restoring data for table DBVERSIONINFO gbak: 1 records restored gbak: restoring index RDB$PRIMARY1 gbak:restoring data for table IBDATASETTEST gbak: 1 records restored gbak: restoring trigger BEFOREINSERTTEST gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak:creating indexes gbak: committing metadata gbak: activating and creating deferred index RDB$PRIMARY2 gbak: activating and creating deferred index RDB$PRIMARY1 gbak:finishing, closing, and going home Upgrade failed (as expected): Upgrade Failed. Database Version No. is 1 Schema after failed upgrade is SET SQL DIALECT 3; SET AUTODDL ON; /* CREATE DATABASE '/home/tony/.MWA Software/testsuite1.fdb' PAGE_SIZE 4096 DEFAULT CHARACTER SET UTF8; */ /* Table: DBVERSIONINFO, Owner: SYSDBA */ CREATE TABLE DBVERSIONINFO ( VERSIONNO INTEGER NOT NULL, PRIMARY KEY (VERSIONNO) ); /* Table: IBDATASETTEST, Owner: SYSDBA */ CREATE TABLE IBDATASETTEST ( KEYFIELD INTEGER NOT NULL, PLAINTEXT VARCHAR(128), TEXTANDKEY COMPUTED BY (KeyField || ': ' || PlainText), SERVERSIDETEXT VARCHAR(256), PRIMARY KEY (KEYFIELD) ); /* Data Starts */ /* Inserting data into Table: DBVERSIONINFO */ INSERT INTO DBVERSIONINFO (VERSIONNO) VALUES(1); COMMIT; /* Inserting data into Table: IBDATASETTEST */ INSERT INTO IBDATASETTEST (KEYFIELD,PLAINTEXT,SERVERSIDETEXT) VALUES(1,'Test','1 - Test'); COMMIT; /* Data Ends */ CREATE SEQUENCE AGENERATOR; ALTER SEQUENCE AGENERATOR RESTART WITH 1; SET TERM ^; /* Triggers only will work for SQL triggers */ CREATE TRIGGER BEFOREINSERTTEST FOR IBDATASETTEST ACTIVE BEFORE INSERT or UPDATE POSITION 0 As Begin new.ServerSideText = new.KeyField || ' - ' || new.PlainText; End ^ COMMIT WORK^ SET TERM ;^ /* Comments on System Objects */ /* Grant Roles for this database */ /* Grant permissions for this database */ Save and Restore Tests gbak:readied database /home/tony/.MWA Software/testsuite1.fdb for backup gbak:creating file /tmp/ibx-testsuite/testsuite.gbk gbak:starting transaction gbak:database /home/tony/.MWA Software/testsuite1.fdb has a page size of 4096 bytes. gbak:writing domains gbak: writing domain RDB$1 gbak: writing domain RDB$2 gbak: writing domain RDB$3 gbak: writing domain RDB$4 gbak: writing domain RDB$5 gbak:writing shadow files gbak:writing character sets gbak:writing collations gbak:writing functions gbak:writing tables gbak: writing table IBDATASETTEST gbak: writing column KEYFIELD gbak: writing column PLAINTEXT gbak: writing column TEXTANDKEY gbak: writing column SERVERSIDETEXT gbak: writing table DBVERSIONINFO gbak: writing column VERSIONNO gbak:writing types gbak:writing filters gbak:writing id generators gbak: writing generator AGENERATOR value 2 gbak:writing stored procedures gbak:writing exceptions gbak: writing index RDB$PRIMARY2 gbak: writing data for table DBVERSIONINFO gbak:1 records written gbak: writing index RDB$PRIMARY1 gbak: writing data for table IBDATASETTEST gbak:2 records written gbak:writing triggers gbak: writing trigger BEFOREINSERTTEST gbak:writing trigger messages gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user PUBLIC gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user PUBLIC gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user PUBLIC gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak: writing privilege for user SYSDBA gbak:writing table constraints gbak:writing constraint INTEG_1 gbak:writing constraint INTEG_2 gbak:writing constraint INTEG_3 gbak:writing referential constraints gbak:writing check constraints gbak:writing SQL roles gbak:writing names mapping gbak:closing file, committing, and finishing. 3584 bytes written Database Archived to /tmp/ibx-testsuite/testsuite.gbk gbak:opened file /tmp/ibx-testsuite/testsuite.gbk gbak:transportable backup -- data in XDR format gbak: backup file is compressed gbak:created database /home/tony/.MWA Software/testsuite1.fdb, page_size 4096 bytes gbak:started transaction gbak:restoring domain RDB$1 gbak:restoring domain RDB$2 gbak:restoring domain RDB$3 gbak:restoring domain RDB$4 gbak:restoring domain RDB$5 gbak: committing metadata gbak:restoring table IBDATASETTEST gbak: restoring column KEYFIELD gbak: restoring column PLAINTEXT gbak: restoring column TEXTANDKEY gbak: restoring column SERVERSIDETEXT gbak:restoring table DBVERSIONINFO gbak: restoring column VERSIONNO gbak:restoring generator AGENERATOR value: 2 gbak: committing metadata gbak: restoring index RDB$PRIMARY2 gbak:restoring data for table DBVERSIONINFO gbak: 1 records restored gbak: restoring index RDB$PRIMARY1 gbak:restoring data for table IBDATASETTEST gbak: 2 records restored gbak: restoring trigger BEFOREINSERTTEST gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user PUBLIC gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak: restoring privilege for user SYSDBA gbak:creating indexes gbak: committing metadata gbak: activating and creating deferred index RDB$PRIMARY2 gbak: activating and creating deferred index RDB$PRIMARY1 gbak:finishing, closing, and going home Database after restore SET SQL DIALECT 3; SET AUTODDL ON; /* CREATE DATABASE '/home/tony/.MWA Software/testsuite1.fdb' PAGE_SIZE 4096 DEFAULT CHARACTER SET UTF8; */ /* Table: DBVERSIONINFO, Owner: SYSDBA */ CREATE TABLE DBVERSIONINFO ( VERSIONNO INTEGER NOT NULL, PRIMARY KEY (VERSIONNO) ); /* Table: IBDATASETTEST, Owner: SYSDBA */ CREATE TABLE IBDATASETTEST ( KEYFIELD INTEGER NOT NULL, PLAINTEXT VARCHAR(128), TEXTANDKEY COMPUTED BY (KeyField || ': ' || PlainText), SERVERSIDETEXT VARCHAR(256), PRIMARY KEY (KEYFIELD) ); /* Data Starts */ /* Inserting data into Table: DBVERSIONINFO */ INSERT INTO DBVERSIONINFO (VERSIONNO) VALUES(1); COMMIT; /* Inserting data into Table: IBDATASETTEST */ INSERT INTO IBDATASETTEST (KEYFIELD,PLAINTEXT,SERVERSIDETEXT) VALUES(1,'Test','1 - Test'); INSERT INTO IBDATASETTEST (KEYFIELD,PLAINTEXT,SERVERSIDETEXT) VALUES(2,'Test','2 - Test'); COMMIT; /* Data Ends */ CREATE SEQUENCE AGENERATOR; ALTER SEQUENCE AGENERATOR RESTART WITH 2; SET TERM ^; /* Triggers only will work for SQL triggers */ CREATE TRIGGER BEFOREINSERTTEST FOR IBDATASETTEST ACTIVE BEFORE INSERT or UPDATE POSITION 0 As Begin new.ServerSideText = new.KeyField || ' - ' || new.PlainText; End ^ COMMIT WORK^ SET TERM ;^ /* Comments on System Objects */ /* Grant Roles for this database */ /* Grant permissions for this database */ ------------------------------------------------------ Running Test 29: IBJournal Tests Creating Database from resources/Test29.sql Create Table IBXTest ( TableKey Integer not null, F1 Smallint, F2 Float, F3 Double Precision, F4 Decimal(9,3), F5 Decimal(18,4), F6 Date, F7 Timestamp, F8 Char (2), F9 VarChar(256), F10 Blob, F11 BigInt, "f12" Integer, F13 Time, F14 Blob sub_type text, F15 Double Precision Computed by (F2 + F3), MyArray Integer [0:16], "GRANTS" VarChar(20), "My Field" VarChar(32), "MY Field" VarChar(32), Primary Key(TableKey) ); Create Generator IBXGen; Journal Entry Made Journal Entry at 2023/10/20 11:32:32.2210: Type = Transaction Start Attachment ID = 2 Session ID = 1 Transaction ID = 10 Transaction Name = "{D625B6A8-1CE7-463E-9B7C-3D931EFE9F7D}" TPB = [isc_tpb_concurrency,isc_tpb_wait,isc_tpb_write] Default Completion = TACommit Field Names for Dataset29 TABLEKEY F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 MYARRAY GRANTS MYFIELD1 MYFIELD2 Add a record Journal Entry Made Journal Entry at 2023/10/20 11:32:32.2850: Type = Query Attachment ID = 2 Session ID = 1 Transaction ID = 10 Query Text = "Insert Into IBXTEST(TABLEKEY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, "f12", F13, F14, MyArray, GRANTS) Values(1, 2, 0.314, 0.31412345678, 101.314, 101.99, '2007-12-25', '2007-12-25 12:30:29.1300','XX', 'The Quick Brown Fox jumps over the lazy dog', FFD8FFE000104A46494600010101004800480000FFE11E0545786966000049492A00080000000C00 0E010200200000009E0000000F01020014000000BE0000001001020008000000D200000012010300 01000000010000001A01050001000000DA000000 , 9223372036854775807, 65566, '12:30:45.0000', 'If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o''er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: ''Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe''er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l''amour, continuez à jouer; Donnez-m''en un excès, que, surexcité, L''appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m''est venu à l''oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l''odeur! Assez; Pas plus: «Ce n''est pas si doux maintenant qu''avant. O esprit d''amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n''y entre, De quelle validité et de quelle hauteur soe''er, Mais tombe dans l''abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. ', 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 , NULL) Returning MyArray, F15" Add and edit a record Journal Entry Made Journal Entry at 2023/10/20 11:32:32.3080: Type = Query Attachment ID = 2 Session ID = 1 Transaction ID = 10 Query Text = "Insert Into IBXTEST(TABLEKEY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, "f12", F13, F14, MyArray, GRANTS) Values(2, 2, 0.314, 0.31412345678, 101.314, 101.99, '2007-12-25', '2007-12-25 12:30:29.1300','XX', 'The Quick Brown Fox jumps over the lazy dog', FFD8FFE000104A46494600010101004800480000FFE11E0545786966000049492A00080000000C00 0E010200200000009E0000000F01020014000000BE0000001001020008000000D200000012010300 01000000010000001A01050001000000DA000000 , 9223372036854775807, 65566, '12:30:45.0000', 'If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o''er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: ''Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe''er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l''amour, continuez à jouer; Donnez-m''en un excès, que, surexcité, L''appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m''est venu à l''oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l''odeur! Assez; Pas plus: «Ce n''est pas si doux maintenant qu''avant. O esprit d''amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n''y entre, De quelle validité et de quelle hauteur soe''er, Mais tombe dans l''abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. ', 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 , NULL) Returning MyArray, F15" TABLEKEY = 2 F1 = 199 F2 = 0.314000010490 F3 = 0.314123456780 F4 = 101.314 F5 = 101.99 F6 = 25/12/2007 F7 = 25/12/2007 12:30:29.130 F8 = XX (Charset = UTF8 Codepage = 65001) F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001) F10 = (blob), Length = 100 F11 = 9223372036854775807 F12 = 65566 F13 = 12:30:45.000 F14 (Charset = UTF8 Codepage = 65001) If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o'er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: 'Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe'er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l'amour, continuez à jouer; Donnez-m'en un excès, que, surexcité, L'appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m'est venu à l'oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l'odeur! Assez; Pas plus: «Ce n'est pas si doux maintenant qu'avant. O esprit d'amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n'y entre, De quelle validité et de quelle hauteur soe'er, Mais tombe dans l'abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. F15 = 0.628123467270 Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84) GRANTS = NULL MYFIELD1 = My Field (Charset = UTF8 Codepage = 65001) MYFIELD2 = MY Field (Charset = UTF8 Codepage = 65001) Journal Entry Made Journal Entry at 2023/10/20 11:32:32.3290: Type = Query Attachment ID = 2 Session ID = 1 Transaction ID = 10 Query Text = "Update IBXTEST A Set A.F1 = 199, A.F2 = 0.314000010490417, A.F3 = 0.31412345678, A.F4 = 101.314, A.F5 = 101.99, A.F6 = '2007-12-25', A.F7 = '2007-12-25 12:30:29.1300', A.F8 = 'XX', A.F9 = 'The Quick Brown Fox jumps over the lazy dog', A.F10 = FFD8FFE000104A46494600010101004800480000FFE11E0545786966000049492A00080000000C00 0E010200200000009E0000000F01020014000000BE0000001001020008000000D200000012010300 01000000010000001A01050001000000DA000000 , A.F11 = 9223372036854775807, A."f12" = 65566, A.F13 = '12:30:45.0000', A.F14 = 'If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o''er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: ''Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe''er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l''amour, continuez à jouer; Donnez-m''en un excès, que, surexcité, L''appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m''est venu à l''oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l''odeur! Assez; Pas plus: «Ce n''est pas si doux maintenant qu''avant. O esprit d''amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n''y entre, De quelle validité et de quelle hauteur soe''er, Mais tombe dans l''abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. ', A.MyArray = 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 , A."My Field" = 'My Field', A."MY Field" = 'MY Field', A.GRANTS = NULL Where A.TABLEKEY = 2 RETURNING A.MyArray, A.F15" Journal Entry Made Journal Entry at 2023/10/20 11:32:32.3450: Type = Commit Attachment ID = 2 Session ID = 1 Transaction ID = 10 Journal Entry Made Journal Entry at 2023/10/20 11:32:32.3500: Type = Transaction Start Attachment ID = 2 Session ID = 1 Transaction ID = 12 Transaction Name = "{D625B6A8-1CE7-463E-9B7C-3D931EFE9F7D}" TPB = [isc_tpb_concurrency,isc_tpb_wait,isc_tpb_write] Default Completion = TACommit Print Dataset for Dataset29 Row No = 1 TABLEKEY = 1 F1 = 2 F2 = 0.314000010490 F3 = 0.314123456780 F4 = 101.314 F5 = 101.99 F6 = 25/12/2007 F7 = 25/12/2007 12:30:29.130 F8 = XX (Charset = UTF8 Codepage = 65001) F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001) F10 = (blob), Length = 100 F11 = 9223372036854775807 F12 = 65566 F13 = 12:30:45.000 F14 (Charset = UTF8 Codepage = 65001) If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o'er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: 'Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe'er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l'amour, continuez à jouer; Donnez-m'en un excès, que, surexcité, L'appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m'est venu à l'oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l'odeur! Assez; Pas plus: «Ce n'est pas si doux maintenant qu'avant. O esprit d'amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n'y entre, De quelle validité et de quelle hauteur soe'er, Mais tombe dans l'abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. F15 = 0.628123467270 Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84) GRANTS = NULL MYFIELD1 = NULL MYFIELD2 = NULL Row No = 2 TABLEKEY = 2 F1 = 199 F2 = 0.314000010490 F3 = 0.314123456780 F4 = 101.314 F5 = 101.99 F6 = 25/12/2007 F7 = 25/12/2007 12:30:29.130 F8 = XX (Charset = UTF8 Codepage = 65001) F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001) F10 = (blob), Length = 100 F11 = 9223372036854775807 F12 = 65566 F13 = 12:30:45.000 F14 (Charset = UTF8 Codepage = 65001) If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o'er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: 'Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe'er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l'amour, continuez à jouer; Donnez-m'en un excès, que, surexcité, L'appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m'est venu à l'oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l'odeur! Assez; Pas plus: «Ce n'est pas si doux maintenant qu'avant. O esprit d'amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n'y entre, De quelle validité et de quelle hauteur soe'er, Mais tombe dans l'abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. F15 = 0.628123467270 Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84) GRANTS = NULL MYFIELD1 = My Field (Charset = UTF8 Codepage = 65001) MYFIELD2 = MY Field (Charset = UTF8 Codepage = 65001) Rows printed = 2 Delete a record Journal Entry Made Journal Entry at 2023/10/20 11:32:32.6180: Type = Query Attachment ID = 2 Session ID = 1 Transaction ID = 12 Query Text = "Delete From IBXTEST A Where A.TABLEKEY = 1" Print Dataset for Dataset29 Row No = 1 TABLEKEY = 2 F1 = 199 F2 = 0.314000010490 F3 = 0.314123456780 F4 = 101.314 F5 = 101.99 F6 = 25/12/2007 F7 = 25/12/2007 12:30:29.130 F8 = XX (Charset = UTF8 Codepage = 65001) F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001) F10 = (blob), Length = 100 F11 = 9223372036854775807 F12 = 65566 F13 = 12:30:45.000 F14 (Charset = UTF8 Codepage = 65001) If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o'er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: 'Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe'er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l'amour, continuez à jouer; Donnez-m'en un excès, que, surexcité, L'appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m'est venu à l'oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l'odeur! Assez; Pas plus: «Ce n'est pas si doux maintenant qu'avant. O esprit d'amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n'y entre, De quelle validité et de quelle hauteur soe'er, Mais tombe dans l'abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. F15 = 0.628123467270 Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84) GRANTS = NULL MYFIELD1 = My Field (Charset = UTF8 Codepage = 65001) MYFIELD2 = MY Field (Charset = UTF8 Codepage = 65001) Rows printed = 1 Rollback Retaining Journal Entry Made Journal Entry at 2023/10/20 11:32:32.7280: Type = Rollback Retaining Attachment ID = 2 Session ID = 1 Transaction ID = 14 Old Transaction ID = 12 Print Dataset for Dataset29 Row No = 1 TABLEKEY = 1 F1 = 2 F2 = 0.314000010490 F3 = 0.314123456780 F4 = 101.314 F5 = 101.99 F6 = 25/12/2007 F7 = 25/12/2007 12:30:29.130 F8 = XX (Charset = UTF8 Codepage = 65001) F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001) F10 = (blob), Length = 100 F11 = 9223372036854775807 F12 = 65566 F13 = 12:30:45.000 F14 (Charset = UTF8 Codepage = 65001) If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o'er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: 'Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe'er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l'amour, continuez à jouer; Donnez-m'en un excès, que, surexcité, L'appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m'est venu à l'oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l'odeur! Assez; Pas plus: «Ce n'est pas si doux maintenant qu'avant. O esprit d'amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n'y entre, De quelle validité et de quelle hauteur soe'er, Mais tombe dans l'abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. F15 = 0.628123467270 Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84) GRANTS = NULL MYFIELD1 = NULL MYFIELD2 = NULL Row No = 2 TABLEKEY = 2 F1 = 199 F2 = 0.314000010490 F3 = 0.314123456780 F4 = 101.314 F5 = 101.99 F6 = 25/12/2007 F7 = 25/12/2007 12:30:29.130 F8 = XX (Charset = UTF8 Codepage = 65001) F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001) F10 = (blob), Length = 100 F11 = 9223372036854775807 F12 = 65566 F13 = 12:30:45.000 F14 (Charset = UTF8 Codepage = 65001) If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o'er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: 'Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe'er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l'amour, continuez à jouer; Donnez-m'en un excès, que, surexcité, L'appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m'est venu à l'oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l'odeur! Assez; Pas plus: «Ce n'est pas si doux maintenant qu'avant. O esprit d'amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n'y entre, De quelle validité et de quelle hauteur soe'er, Mais tombe dans l'abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. F15 = 0.628123467270 Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84) GRANTS = NULL MYFIELD1 = My Field (Charset = UTF8 Codepage = 65001) MYFIELD2 = MY Field (Charset = UTF8 Codepage = 65001) Rows printed = 2 Delete a record Journal Entry Made Journal Entry at 2023/10/20 11:32:32.9550: Type = Query Attachment ID = 2 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 Journal Entry Made Journal Entry at 2023/10/20 11:32:33.0650: Type = Rollback Attachment ID = 2 Session ID = 1 Transaction ID = 14 Journal Entry Made Journal Entry at 2023/10/20 11:32:33.0690: Type = Transaction Start Attachment ID = 2 Session ID = 1 Transaction ID = 15 Transaction Name = "{D625B6A8-1CE7-463E-9B7C-3D931EFE9F7D}" TPB = [isc_tpb_concurrency,isc_tpb_wait,isc_tpb_write] Default Completion = TACommit Print Dataset for Dataset29 Row No = 1 TABLEKEY = 1 F1 = 2 F2 = 0.314000010490 F3 = 0.314123456780 F4 = 101.314 F5 = 101.99 F6 = 25/12/2007 F7 = 25/12/2007 12:30:29.130 F8 = XX (Charset = UTF8 Codepage = 65001) F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001) F10 = (blob), Length = 100 F11 = 9223372036854775807 F12 = 65566 F13 = 12:30:45.000 F14 (Charset = UTF8 Codepage = 65001) If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o'er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: 'Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe'er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l'amour, continuez à jouer; Donnez-m'en un excès, que, surexcité, L'appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m'est venu à l'oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l'odeur! Assez; Pas plus: «Ce n'est pas si doux maintenant qu'avant. O esprit d'amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n'y entre, De quelle validité et de quelle hauteur soe'er, Mais tombe dans l'abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. F15 = 0.628123467270 Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84) GRANTS = NULL MYFIELD1 = NULL MYFIELD2 = NULL Row No = 2 TABLEKEY = 2 F1 = 199 F2 = 0.314000010490 F3 = 0.314123456780 F4 = 101.314 F5 = 101.99 F6 = 25/12/2007 F7 = 25/12/2007 12:30:29.130 F8 = XX (Charset = UTF8 Codepage = 65001) F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001) F10 = (blob), Length = 100 F11 = 9223372036854775807 F12 = 65566 F13 = 12:30:45.000 F14 (Charset = UTF8 Codepage = 65001) If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o'er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: 'Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe'er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l'amour, continuez à jouer; Donnez-m'en un excès, que, surexcité, L'appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m'est venu à l'oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l'odeur! Assez; Pas plus: «Ce n'est pas si doux maintenant qu'avant. O esprit d'amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n'y entre, De quelle validité et de quelle hauteur soe'er, Mais tombe dans l'abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. F15 = 0.628123467270 Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84) GRANTS = NULL MYFIELD1 = My Field (Charset = UTF8 Codepage = 65001) MYFIELD2 = MY Field (Charset = UTF8 Codepage = 65001) Rows printed = 2 Commit Retaining Journal Entry Made Journal Entry at 2023/10/20 11:32:33.3460: Type = Query Attachment ID = 2 Session ID = 1 Transaction ID = 15 Query Text = "Insert Into IBXTEST(TABLEKEY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, "f12", F13, F14, MyArray, GRANTS) Values(3, 2, 0.314, 0.31412345678, 101.314, 101.99, '2007-12-25', '2007-12-25 12:30:29.1300','XX', 'The Quick Brown Fox jumps over the lazy dog', FFD8FFE000104A46494600010101004800480000FFE11E0545786966000049492A00080000000C00 0E010200200000009E0000000F01020014000000BE0000001001020008000000D200000012010300 01000000010000001A01050001000000DA000000 , 9223372036854775807, 65566, '12:30:45.0000', 'If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o''er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: ''Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe''er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l''amour, continuez à jouer; Donnez-m''en un excès, que, surexcité, L''appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m''est venu à l''oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l''odeur! Assez; Pas plus: «Ce n''est pas si doux maintenant qu''avant. O esprit d''amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n''y entre, De quelle validité et de quelle hauteur soe''er, Mais tombe dans l''abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. ', 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 , NULL) Returning MyArray, F15" Journal Entry Made Journal Entry at 2023/10/20 11:32:33.3610: Type = Commit Retaining Attachment ID = 2 Session ID = 1 Transaction ID = 17 Old Transaction ID = 15 Print Dataset for Dataset29 Row No = 1 TABLEKEY = 1 F1 = 2 F2 = 0.314000010490 F3 = 0.314123456780 F4 = 101.314 F5 = 101.99 F6 = 25/12/2007 F7 = 25/12/2007 12:30:29.130 F8 = XX (Charset = UTF8 Codepage = 65001) F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001) F10 = (blob), Length = 100 F11 = 9223372036854775807 F12 = 65566 F13 = 12:30:45.000 F14 (Charset = UTF8 Codepage = 65001) If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o'er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: 'Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe'er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l'amour, continuez à jouer; Donnez-m'en un excès, que, surexcité, L'appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m'est venu à l'oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l'odeur! Assez; Pas plus: «Ce n'est pas si doux maintenant qu'avant. O esprit d'amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n'y entre, De quelle validité et de quelle hauteur soe'er, Mais tombe dans l'abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. F15 = 0.628123467270 Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84) GRANTS = NULL MYFIELD1 = NULL MYFIELD2 = NULL Row No = 2 TABLEKEY = 2 F1 = 199 F2 = 0.314000010490 F3 = 0.314123456780 F4 = 101.314 F5 = 101.99 F6 = 25/12/2007 F7 = 25/12/2007 12:30:29.130 F8 = XX (Charset = UTF8 Codepage = 65001) F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001) F10 = (blob), Length = 100 F11 = 9223372036854775807 F12 = 65566 F13 = 12:30:45.000 F14 (Charset = UTF8 Codepage = 65001) If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o'er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: 'Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe'er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l'amour, continuez à jouer; Donnez-m'en un excès, que, surexcité, L'appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m'est venu à l'oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l'odeur! Assez; Pas plus: «Ce n'est pas si doux maintenant qu'avant. O esprit d'amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n'y entre, De quelle validité et de quelle hauteur soe'er, Mais tombe dans l'abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. F15 = 0.628123467270 Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84) GRANTS = NULL MYFIELD1 = My Field (Charset = UTF8 Codepage = 65001) MYFIELD2 = MY Field (Charset = UTF8 Codepage = 65001) Row No = 3 TABLEKEY = 3 F1 = 2 F2 = 0.314000010490 F3 = 0.314123456780 F4 = 101.314 F5 = 101.99 F6 = 25/12/2007 F7 = 25/12/2007 12:30:29.130 F8 = XX (Charset = UTF8 Codepage = 65001) F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001) F10 = (blob), Length = 100 F11 = 9223372036854775807 F12 = 65566 F13 = 12:30:45.000 F14 (Charset = UTF8 Codepage = 65001) If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o'er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: 'Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe'er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l'amour, continuez à jouer; Donnez-m'en un excès, que, surexcité, L'appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m'est venu à l'oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l'odeur! Assez; Pas plus: «Ce n'est pas si doux maintenant qu'avant. O esprit d'amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n'y entre, De quelle validité et de quelle hauteur soe'er, Mais tombe dans l'abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. F15 = 0.628123467270 Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84) GRANTS = NULL MYFIELD1 = NULL MYFIELD2 = NULL Rows printed = 3 Commit Journal Entry Made Journal Entry at 2023/10/20 11:32:33.6980: Type = Commit Attachment ID = 2 Session ID = 1 Transaction ID = 17 Journal Entry Made Journal Entry at 2023/10/20 11:32:33.7020: Type = Transaction Start Attachment ID = 2 Session ID = 1 Transaction ID = 18 Transaction Name = "{D625B6A8-1CE7-463E-9B7C-3D931EFE9F7D}" TPB = [isc_tpb_concurrency,isc_tpb_wait,isc_tpb_write] Default Completion = TACommit Print Dataset for Dataset29 Row No = 1 TABLEKEY = 1 F1 = 2 F2 = 0.314000010490 F3 = 0.314123456780 F4 = 101.314 F5 = 101.99 F6 = 25/12/2007 F7 = 25/12/2007 12:30:29.130 F8 = XX (Charset = UTF8 Codepage = 65001) F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001) F10 = (blob), Length = 100 F11 = 9223372036854775807 F12 = 65566 F13 = 12:30:45.000 F14 (Charset = UTF8 Codepage = 65001) If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o'er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: 'Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe'er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l'amour, continuez à jouer; Donnez-m'en un excès, que, surexcité, L'appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m'est venu à l'oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l'odeur! Assez; Pas plus: «Ce n'est pas si doux maintenant qu'avant. O esprit d'amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n'y entre, De quelle validité et de quelle hauteur soe'er, Mais tombe dans l'abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. F15 = 0.628123467270 Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84) GRANTS = NULL MYFIELD1 = NULL MYFIELD2 = NULL Row No = 2 TABLEKEY = 2 F1 = 199 F2 = 0.314000010490 F3 = 0.314123456780 F4 = 101.314 F5 = 101.99 F6 = 25/12/2007 F7 = 25/12/2007 12:30:29.130 F8 = XX (Charset = UTF8 Codepage = 65001) F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001) F10 = (blob), Length = 100 F11 = 9223372036854775807 F12 = 65566 F13 = 12:30:45.000 F14 (Charset = UTF8 Codepage = 65001) If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o'er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: 'Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe'er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l'amour, continuez à jouer; Donnez-m'en un excès, que, surexcité, L'appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m'est venu à l'oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l'odeur! Assez; Pas plus: «Ce n'est pas si doux maintenant qu'avant. O esprit d'amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n'y entre, De quelle validité et de quelle hauteur soe'er, Mais tombe dans l'abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. F15 = 0.628123467270 Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84) GRANTS = NULL MYFIELD1 = My Field (Charset = UTF8 Codepage = 65001) MYFIELD2 = MY Field (Charset = UTF8 Codepage = 65001) Row No = 3 TABLEKEY = 3 F1 = 2 F2 = 0.314000010490 F3 = 0.314123456780 F4 = 101.314 F5 = 101.99 F6 = 25/12/2007 F7 = 25/12/2007 12:30:29.130 F8 = XX (Charset = UTF8 Codepage = 65001) F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001) F10 = (blob), Length = 100 F11 = 9223372036854775807 F12 = 65566 F13 = 12:30:45.000 F14 (Charset = UTF8 Codepage = 65001) If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o'er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: 'Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe'er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l'amour, continuez à jouer; Donnez-m'en un excès, que, surexcité, L'appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m'est venu à l'oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l'odeur! Assez; Pas plus: «Ce n'est pas si doux maintenant qu'avant. O esprit d'amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n'y entre, De quelle validité et de quelle hauteur soe'er, Mais tombe dans l'abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. F15 = 0.628123467270 Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84) GRANTS = NULL MYFIELD1 = NULL MYFIELD2 = NULL Rows printed = 3 Journal Entry Made Journal Entry at 2023/10/20 11:32:34.0800: Type = Rollback Attachment ID = 2 Session ID = 1 Transaction ID = 18 Journal Table IBX$SESSIONID = 1 IBX$TRANSACTIONID = 10 IBX$OLDTRANSACTIONID = NULL IBX$USER = SYSDBA (Charset Id = 4 Codepage = 65001) IBX$CREATED = 2023/10/20 11:32:32.2190 IBX$SESSIONID = 1 IBX$TRANSACTIONID = 15 IBX$OLDTRANSACTIONID = NULL IBX$USER = SYSDBA (Charset Id = 4 Codepage = 65001) IBX$CREATED = 2023/10/20 11:32:33.0690 IBX$SESSIONID = 1 IBX$TRANSACTIONID = 17 IBX$OLDTRANSACTIONID = 15 IBX$USER = SYSDBA (Charset Id = 4 Codepage = 65001) IBX$CREATED = 2023/10/20 11:32:33.3630 Low Level Journal File Print out Journal Entries Journal Entry = jeTransStart(Transaction Start) Timestamp = 2023/10/20 11:32:32.2210 Attachment ID = 2 Session ID = 1 Transaction ID = 10 Transaction Name = "{D625B6A8-1CE7-463E-9B7C-3D931EFE9F7D}" TPB: Item Count = 3 isc_tpb_concurrency isc_tpb_wait isc_tpb_write Default Completion = TACommit Journal Entry = jeQuery(Query) Timestamp = 2023/10/20 11:32:32.2850 Attachment ID = 2 Session ID = 1 Transaction ID = 10 Query = Insert Into IBXTEST(TABLEKEY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, "f12", F13, F14, MyArray, GRANTS) Values(1, 2, 0.314, 0.31412345678, 101.314, 101.99, '2007-12-25', '2007-12-25 12:30:29.1300','XX', 'The Quick Brown Fox jumps over the lazy dog', FFD8FFE000104A46494600010101004800480000FFE11E0545786966000049492A00080000000C00 0E010200200000009E0000000F01020014000000BE0000001001020008000000D200000012010300 01000000010000001A01050001000000DA000000 , 9223372036854775807, 65566, '12:30:45.0000', 'If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o''er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: ''Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe''er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l''amour, continuez à jouer; Donnez-m''en un excès, que, surexcité, L''appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m''est venu à l''oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l''odeur! Assez; Pas plus: «Ce n''est pas si doux maintenant qu''avant. O esprit d''amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n''y entre, De quelle validité et de quelle hauteur soe''er, Mais tombe dans l''abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. ', 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 , NULL) Returning MyArray, F15 Journal Entry = jeQuery(Query) Timestamp = 2023/10/20 11:32:32.3080 Attachment ID = 2 Session ID = 1 Transaction ID = 10 Query = Insert Into IBXTEST(TABLEKEY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, "f12", F13, F14, MyArray, GRANTS) Values(2, 2, 0.314, 0.31412345678, 101.314, 101.99, '2007-12-25', '2007-12-25 12:30:29.1300','XX', 'The Quick Brown Fox jumps over the lazy dog', FFD8FFE000104A46494600010101004800480000FFE11E0545786966000049492A00080000000C00 0E010200200000009E0000000F01020014000000BE0000001001020008000000D200000012010300 01000000010000001A01050001000000DA000000 , 9223372036854775807, 65566, '12:30:45.0000', 'If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o''er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: ''Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe''er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l''amour, continuez à jouer; Donnez-m''en un excès, que, surexcité, L''appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m''est venu à l''oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l''odeur! Assez; Pas plus: «Ce n''est pas si doux maintenant qu''avant. O esprit d''amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n''y entre, De quelle validité et de quelle hauteur soe''er, Mais tombe dans l''abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. ', 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 , NULL) Returning MyArray, F15 Journal Entry = jeQuery(Query) Timestamp = 2023/10/20 11:32:32.3290 Attachment ID = 2 Session ID = 1 Transaction ID = 10 Query = Update IBXTEST A Set A.F1 = 199, A.F2 = 0.314000010490417, A.F3 = 0.31412345678, A.F4 = 101.314, A.F5 = 101.99, A.F6 = '2007-12-25', A.F7 = '2007-12-25 12:30:29.1300', A.F8 = 'XX', A.F9 = 'The Quick Brown Fox jumps over the lazy dog', A.F10 = FFD8FFE000104A46494600010101004800480000FFE11E0545786966000049492A00080000000C00 0E010200200000009E0000000F01020014000000BE0000001001020008000000D200000012010300 01000000010000001A01050001000000DA000000 , A.F11 = 9223372036854775807, A."f12" = 65566, A.F13 = '12:30:45.0000', A.F14 = 'If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o''er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: ''Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe''er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l''amour, continuez à jouer; Donnez-m''en un excès, que, surexcité, L''appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m''est venu à l''oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l''odeur! Assez; Pas plus: «Ce n''est pas si doux maintenant qu''avant. O esprit d''amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n''y entre, De quelle validité et de quelle hauteur soe''er, Mais tombe dans l''abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. ', A.MyArray = 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 , A."My Field" = 'My Field', A."MY Field" = 'MY Field', A.GRANTS = NULL Where A.TABLEKEY = 2 RETURNING A.MyArray, A.F15 Journal Entry = jeTransCommit(Commit) Timestamp = 2023/10/20 11:32:32.3450 Attachment ID = 2 Session ID = 1 Transaction ID = 10 Journal Entry = jeTransStart(Transaction Start) Timestamp = 2023/10/20 11:32:32.3500 Attachment ID = 2 Session ID = 1 Transaction ID = 12 Transaction Name = "{D625B6A8-1CE7-463E-9B7C-3D931EFE9F7D}" TPB: Item Count = 3 isc_tpb_concurrency isc_tpb_wait isc_tpb_write Default Completion = TACommit Journal Entry = jeQuery(Query) Timestamp = 2023/10/20 11:32:32.6180 Attachment ID = 2 Session ID = 1 Transaction ID = 12 Query = Delete From IBXTEST A Where A.TABLEKEY = 1 Journal Entry = jeTransRollbackRet(Rollback Retaining) Timestamp = 2023/10/20 11:32:32.7280 Attachment ID = 2 Session ID = 1 Transaction ID = 14 Old TransactionID = 12 Journal Entry = jeQuery(Query) Timestamp = 2023/10/20 11:32:32.9550 Attachment ID = 2 Session ID = 1 Transaction ID = 14 Query = Delete From IBXTEST A Where A.TABLEKEY = 1 Journal Entry = jeTransRollback(Rollback) Timestamp = 2023/10/20 11:32:33.0650 Attachment ID = 2 Session ID = 1 Transaction ID = 14 Journal Entry = jeTransStart(Transaction Start) Timestamp = 2023/10/20 11:32:33.0690 Attachment ID = 2 Session ID = 1 Transaction ID = 15 Transaction Name = "{D625B6A8-1CE7-463E-9B7C-3D931EFE9F7D}" TPB: Item Count = 3 isc_tpb_concurrency isc_tpb_wait isc_tpb_write Default Completion = TACommit Journal Entry = jeQuery(Query) Timestamp = 2023/10/20 11:32:33.3460 Attachment ID = 2 Session ID = 1 Transaction ID = 15 Query = Insert Into IBXTEST(TABLEKEY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, "f12", F13, F14, MyArray, GRANTS) Values(3, 2, 0.314, 0.31412345678, 101.314, 101.99, '2007-12-25', '2007-12-25 12:30:29.1300','XX', 'The Quick Brown Fox jumps over the lazy dog', FFD8FFE000104A46494600010101004800480000FFE11E0545786966000049492A00080000000C00 0E010200200000009E0000000F01020014000000BE0000001001020008000000D200000012010300 01000000010000001A01050001000000DA000000 , 9223372036854775807, 65566, '12:30:45.0000', 'If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o''er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: ''Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe''er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l''amour, continuez à jouer; Donnez-m''en un excès, que, surexcité, L''appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m''est venu à l''oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l''odeur! Assez; Pas plus: «Ce n''est pas si doux maintenant qu''avant. O esprit d''amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n''y entre, De quelle validité et de quelle hauteur soe''er, Mais tombe dans l''abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. ', 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 , NULL) Returning MyArray, F15 Journal Entry = jeTransCommitRet(Commit Retaining) Timestamp = 2023/10/20 11:32:33.3610 Attachment ID = 2 Session ID = 1 Transaction ID = 17 Old TransactionID = 15 Journal Entry = jeTransCommit(Commit) Timestamp = 2023/10/20 11:32:33.6980 Attachment ID = 2 Session ID = 1 Transaction ID = 17 Journal Entry = jeTransStart(Transaction Start) Timestamp = 2023/10/20 11:32:33.7020 Attachment ID = 2 Session ID = 1 Transaction ID = 18 Transaction Name = "{D625B6A8-1CE7-463E-9B7C-3D931EFE9F7D}" TPB: Item Count = 3 isc_tpb_concurrency isc_tpb_wait isc_tpb_write Default Completion = TACommit Journal Entry = jeTransRollback(Rollback) Timestamp = 2023/10/20 11:32:34.0800 Attachment ID = 2 Session ID = 1 Transaction ID = 18 Print out Journal File using TIBJournal Journal Entry at 2023/10/20 11:32:32.2210: Type = Transaction Start Attachment ID = 2 Session ID = 1 Transaction ID = 10 Transaction Name = "{D625B6A8-1CE7-463E-9B7C-3D931EFE9F7D}" TPB = [isc_tpb_concurrency,isc_tpb_wait,isc_tpb_write] Default Completion = TACommit Journal Entry at 2023/10/20 11:32:32.2850: Type = Query Attachment ID = 2 Session ID = 1 Transaction ID = 10 Query Text = "Insert Into IBXTEST(TABLEKEY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, "f12", F13, F14, MyArray, GRANTS) Values(1, 2, 0.314, 0.31412345678, 101.314, 101.99, '2007-12-25', '2007-12-25 12:30:29.1300','XX', 'The Quick Brown Fox jumps over the lazy dog', FFD8FFE000104A46494600010101004800480000FFE11E0545786966000049492A00080000000C00 0E010200200000009E0000000F01020014000000BE0000001001020008000000D200000012010300 01000000010000001A01050001000000DA000000 , 9223372036854775807, 65566, '12:30:45.0000', 'If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o''er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: ''Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe''er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l''amour, continuez à jouer; Donnez-m''en un excès, que, surexcité, L''appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m''est venu à l''oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l''odeur! Assez; Pas plus: «Ce n''est pas si doux maintenant qu''avant. O esprit d''amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n''y entre, De quelle validité et de quelle hauteur soe''er, Mais tombe dans l''abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. ', 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 , NULL) Returning MyArray, F15" Journal Entry at 2023/10/20 11:32:32.3080: Type = Query Attachment ID = 2 Session ID = 1 Transaction ID = 10 Query Text = "Insert Into IBXTEST(TABLEKEY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, "f12", F13, F14, MyArray, GRANTS) Values(2, 2, 0.314, 0.31412345678, 101.314, 101.99, '2007-12-25', '2007-12-25 12:30:29.1300','XX', 'The Quick Brown Fox jumps over the lazy dog', FFD8FFE000104A46494600010101004800480000FFE11E0545786966000049492A00080000000C00 0E010200200000009E0000000F01020014000000BE0000001001020008000000D200000012010300 01000000010000001A01050001000000DA000000 , 9223372036854775807, 65566, '12:30:45.0000', 'If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o''er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: ''Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe''er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l''amour, continuez à jouer; Donnez-m''en un excès, que, surexcité, L''appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m''est venu à l''oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l''odeur! Assez; Pas plus: «Ce n''est pas si doux maintenant qu''avant. O esprit d''amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n''y entre, De quelle validité et de quelle hauteur soe''er, Mais tombe dans l''abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. ', 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 , NULL) Returning MyArray, F15" Journal Entry at 2023/10/20 11:32:32.3290: Type = Query Attachment ID = 2 Session ID = 1 Transaction ID = 10 Query Text = "Update IBXTEST A Set A.F1 = 199, A.F2 = 0.314000010490417, A.F3 = 0.31412345678, A.F4 = 101.314, A.F5 = 101.99, A.F6 = '2007-12-25', A.F7 = '2007-12-25 12:30:29.1300', A.F8 = 'XX', A.F9 = 'The Quick Brown Fox jumps over the lazy dog', A.F10 = FFD8FFE000104A46494600010101004800480000FFE11E0545786966000049492A00080000000C00 0E010200200000009E0000000F01020014000000BE0000001001020008000000D200000012010300 01000000010000001A01050001000000DA000000 , A.F11 = 9223372036854775807, A."f12" = 65566, A.F13 = '12:30:45.0000', A.F14 = 'If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o''er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: ''Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe''er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l''amour, continuez à jouer; Donnez-m''en un excès, que, surexcité, L''appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m''est venu à l''oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l''odeur! Assez; Pas plus: «Ce n''est pas si doux maintenant qu''avant. O esprit d''amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n''y entre, De quelle validité et de quelle hauteur soe''er, Mais tombe dans l''abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. ', A.MyArray = 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 , A."My Field" = 'My Field', A."MY Field" = 'MY Field', A.GRANTS = NULL Where A.TABLEKEY = 2 RETURNING A.MyArray, A.F15" Journal Entry at 2023/10/20 11:32:32.3450: Type = Commit Attachment ID = 2 Session ID = 1 Transaction ID = 10 Journal Entry at 2023/10/20 11:32:32.3500: Type = Transaction Start Attachment ID = 2 Session ID = 1 Transaction ID = 12 Transaction Name = "{D625B6A8-1CE7-463E-9B7C-3D931EFE9F7D}" TPB = [isc_tpb_concurrency,isc_tpb_wait,isc_tpb_write] Default Completion = TACommit Journal Entry at 2023/10/20 11:32:32.6180: Type = Query Attachment ID = 2 Session ID = 1 Transaction ID = 12 Query Text = "Delete From IBXTEST A Where A.TABLEKEY = 1" Journal Entry at 2023/10/20 11:32:32.7280: Type = Rollback Retaining Attachment ID = 2 Session ID = 1 Transaction ID = 14 Old Transaction ID = 12 Journal Entry at 2023/10/20 11:32:32.9550: Type = Query Attachment ID = 2 Session ID = 1 Transaction ID = 14 Query Text = "Delete From IBXTEST A Where A.TABLEKEY = 1" Journal Entry at 2023/10/20 11:32:33.0650: Type = Rollback Attachment ID = 2 Session ID = 1 Transaction ID = 14 Journal Entry at 2023/10/20 11:32:33.0690: Type = Transaction Start Attachment ID = 2 Session ID = 1 Transaction ID = 15 Transaction Name = "{D625B6A8-1CE7-463E-9B7C-3D931EFE9F7D}" TPB = [isc_tpb_concurrency,isc_tpb_wait,isc_tpb_write] Default Completion = TACommit Journal Entry at 2023/10/20 11:32:33.3460: Type = Query Attachment ID = 2 Session ID = 1 Transaction ID = 15 Query Text = "Insert Into IBXTEST(TABLEKEY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, "f12", F13, F14, MyArray, GRANTS) Values(3, 2, 0.314, 0.31412345678, 101.314, 101.99, '2007-12-25', '2007-12-25 12:30:29.1300','XX', 'The Quick Brown Fox jumps over the lazy dog', FFD8FFE000104A46494600010101004800480000FFE11E0545786966000049492A00080000000C00 0E010200200000009E0000000F01020014000000BE0000001001020008000000D200000012010300 01000000010000001A01050001000000DA000000 , 9223372036854775807, 65566, '12:30:45.0000', 'If music be the food of love, play on; Give me excess of it, that, surfeiting, The appetite may sicken, and so die. That strain again! it had a dying fall: O, it came o''er my ear like the sweet south, That breathes upon a bank of violets, Stealing and giving odour! Enough; no more: ''Tis not so sweet now as it was before. O spirit of love! how quick and fresh art thou, That, notwithstanding thy capacity 10 Receiveth as the sea, nought enters there, Of what validity and pitch soe''er, But falls into abatement and low price, Even in a minute: so full of shapes is fancy That it alone is high fantastical. Si la musique est la nourriture de l''amour, continuez à jouer; Donnez-m''en un excès, que, surexcité, L''appétit peut devenir malade et ainsi mourir. Cette souche encore! il a eu une chute mourante: Oh, ça m''est venu à l''oreille comme le doux sud, Qui souffle sur une banque de violettes, Voler et donner de l''odeur! Assez; Pas plus: «Ce n''est pas si doux maintenant qu''avant. O esprit d''amour! comme tu es rapide et fraîche, Que, malgré ta capacité 10 Reçoit comme la mer, rien n''y entre, De quelle validité et de quelle hauteur soe''er, Mais tombe dans l''abattement et le prix bas, Même en une minute: si plein de formes est fantaisie Que cela seul est fantastique. ', 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 , NULL) Returning MyArray, F15" Journal Entry at 2023/10/20 11:32:33.3610: Type = Commit Retaining Attachment ID = 2 Session ID = 1 Transaction ID = 17 Old Transaction ID = 15 Journal Entry at 2023/10/20 11:32:33.6980: Type = Commit Attachment ID = 2 Session ID = 1 Transaction ID = 17 Journal Entry at 2023/10/20 11:32:33.7020: Type = Transaction Start Attachment ID = 2 Session ID = 1 Transaction ID = 18 Transaction Name = "{D625B6A8-1CE7-463E-9B7C-3D931EFE9F7D}" TPB = [isc_tpb_concurrency,isc_tpb_wait,isc_tpb_write] Default Completion = TACommit Journal Entry at 2023/10/20 11:32:34.0800: Type = Rollback Attachment ID = 2 Session ID = 1 Transaction ID = 18 Creating Database from resources/Test29.sql Create Table IBXTest ( TableKey Integer not null, F1 Smallint, F2 Float, F3 Double Precision, F4 Decimal(9,3), F5 Decimal(18,4), F6 Date, F7 Timestamp, F8 Char (2), F9 VarChar(256), F10 Blob, F11 BigInt, "f12" Integer, F13 Time, F14 Blob sub_type text, F15 Double Precision Computed by (F2 + F3), MyArray Integer [0:16], "GRANTS" VarChar(20), "My Field" VarChar(32), "MY Field" VarChar(32), Primary Key(TableKey) ); Create Generator IBXGen; Comparing original database with restored database Run diff command returns 256 Output from diff command 216c216 < ALTER SEQUENCE IBXGEN RESTART WITH 3; --- > ALTER SEQUENCE IBXGEN RESTART WITH 0; ------------------------------------------------------ Test Suite Ends