test.sql 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580
  1. -- Generated by BladeSmith 4.20.TC1 DO NOT MODIFY. --
  2. execute procedure ifx_allow_newline('t');
  3. begin work;
  4. create distinct type utl_file_file_type as integer;
  5. grant usage on type utl_file_file_type to public;
  6. create distinct type dbms_output_chararr as lvarchar;
  7. grant usage on type dbms_output_chararr to public;
  8. create function utl_file_fopen (lvarchar,lvarchar,lvarchar,integer)
  9. returns utl_file_file_type
  10. external name "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(utl_file_fopen)" language c;
  11. alter function utl_file_fopen (lvarchar,lvarchar,lvarchar,integer)
  12. with (Modify External Name = "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(utl_file_fopen)");
  13. grant execute on function utl_file_fopen (lvarchar,lvarchar,lvarchar,integer) to public;
  14. create function utl_file_is_open (utl_file_file_type)
  15. returns boolean
  16. external name "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(utl_file_is_open)" language c;
  17. alter function utl_file_is_open (utl_file_file_type)
  18. with (Modify External Name = "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(utl_file_is_open)");
  19. grant execute on function utl_file_is_open (utl_file_file_type) to public;
  20. create procedure utl_file_fclose (utl_file_file_type)
  21. external name "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(utl_file_fclose)" language c;
  22. alter procedure utl_file_fclose (utl_file_file_type)
  23. with (Modify External Name = "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(utl_file_fclose)");
  24. grant execute on procedure utl_file_fclose (utl_file_file_type) to public;
  25. create procedure utl_file_get_line (utl_file_file_type,out lvarchar)
  26. external name "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(utl_file_get_line)" language c;
  27. alter procedure utl_file_get_line (utl_file_file_type,lvarchar)
  28. with (Modify External Name = "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(utl_file_get_line)");
  29. grant execute on procedure utl_file_get_line (utl_file_file_type,lvarchar) to public;
  30. create procedure utl_file_put (utl_file_file_type)
  31. external name "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(utl_file_put)" language c;
  32. alter procedure utl_file_put (utl_file_file_type)
  33. with (Modify External Name = "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(utl_file_put)");
  34. grant execute on procedure utl_file_put (utl_file_file_type) to public;
  35. create procedure utl_file_new_line (utl_file_file_type,integer default 1)
  36. external name "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(utl_file_new_line)" language c;
  37. alter procedure utl_file_new_line (utl_file_file_type,integer)
  38. with (Modify External Name = "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(utl_file_new_line)");
  39. grant execute on procedure utl_file_new_line (utl_file_file_type,integer) to public;
  40. create procedure utl_file_put_line (utl_file_file_type)
  41. external name "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(utl_file_put_line)" language c;
  42. alter procedure utl_file_put_line (utl_file_file_type)
  43. with (Modify External Name = "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(utl_file_put_line)");
  44. grant execute on procedure utl_file_put_line (utl_file_file_type) to public;
  45. create procedure utl_file_putf (utl_file_file_type,lvarchar,lvarchar default NULL,lvarchar default NULL,lvarchar default NULL,lvarchar default NULL,lvarchar default NULL)
  46. external name "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(utl_file_putf)" language c;
  47. alter procedure utl_file_putf (utl_file_file_type,lvarchar,lvarchar,lvarchar,lvarchar,lvarchar,lvarchar)
  48. with (Modify External Name = "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(utl_file_putf)");
  49. alter procedure utl_file_putf (utl_file_file_type,lvarchar,lvarchar,lvarchar,lvarchar,lvarchar,lvarchar)
  50. with (add handlesnulls);
  51. grant execute on procedure utl_file_putf (utl_file_file_type,lvarchar,lvarchar,lvarchar,lvarchar,lvarchar,lvarchar) to public;
  52. create procedure utl_file_fflush (utl_file_file_type)
  53. external name "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(utl_file_fflush)" language c;
  54. alter procedure utl_file_fflush (utl_file_file_type)
  55. with (Modify External Name = "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(utl_file_fflush)");
  56. grant execute on procedure utl_file_fflush (utl_file_file_type) to public;
  57. create procedure utl_file_fclose_all ()
  58. external name "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(utl_file_fclose_all)" language c;
  59. alter procedure utl_file_fclose_all ()
  60. with (Modify External Name = "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(utl_file_fclose_all)");
  61. grant execute on procedure utl_file_fclose_all () to public;
  62. create procedure dbms_output_enable (integer default 20000)
  63. external name "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_output_enable)" language c;
  64. alter procedure dbms_output_enable (integer)
  65. with (Modify External Name = "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_output_enable)");
  66. grant execute on procedure dbms_output_enable (integer) to public;
  67. create procedure dbms_output_disable ()
  68. external name "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_output_disable)" language c;
  69. alter procedure dbms_output_disable ()
  70. with (Modify External Name = "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_output_disable)");
  71. grant execute on procedure dbms_output_disable () to public;
  72. create procedure dbms_output_put (lvarchar)
  73. external name "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_output_put)" language c;
  74. alter procedure dbms_output_put (lvarchar)
  75. with (Modify External Name = "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_output_put)");
  76. grant execute on procedure dbms_output_put (lvarchar) to public;
  77. create procedure dbms_output_put_line (lvarchar)
  78. external name "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_output_put_line)" language c;
  79. alter procedure dbms_output_put_line (lvarchar)
  80. with (Modify External Name = "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_output_put_line)");
  81. grant execute on procedure dbms_output_put_line (lvarchar) to public;
  82. create procedure dbms_output_new_line ()
  83. external name "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_output_new_line)" language c;
  84. alter procedure dbms_output_new_line ()
  85. with (Modify External Name = "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_output_new_line)");
  86. grant execute on procedure dbms_output_new_line () to public;
  87. create procedure dbms_output_get_line (lvarchar,out integer)
  88. external name "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_output_get_line)" language c;
  89. alter procedure dbms_output_get_line (lvarchar,integer)
  90. with (Modify External Name = "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_output_get_line)");
  91. grant execute on procedure dbms_output_get_line (lvarchar,integer) to public;
  92. create procedure dbms_output_get_lines (dbms_output_chararr,out integer)
  93. external name "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_output_get_lines)" language c;
  94. alter procedure dbms_output_get_lines (dbms_output_chararr,integer)
  95. with (Modify External Name = "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_output_get_lines)");
  96. grant execute on procedure dbms_output_get_lines (dbms_output_chararr,integer) to public;
  97. create procedure dbms_lob_append (blob,blob)
  98. external name "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_lob_append)" language c;
  99. alter procedure dbms_lob_append (blob,blob)
  100. with (Modify External Name = "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_lob_append)");
  101. alter procedure dbms_lob_append (blob,blob)
  102. with (add handlesnulls);
  103. grant execute on procedure dbms_lob_append (blob,blob) to public;
  104. create procedure dbms_lob_append (clob,clob)
  105. external name "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_lob_append)" language c;
  106. alter procedure dbms_lob_append (clob,clob)
  107. with (Modify External Name = "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_lob_append)");
  108. grant execute on procedure dbms_lob_append (clob,clob) to public;
  109. create function dbms_lob_getlength (blob)
  110. returns integer
  111. external name "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_lob_getlength)" language c;
  112. alter function dbms_lob_getlength (blob)
  113. with (Modify External Name = "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_lob_getlength)");
  114. grant execute on function dbms_lob_getlength (blob) to public;
  115. create function dbms_lob_getlength (clob)
  116. returns integer
  117. external name "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_lob_getlength)" language c;
  118. alter function dbms_lob_getlength (clob)
  119. with (Modify External Name = "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_lob_getlength)");
  120. grant execute on function dbms_lob_getlength (clob) to public;
  121. create function dbms_lob_compare (blob,blob,integer default 2147483647,integer default 1,integer default 1)
  122. returns integer
  123. external name "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_lob_compare)" language c;
  124. alter function dbms_lob_compare (blob,blob,integer,integer,integer)
  125. with (Modify External Name = "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_lob_compare)");
  126. grant execute on function dbms_lob_compare (blob,blob,integer,integer,integer) to public;
  127. create procedure dbms_lob_copy (blob,blob,integer,integer default 1,integer default 1)
  128. external name "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_lob_copy)" language c;
  129. alter procedure dbms_lob_copy (blob,blob,integer,integer,integer)
  130. with (Modify External Name = "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_lob_copy)");
  131. alter procedure dbms_lob_copy (blob,blob,integer,integer,integer)
  132. with (add handlesnulls);
  133. grant execute on procedure dbms_lob_copy (blob,blob,integer,integer,integer) to public;
  134. create procedure dbms_lob_copy (clob,clob,integer,integer default 1,integer default 1)
  135. external name "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_lob_copy)" language c;
  136. alter procedure dbms_lob_copy (clob,clob,integer,integer,integer)
  137. with (Modify External Name = "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_lob_copy)");
  138. alter procedure dbms_lob_copy (clob,clob,integer,integer,integer)
  139. with (add handlesnulls);
  140. grant execute on procedure dbms_lob_copy (clob,clob,integer,integer,integer) to public;
  141. create procedure dbms_lob_erase (blob,integer,integer default 1)
  142. external name "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_blob_erase)" language c;
  143. alter procedure dbms_lob_erase (blob,integer,integer)
  144. with (Modify External Name = "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_blob_erase)");
  145. grant execute on procedure dbms_lob_erase (blob,integer,integer) to public;
  146. create procedure dbms_lob_erase (clob,integer,integer default 1)
  147. external name "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_clob_erase)" language c;
  148. alter procedure dbms_lob_erase (clob,integer,integer)
  149. with (Modify External Name = "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_clob_erase)");
  150. grant execute on procedure dbms_lob_erase (clob,integer,integer) to public;
  151. create function dbms_lob_substr (clob,integer default 32767,integer default 1)
  152. returns lvarchar
  153. external name "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_lob_substr)" language c;
  154. alter function dbms_lob_substr (clob,integer,integer)
  155. with (Modify External Name = "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_lob_substr)");
  156. grant execute on function dbms_lob_substr (clob,integer,integer) to public;
  157. create function dbms_lob_instr (clob,lvarchar,integer default 1,integer default 1)
  158. returns integer
  159. external name "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_lob_instr)" language c;
  160. alter function dbms_lob_instr (clob,lvarchar,integer,integer)
  161. with (Modify External Name = "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_lob_instr)");
  162. grant execute on function dbms_lob_instr (clob,lvarchar,integer,integer) to public;
  163. create procedure dbms_lob_read (clob,integer,integer,out lvarchar)
  164. external name "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_lob_read)" language c;
  165. alter procedure dbms_lob_read (clob,integer,integer,lvarchar)
  166. with (Modify External Name = "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_lob_read)");
  167. grant execute on procedure dbms_lob_read (clob,integer,integer,lvarchar) to public;
  168. create procedure dbms_lob_trim (blob,integer)
  169. external name "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_lob_trim)" language c;
  170. alter procedure dbms_lob_trim (blob,integer)
  171. with (Modify External Name = "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_lob_trim)");
  172. grant execute on procedure dbms_lob_trim (blob,integer) to public;
  173. create procedure dbms_lob_trim (clob,integer)
  174. external name "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_lob_trim)" language c;
  175. alter procedure dbms_lob_trim (clob,integer)
  176. with (Modify External Name = "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_lob_trim)");
  177. grant execute on procedure dbms_lob_trim (clob,integer) to public;
  178. create procedure dbms_lob_write (clob,integer,integer,lvarchar)
  179. external name "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_lob_write)" language c;
  180. alter procedure dbms_lob_write (clob,integer,integer,lvarchar)
  181. with (Modify External Name = "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_lob_write)");
  182. grant execute on procedure dbms_lob_write (clob,integer,integer,lvarchar) to public;
  183. create function dbms_lob_new_clob (lvarchar)
  184. returns clob
  185. external name "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_lob_new_clob)" language c;
  186. alter function dbms_lob_new_clob (lvarchar)
  187. with (Modify External Name = "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_lob_new_clob)");
  188. alter function dbms_lob_new_clob (lvarchar)
  189. with (add not variant);
  190. grant execute on function dbms_lob_new_clob (lvarchar) to public;
  191. create procedure dbms_lob_append (clob,lvarchar)
  192. external name "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_lob_append_str)" language c;
  193. alter procedure dbms_lob_append (clob,lvarchar)
  194. with (Modify External Name = "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_lob_append_str)");
  195. alter procedure dbms_lob_append (clob,lvarchar)
  196. with (add not variant);
  197. grant execute on procedure dbms_lob_append (clob,lvarchar) to public;
  198. create function dbms_lob_compare (clob,clob,integer default 2147483647,integer default 1,integer default 1)
  199. returns integer
  200. external name "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_lob_compare)" language c;
  201. alter function dbms_lob_compare (clob,clob,integer,integer,integer)
  202. with (Modify External Name = "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(dbms_lob_compare)");
  203. grant execute on function dbms_lob_compare (clob,clob,integer,integer,integer) to public;
  204. create procedure dbms_alert_register (name lvarchar)
  205. define evid integer;
  206. let evid = DBMS_ALERT_GET_EVENT_ID(name);
  207. insert into DBMS_ALERT_REGISTERED values (DBINFO('sessionid'), evid);
  208. end procedure;
  209. grant execute on procedure dbms_alert_register (lvarchar) to public;
  210. create function dbms_alert_get_event_id (name lvarchar)
  211. returns integer
  212. define evid integer;
  213. select event_id into evid from DBMS_ALERT_EVENTS
  214. where name = event_name;
  215. if evid IS NULL then
  216. insert into DBMS_ALERT_EVENTS(event_name) values (name);
  217. let evid = DBINFO('sqlca.sqlerrd1');
  218. end if;
  219. return evid;
  220. end function;
  221. grant execute on function dbms_alert_get_event_id (lvarchar) to public;
  222. create procedure dbms_alert_remove (name lvarchar)
  223. define evid integer;
  224. define sesid integer;
  225. let evid = DBMS_ALERT_GET_EVENT_ID(name);
  226. let sesid = DBINFO('sessionid');
  227. delete from DBMS_ALERT_REGISTERED where
  228. (session_id = sesid AND event_id = evid);
  229. delete from DBMS_ALERT_SIGNALED where
  230. (session_id = sesid AND event_id = evid);
  231. end procedure;
  232. grant execute on procedure dbms_alert_remove (lvarchar) to public;
  233. create procedure dbms_alert_removeall ()
  234. define sesid integer;
  235. let sesid = DBINFO('sessionid');
  236. delete from DBMS_ALERT_REGISTERED where
  237. (session_id = sesid);
  238. delete from DBMS_ALERT_SIGNALED where
  239. (session_id = sesid);
  240. end procedure;
  241. grant execute on procedure dbms_alert_removeall () to public;
  242. create procedure dbms_alert_set_defaults (sensitivity integer)
  243. define global poll_interval INTEGER DEFAULT 1;
  244. let poll_interval = sensitivity;
  245. end procedure;
  246. grant execute on procedure dbms_alert_set_defaults (integer) to public;
  247. create function dbms_alert_get_defaults ()
  248. returns integer
  249. define global poll_interval INTEGER DEFAULT 1;
  250. return poll_interval;
  251. end function;
  252. grant execute on function dbms_alert_get_defaults () to public;
  253. create procedure dbms_alert_signal (name lvarchar,message lvarchar)
  254. define evid integer;
  255. define cnt integer;
  256. define signal_time DATETIME year to second;
  257. let evid = DBMS_ALERT_GET_EVENT_ID(name);
  258. if evid IS NOT NULL THEN
  259. let signal_time = CURRENT;
  260. insert into DBMS_ALERT_SIGNALED
  261. select evid, session_id, signal_time, message
  262. from DBMS_ALERT_REGISTERED where (evid = event_id);
  263. end if;
  264. end procedure;
  265. grant execute on procedure dbms_alert_signal (lvarchar,lvarchar) to public;
  266. create procedure dbms_alert_waitone (name lvarchar,message lvarchar,status integer,timeout integer default 86400)
  267. define global poll_interval INTEGER DEFAULT 1;
  268. define evid integer;
  269. define sesid integer;
  270. define cnt integer;
  271. define sig_time DATETIME year to second;
  272. define yet integer;
  273. let sesid = DBINFO('sessionid');
  274. let evid = DBMS_ALERT_GET_EVENT_ID(name);
  275. let status = 2;
  276. if evid IS NOT NULL THEN
  277. let status = 1;
  278. let sesid = DBINFO('sessionid');
  279. let yet = timeout;
  280. LOOP
  281. select count(alert_msg),MAX(signal_time) into cnt,sig_time from DBMS_ALERT_SIGNALED
  282. where (evid = event_id AND sesid = session_id);
  283. if cnt > 0 then
  284. foreach sig_cursor for
  285. select alert_msg into message from DBMS_ALERT_SIGNALED
  286. where (evid = event_id AND sesid = session_id AND signal_time = sig_time)
  287. delete from DBMS_ALERT_SIGNALED
  288. where current of sig_cursor;
  289. end foreach;
  290. let status = 0;
  291. exit loop;
  292. elif yet > 0 then
  293. call DBMS_ALERT_WAIT(poll_interval);
  294. let yet = yet - poll_interval;
  295. else
  296. exit loop;
  297. end if;
  298. end loop;
  299. end if;
  300. end procedure;
  301. grant execute on procedure dbms_alert_waitone (lvarchar,lvarchar,integer,integer) to public;
  302. create procedure dbms_alert_waitany (name lvarchar,message lvarchar,status integer,timeout integer default 86400)
  303. define global poll_interval INTEGER DEFAULT 1;
  304. define evid integer;
  305. define sesid integer;
  306. define cnt integer;
  307. define sig_time DATETIME year to second;
  308. define yet integer;
  309. let sesid = DBINFO('sessionid');
  310. let name = NULL;
  311. let status = 1;
  312. let sesid = DBINFO('sessionid');
  313. let yet = timeout;
  314. LOOP
  315. select count(alert_msg),MAX(signal_time) into cnt,sig_time from DBMS_ALERT_SIGNALED
  316. where (sesid = session_id);
  317. if cnt > 0 then
  318. begin work;
  319. foreach sig_cursor for
  320. select alert_msg, event_id into message, evid
  321. from DBMS_ALERT_SIGNALED
  322. where (sesid = session_id AND signal_time = sig_time)
  323. delete from DBMS_ALERT_SIGNALED
  324. where current of sig_cursor;
  325. select event_name into name
  326. from DBMS_ALERT_EVENTS
  327. where evid = event_id;
  328. end foreach;
  329. commit work;
  330. let status = 0;
  331. exit loop;
  332. elif yet > 0 then
  333. call DBMS_ALERT_WAIT(poll_interval);
  334. let yet = yet - poll_interval;
  335. else
  336. exit loop;
  337. end if;
  338. end loop;
  339. end procedure;
  340. grant execute on procedure dbms_alert_waitany (lvarchar,lvarchar,integer,integer) to public;
  341. create procedure dbms_alert_wait (integer default 1)
  342. external name "(mt_yield)" language c;
  343. alter procedure dbms_alert_wait (integer)
  344. with (Modify External Name = "(mt_yield)");
  345. grant execute on procedure dbms_alert_wait (integer) to public;
  346. create procedure dbms_random_initialize (seed integer)
  347. define global XI bigint default 0;
  348. let XI = seed * 4294967296;
  349. end procedure;
  350. grant execute on procedure dbms_random_initialize (integer) to public;
  351. create procedure dbms_random_seed (seed integer)
  352. define global XI bigint default 0;
  353. let XI = seed * 4294967296;
  354. end procedure;
  355. grant execute on procedure dbms_random_seed (integer) to public;
  356. create function dbms_random_random ()
  357. returns integer
  358. define global XI bigint default 0;
  359. if XI = 0 then
  360. let XI = 8589934592;
  361. end if;
  362. return dbms_random_jrand48(XI);
  363. end function;
  364. grant execute on function dbms_random_random () to public;
  365. create procedure dbms_random_terminate ()
  366. define global XI bigint default 0;
  367. let XI = 0;
  368. end procedure;
  369. grant execute on procedure dbms_random_terminate () to public;
  370. create function dbms_random_jrand48 (out integer)
  371. returns integer
  372. external name "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(jrand48)" language c;
  373. alter function dbms_random_jrand48 (integer)
  374. with (Modify External Name = "$INFORMIXDIR/extend/excompat.1.0/excompat.bld(jrand48)");
  375. alter function dbms_random_jrand48 (integer)
  376. with (add handlesnulls);
  377. grant execute on function dbms_random_jrand48 (integer) to public;
  378. create table if not exists DBMS_ALERT_EVENTS
  379. ( event_id SERIAL unique,
  380. event_name VARCHAR(30) primary key
  381. );
  382. create table if not exists DBMS_ALERT_REGISTERED
  383. ( session_id INTEGER,
  384. event_id INTEGER references DBMS_ALERT_EVENTS(event_id)
  385. );
  386. create unique index if not exists DBMS_ALERT_SESIDX
  387. on DBMS_ALERT_REGISTERED (session_id, event_id);
  388. create table if not exists DBMS_ALERT_SIGNALED
  389. ( event_id INTEGER references DBMS_ALERT_EVENTS(event_id),
  390. session_id INTEGER,
  391. signal_time DATETIME year to second,
  392. alert_msg LVARCHAR
  393. );
  394. insert into informix.syserrors
  395. (level, seqno, sqlstate, locale, message)
  396. values
  397. (
  398. 0, 1, "EXC21", "en_us.1252", "DBMS_LOB error"
  399. );
  400. commit work;