{"id":501969,"date":"2026-11-06T14:23:37","date_gmt":"2026-11-06T11:23:37","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=501969"},"modified":"2026-11-06T14:23:37","modified_gmt":"2026-11-06T11:23:37","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=501969","title":{"rendered":"Wrap PL\/SQL \u0432 Oracle 7.2\u20139.2: DIANA, \u0441\u043b\u043e\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0444\u043e\u0440\u043c\u0430\u0442 V1"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<h3>\u041f\u0440\u0435\u0434\u044b\u0441\u0442\u043e\u0440\u0438\u044f<\/h3>\n<p>\u0417\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0434\u0432\u0430 \u0433\u043e\u0434\u0430 \u043c\u043d\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0437\u0430\u0432\u0451\u0440\u043d\u0443\u0442\u044b\u0439 \u043a\u043e\u0434 Oracle \u0432\u0435\u0440\u0441\u0438\u0439 7.2-9.2:<\/p>\n<ul>\n<li>\n<p>\u043e\u0434\u0438\u043d \u0440\u0430\u0437 &#8212; \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0438;<\/p>\n<\/li>\n<li>\n<p>\u043e\u0434\u0438\u043d \u0440\u0430\u0437 &#8212; \u0447\u0442\u043e\u0431\u044b \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043d\u0430\u0448 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043f\u043e\u0442\u0435\u0440\u044f\u043d\u043d\u044b\u0439 \u043f\u0430\u043a\u0435\u0442;<\/p>\n<\/li>\n<li>\n<p>\u043f\u0430\u0440\u0443 \u0440\u0430\u0437 &#8212; \u043f\u043e \u043f\u0440\u043e\u0441\u044c\u0431\u0435 \u043a\u043e\u043b\u043b\u0435\u0433 \u0438\u0437 \u0444\u0438\u043d\u0442\u0435\u0445\u0430: \u0434\u0440\u0435\u0432\u043d\u0438\u0439 \u043a\u043e\u0434 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u043b \u043d\u0430\u043b\u043e\u0433, \u0438 \u043d\u0430\u0434\u043e \u0431\u044b\u043b\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0447\u0435\u043c\u0443.<\/p>\n<\/li>\n<\/ul>\n<p>\u0418\u043c\u0435\u0432\u0448\u0430\u044f\u0441\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u0430 1993 \u0433\u043e\u0434\u0430, \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u0430\u044f \u043d\u0430 PL\/SQL 2.2, \u043f\u043e\u043c\u043e\u0433\u043b\u0430 \u043d\u0435\u0441\u0438\u043b\u044c\u043d\u043e: \u043a\u043e\u0434 \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0434\u043e\u0432\u0435\u0441\u0442\u0438 \u0434\u043e \u0443\u0440\u043e\u0432\u043d\u044f, \u043f\u0440\u0438\u0433\u043e\u0434\u043d\u043e\u0433\u043e \u0434\u043b\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438. \u0422\u0430\u043a \u044f \u043f\u043e\u0433\u0440\u0443\u0437\u0438\u043b\u0441\u044f \u0432 \u0442\u0435\u043c\u0443 unwrapping-\u0430, \u0438 \u044d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f &#8212; \u0441\u0432\u043e\u0434\u043a\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0432\u044b\u044f\u0441\u043d\u0438\u0442\u044c \u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0435 V1 \u0432 \u0445\u043e\u0434\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f unwrapper-\u0430.<\/p>\n<h3>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h3>\n<p>\u0412 Oracle 7.2\u20139.2 \u0443\u0442\u0438\u043b\u0438\u0442\u0430 WRAP \u043d\u0435 \u0448\u0438\u0444\u0440\u0443\u0435\u0442 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442. \u041e\u043d\u0430 \u043f\u0440\u043e\u0433\u043e\u043d\u044f\u0435\u0442 \u0435\u0433\u043e \u0447\u0435\u0440\u0435\u0437 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 PL\/SQL \u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0432 \u0444\u0430\u0439\u043b \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e DIANA &#8212; \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0431\u0430\u0437\u0430 \u0437\u0430\u0442\u0435\u043c \u0434\u043e\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442 \u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0444\u043e\u0440\u043c\u0430\u0442 V1 \u043e\u0431\u0440\u0430\u0442\u0438\u043c: \u0438\u043c\u0435\u043d\u0430 \u0438 \u043b\u0438\u0442\u0435\u0440\u0430\u043b\u044b \u043b\u0435\u0436\u0430\u0442 \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c \u043b\u0435\u043a\u0441\u0438\u043a\u043e\u043d\u0435, \u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b &#8212; \u0432 \u0448\u0435\u0441\u0442\u0438 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0445 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0445.<\/p>\n<p>\u0421\u0442\u0430\u0442\u044c\u044f \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 DIANA, \u0447\u0435\u0440\u0435\u0437 \u043a\u0430\u043a\u0438\u0435 \u0441\u043b\u043e\u0438 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u043a\u043e\u0434 \u043d\u0430 \u043f\u0443\u0442\u0438 \u0432 wrapped-\u0444\u0430\u0439\u043b, \u043a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d \u044d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b \u0438 \u0447\u0442\u043e \u0432 \u043d\u0451\u043c \u0442\u0435\u0440\u044f\u0435\u0442\u0441\u044f. \u0424\u043e\u0440\u043c\u0430\u0442 V1 \u043e\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0435\u0442 PL\/SQL 2.2\u20139.2, \u0442\u043e \u0435\u0441\u0442\u044c Oracle 7.2, 7.3, 8.0, 8i \u0438 9i. \u0424\u043e\u0440\u043c\u0430\u0442 V2 (Oracle 10g \u0438 \u043d\u043e\u0432\u0435\u0435) \u0441 \u043d\u0438\u043c \u043d\u0435 \u0441\u0432\u044f\u0437\u0430\u043d: \u0442\u0430\u043c \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0441\u0436\u0430\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u0431\u0435\u0437 \u0434\u0435\u0440\u0435\u0432\u0430.<\/p>\n<p>\u0426\u0438\u0444\u0440\u044b \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u044b \u0434\u0430\u043c\u043f\u043e\u043c \u0442\u0430\u0431\u043b\u0438\u0446 \u044d\u0442\u0430\u043b\u043e\u043d\u043d\u044b\u0445 \u044e\u043d\u0438\u0442\u043e\u0432: 332 \u044e\u043d\u0438\u0442\u0430 V1, 16 625 \u0443\u0437\u043b\u043e\u0432. \u0412\u043d\u0435\u0448\u043d\u0438\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438 &#8212; \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f Oracle 9.2, \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a DIANA \u0438 \u0434\u043e\u043a\u043b\u0430\u0434 \u041f\u0438\u0442\u0430 \u0424\u0438\u043d\u043d\u0438\u0433\u0430\u043d\u0430 \u043d\u0430 Black Hat 2006. \u0420\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0430 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 V2 (Oracle 10g \u0438 \u043d\u043e\u0432\u0435\u0435) \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 <a href=\"https:\/\/github.com\/sftwnd\/oracle-plsql-unwrap\" rel=\"noopener nofollow\">oracle-plsql-unwrap<\/a>.<\/p>\n<h3>DIANA: \u0434\u0435\u0440\u0435\u0432\u043e \u0441 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043c\u0438<\/h3>\n<p>DIANA (Descriptive Intermediate Attributed Notation for Ada) &#8212; \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0439 \u044f\u0437\u044b\u043a \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u0432 Ada: \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043a\u0430\u043a \u0434\u0435\u0440\u0435\u0432\u043e \u0443\u0437\u043b\u043e\u0432 \u0441 \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043c\u0438. \u0415\u0451 \u0441\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0433\u0440\u0443\u043f\u043f\u044b \u0413\u0435\u0440\u0445\u0430\u0440\u0434\u0430 \u0413\u043e\u043e\u0441\u0430 (\u041a\u0430\u0440\u043b\u0441\u0440\u0443\u044d) \u0438 \u0423\u0438\u043b\u044c\u044f\u043c\u0430 \u0412\u0443\u043b\u044c\u0444\u0430 (\u041a\u0430\u0440\u043d\u0435\u0433\u0438\u2013\u041c\u0435\u043b\u043b\u043e\u043d) \u0432 1981 \u0433\u043e\u0434\u0443 (<a href=\"https:\/\/foldoc.org\/DIANA\" rel=\"noopener nofollow\">FOLDOC<\/a>). \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u0435\u0440\u0435\u0432\u0430 \u0437\u0430\u0434\u0430\u043d\u0430 \u043d\u0430 \u043c\u0435\u0442\u0430\u043d\u043e\u0442\u0430\u0446\u0438\u0438 IDL (Interface Description Language), \u0430 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043a\u0440\u044b\u0442\u043e \u0437\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u043c\u0438 \u0442\u0438\u043f\u0430 (<a href=\"https:\/\/apps.dtic.mil\/sti\/pdfs\/ADA128232.pdf\" rel=\"noopener nofollow\">\u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a DIANA, \u0440\u0435\u0434. 3, 1983<\/a>).<\/p>\n<p>PL\/SQL \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d \u043d\u0430 Ada \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0441\u0432\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 DIANA, \u0442\u043e\u0436\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 IDL. \u041f\u043e <a href=\"https:\/\/resources.mpi-inf.mpg.de\/departments\/d5\/teaching\/ss05\/is05\/oracle\/appdev.920\/a96624\/e_limits.htm\" rel=\"noopener nofollow\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 Oracle 9.2<\/a>, \u0431\u0430\u0437\u0430 \u0445\u0440\u0430\u043d\u0438\u0442 \u0438 DIANA, \u0438 m-code: \u043f\u043e DIANA \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0435 \u043c\u043e\u0434\u0443\u043b\u0438, m-code \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f. \u0421\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043f\u0430\u043a\u0435\u0442\u0430, \u0442\u0438\u043f\u0430, \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0438\u043b\u0438 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0439 \u0431\u043b\u043e\u043a \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u044b 2^26 \u0443\u0437\u043b\u0430\u043c\u0438 DIANA; \u043f\u0440\u0438 \u043f\u0440\u0435\u0432\u044b\u0448\u0435\u043d\u0438\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0432\u044b\u0434\u0430\u0451\u0442 \u043e\u0448\u0438\u0431\u043a\u0443 \u0432\u0440\u043e\u0434\u0435 PLS-00123.<\/p>\n<h4>\u0423\u0437\u043b\u044b<\/h4>\n<p>\u0422\u0430\u0431\u043b\u0438\u0446\u0430 \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043e\u043a, \u0438\u0437\u0432\u043b\u0435\u0447\u0451\u043d\u043d\u0430\u044f \u0438\u0437 IDL-\u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440\u0430 WRAP 9.2.0.4, \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 300 \u043a\u043e\u0434\u043e\u0432 \u0443\u0437\u043b\u043e\u0432; \u0432 9.x \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0435\u0441\u0442\u044c \u0443 230 \u0438\u0437 \u043d\u0438\u0445. \u041f\u0440\u0435\u0444\u0438\u043a\u0441 \u0438\u043c\u0435\u043d\u0438 \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u0435 \u0443\u0437\u043b\u0430. \u0421\u0442\u0430\u0440\u044b\u0435 \u0438\u043c\u0435\u043d\u0430 \u043e\u0431\u0440\u0435\u0437\u0430\u043d\u044b \u0434\u043e 8 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 (<code>D_COMP_U<\/code>, <code>DI_PACKA<\/code>), \u0443\u0437\u043b\u044b, \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0432 8i\u20139i, &#8212; \u0434\u043b\u0438\u043d\u043d\u0435\u0435 (<code>D_SQL_STMT<\/code>, <code>DI_BULK_ITER<\/code>).<\/p>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u041f\u0440\u0435\u0444\u0438\u043a\u0441<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0421\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u043e<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041a\u043e\u0434\u043e\u0432<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041f\u0440\u0438\u043c\u0435\u0440\u044b<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>D_<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u044f\u0437\u044b\u043a\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">166<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>D_COMP_U<\/code> &#8212; \u0435\u0434\u0438\u043d\u0438\u0446\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438, <code>D_P_SPEC<\/code> &#8212; \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043f\u0430\u043a\u0435\u0442\u0430, <code>D_BLOCK<\/code>, <code>D_ASSIGN<\/code>, <code>D_F_CALL<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>DI_<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b: \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">35<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>DI_PACKA<\/code>, <code>DI_PROC<\/code>, <code>DI_VAR<\/code>, <code>DI_U_NAM<\/code> &#8212; \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0438\u043c\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>DS_<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">23<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>DS_DECL<\/code> &#8212; \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f, <code>DS_STM<\/code> &#8212; \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b, <code>DS_PARAM<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>Q_<\/code>, <code>QI_<\/code>, <code>QS_<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 SQL<\/p>\n<\/td>\n<td>\n<p align=\"left\">75<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>Q_SELECT<\/code>, <code>Q_INSERT<\/code>, <code>Q_SQL_ST<\/code>, <code>QI_CURSO<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h4>\u0410\u0442\u0440\u0438\u0431\u0443\u0442\u044b<\/h4>\n<p>\u0412 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 DIANA \u0447\u0435\u0442\u044b\u0440\u0435 \u0432\u0438\u0434\u0430 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432: \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u0435 (<code>as_<\/code>), \u043b\u0435\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0435 (<code>lx_<\/code>), \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 (<code>sm_<\/code>) \u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u043a\u043e\u0434\u0430 (<code>cd_<\/code>). PL\/SQL \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u044d\u0442\u043e \u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0441\u043e \u0441\u0432\u043e\u0438\u043c\u0438 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u0430\u043c\u0438: \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043e\u043a 184 \u0438\u043c\u0435\u043d\u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432. \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u043a\u043e\u043b\u043e\u043d\u043a\u0430 &#8212; \u0434\u043e\u043b\u044f \u043d\u0435\u043d\u0443\u043b\u0435\u0432\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 332 \u044e\u043d\u0438\u0442\u0430\u0445 \u0441\u044d\u043c\u043f\u043b\u043e\u0432: \u043e\u043d\u0430 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u043a\u0430\u043a\u0438\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b WRAP \u0432\u043e\u043e\u0431\u0449\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442.<\/p>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u041f\u0440\u0435\u0444\u0438\u043a\u0441<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0412\u0438\u0434<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0418\u043c\u0451\u043d<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041f\u0440\u0438\u043c\u0435\u0440\u044b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041d\u0435\u043d\u0443\u043b\u0435\u0432\u044b\u0445 \u0432 wrapped-\u0444\u0430\u0439\u043b\u0430\u0445<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>A_<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u0439: \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0443\u0437\u0435\u043b \u0438\u043b\u0438 \u0444\u043b\u0430\u0433<\/p>\n<\/td>\n<td>\n<p align=\"left\">84<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>A_NAME<\/code>, <code>A_EXP1<\/code>, <code>A_UP<\/code> &#8212; \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">63%<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>AS_<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u0439: \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/p>\n<\/td>\n<td>\n<p align=\"left\">28<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>AS_DECL1<\/code>, <code>AS_STM<\/code>, <code>AS_LIST<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">72%<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>L_<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043b\u0435\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439: \u043d\u043e\u043c\u0435\u0440 \u043b\u0435\u043a\u0441\u0435\u043c\u044b<\/p>\n<\/td>\n<td>\n<p align=\"left\">7<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>L_SYMREP<\/code> &#8212; \u0438\u043c\u044f, <code>L_NUMREP<\/code> &#8212; \u0447\u0438\u0441\u043b\u043e, <code>L_Q_HINT<\/code> &#8212; \u0445\u0438\u043d\u0442<\/p>\n<\/td>\n<td>\n<p align=\"left\">54%<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>S_<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0441\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439<\/p>\n<\/td>\n<td>\n<p align=\"left\">47<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>S_EXP_TY<\/code> &#8212; \u0442\u0438\u043f \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, <code>S_DEFN_PRIVATE<\/code> &#8212; \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0438\u043c\u0435\u043d\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">5,1%<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>SS_<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0441\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/p>\n<\/td>\n<td>\n<p align=\"left\">10<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>SS_SQL<\/code>, <code>SS_BINDS<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">0%<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>C_<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043a\u043e\u0434\u043e\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">8<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>C_OFFSET<\/code>, <code>C_FIXUP<\/code>, <code>C_ENTRY_PT<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">0,2%<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u0435 \u0438 \u043b\u0435\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u044b, \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u043a\u043e\u0434\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0443\u0441\u0442\u044b. \u0418\u0437 \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f \u043b\u0438\u0448\u044c \u0441\u0432\u044f\u0437\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0430\u0440\u0441\u0435\u0440 \u0437\u043d\u0430\u0435\u0442 \u0441\u0430\u043c: <code>S_LAYER<\/code>, <code>S_FIRST<\/code>, <code>S_T_SPEC<\/code>, <code>S_RECORD<\/code>. \u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u043c\u043e\u0436\u043d\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u0438\u0437 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u0445 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432: \u0430\u0432\u0442\u043e\u0440\u044b DIANA \u0437\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u043b\u0438 \u0442\u0435\u0441\u043d\u043e\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u043e\u043c \u044f\u0437\u044b\u043a\u0430 \u0438 \u044d\u0442\u0438\u043c\u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043c\u0438.<\/p>\n<h4>\u0413\u0434\u0435 DIANA \u0436\u0438\u0432\u0451\u0442 \u0432 \u0431\u0430\u0437\u0435<\/h4>\n<p>\u0421\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0445 SYS <code>IDL_UB1$<\/code>, <code>IDL_UB2$<\/code>, <code>IDL_SB4$<\/code> \u0438 <code>IDL_CHAR$<\/code>. \u0421\u0443\u0444\u0444\u0438\u043a\u0441\u044b &#8212; \u0442\u0438\u043f\u044b \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 IDL: \u0431\u0435\u0437\u0437\u043d\u0430\u043a\u043e\u0432\u044b\u0435 1 \u0438 2 \u0431\u0430\u0439\u0442\u0430, \u0437\u043d\u0430\u043a\u043e\u0432\u044b\u0435 4 \u0431\u0430\u0439\u0442\u0430, \u0441\u0438\u043c\u0432\u043e\u043b\u044b. \u041a\u043e\u043b\u043e\u043d\u043a\u0430 <code>PART<\/code> \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435: 0 &#8212; DIANA, 1 &#8212; \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043c\u044b\u0439 p-code (m-code), 2 &#8212; \u043c\u0430\u0448\u0438\u043d\u043d\u043e-\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0439 p-code; \u0442\u0430\u043a \u0441\u043a\u0430\u0437\u0430\u043d\u043e \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 <code>sql.bsq<\/code>, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f <a href=\"https:\/\/www.blackhat.com\/presentations\/bh-usa-06\/BH-US-06-Finnigan.pdf\" rel=\"noopener nofollow\">\u0424\u0438\u043d\u043d\u0438\u0433\u0430\u043d<\/a>.<\/p>\n<p>\u0418\u0437 PL\/SQL \u0434\u0435\u0440\u0435\u0432\u043e \u0447\u0438\u0442\u0430\u044e\u0442 \u043f\u0430\u043a\u0435\u0442\u044b <code>PIDL<\/code> \u0438 <code>DIANA<\/code> (\u0441\u043a\u0440\u0438\u043f\u0442\u044b <code>pipidl.sql<\/code>, <code>pidian.sql<\/code>) \u0438 \u0443\u0442\u0438\u043b\u0438\u0442\u044b <code>DIUTIL<\/code>. \u0418\u043c\u0435\u043d\u0430 \u0443\u0437\u043b\u043e\u0432 \u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0438\u0437 <code>pidian.sql<\/code> \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442 \u0441 \u0442\u0435\u043c\u0438, \u0447\u0442\u043e \u0437\u0430\u0448\u0438\u0442\u044b \u0432 WRAP. \u041f\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044e \u0424\u0438\u043d\u043d\u0438\u0433\u0430\u043d\u0430, DIANA \u0442\u0435\u043b \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0432 IDL-\u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0445 \u043d\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f, \u0438 \u0447\u0435\u0440\u0435\u0437 \u044d\u0442\u0438 API \u0442\u0435\u043b\u0430 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440 \u043d\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u044c.<\/p>\n<h3>\u0413\u0434\u0435 WRAP \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044e<\/h3>\n<p>WRAP &#8212; \u044d\u0442\u043e \u043b\u0435\u043a\u0441\u0435\u0440 \u0438 \u043f\u0430\u0440\u0441\u0435\u0440 PL\/SQL, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0434 \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0430\u043d\u0430\u043b\u0438\u0437\u043e\u043c. \u0424\u0430\u0439\u043b <code>.plb<\/code> \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0442\u043e \u0434\u0435\u0440\u0435\u0432\u043e, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0431\u0430\u0437\u0430 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u043b\u0430 \u0431\u044b \u0441\u0430\u043c\u0430 \u043f\u043e\u0441\u043b\u0435 \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430. \u041f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u043e\u043d\u0430 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0440\u0430\u0437\u0431\u043e\u0440 \u0438 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442 \u0441 \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u043a\u0438.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/05\/29\/92\/052992e30973faa3e372cbfd181ba3d5.png\" width=\"1520\" height=\"1336\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/05\/29\/92\/052992e30973faa3e372cbfd181ba3d5.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/05\/29\/92\/052992e30973faa3e372cbfd181ba3d5.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0412 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 Oracle 9.2 \u0442\u0435\u043b\u043e wrapped-\u044e\u043d\u0438\u0442\u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u043e \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 (<a href=\"https:\/\/docs.oracle.com\/cd\/A97630_01\/appdev.920\/a96624\/c_wrap.htm\" rel=\"noopener nofollow\">Wrap Utility, 9.2<\/a>), \u0430 \u0424\u0438\u043d\u043d\u0438\u0433\u0430\u043d \u043f\u0440\u044f\u043c\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442 WRAP \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u043e\u043c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 PL\/SQL. \u0418\u0437 \u044d\u0442\u043e\u0433\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0442 \u0442\u0440\u0438 \u0432\u0435\u0449\u0438:<\/p>\n<ul>\n<li>\n<p><strong>WRAP \u043d\u0435 \u0432\u0438\u0434\u0438\u0442 \u0431\u0430\u0437\u0443.<\/strong> \u041e\u043d \u043d\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 \u0432\u043d\u0435\u0448\u043d\u0438\u0435 \u0441\u0441\u044b\u043b\u043a\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0430 \u0432 \u0438\u043c\u0435\u043d\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043f\u0440\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 <code>.plb<\/code>. \u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043e\u043d \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442 \u0441\u0430\u043c.<\/p>\n<\/li>\n<li>\n<p><strong>\u0421\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0432 \u0444\u0430\u0439\u043b\u0435 \u043f\u0443\u0441\u0442\u044b.<\/strong> \u042d\u0442\u043e \u0432\u0438\u0434\u043d\u043e \u043f\u043e \u0437\u0430\u043c\u0435\u0440\u0443 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432: <code>S_<\/code> \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u044b \u043d\u0430 5,1%, <code>SS_<\/code> &#8212; \u043d\u0430 0%, <code>C_<\/code> &#8212; \u043d\u0430 0,2%. \u0418\u043c\u0435\u043d\u0430 \u0432 <code>DI_U_NAM<\/code> \u043d\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u044b \u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f\u043c\u0438: <code>S_DEFN_PRIVATE<\/code> \u043d\u0435\u043d\u0443\u043b\u0435\u0432\u043e\u0439 \u0432 2 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0438\u0437 5 107.<\/p>\n<\/li>\n<li>\n<p><strong>\u0424\u0430\u0439\u043b \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c \u0432\u0432\u0435\u0440\u0445, \u043d\u043e \u043d\u0435 \u0432\u043d\u0438\u0437.<\/strong> \u042e\u043d\u0438\u0442 WRAP 8.1.5 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u0432 8.1.6, \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0435 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e. \u0412\u0435\u0440\u043e\u044f\u0442\u043d\u0430\u044f \u043f\u0440\u0438\u0447\u0438\u043d\u0430 &#8212; \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0438 \u0443\u0437\u043b\u043e\u0432: \u0432 \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 DIANA \u0443 \u0443\u0437\u043b\u043e\u0432 \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u0442\u0430\u0440\u044b\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043d\u0435 \u0437\u043d\u0430\u0435\u0442.<\/p>\n<\/li>\n<\/ul>\n<h3>\u0424\u043e\u0440\u043c\u0430\u0442 wrapped-\u0444\u0430\u0439\u043b\u0430 V1<\/h3>\n<p>Wrapped-\u044e\u043d\u0438\u0442 V1 &#8212; \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442: \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a <code>CREATE<\/code>, \u0441\u043b\u0443\u0436\u0435\u0431\u043d\u0430\u044f \u0448\u0430\u043f\u043a\u0430, \u043b\u0435\u043a\u0441\u0438\u043a\u043e\u043d \u0438 \u0448\u0435\u0441\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446 \u0434\u0435\u0440\u0435\u0432\u0430 \u0432 \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438. \u0421\u0445\u0435\u043c\u0430 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0444\u0430\u0439\u043b \u0438\u0437 \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u043d\u0438\u0436\u0435 (\u043f\u0430\u043a\u0435\u0442 <code>va<\/code>, 59 \u0443\u0437\u043b\u043e\u0432) \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0441\u0442\u0440\u043e\u043a, \u043a\u0430\u043a \u0435\u0433\u043e \u0447\u0438\u0442\u0430\u0435\u0442 <code>V1SourceParser<\/code>.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/d3\/1f\/4b\/d31f4bb87c2e4bd7cb4d47dd6c8924aa.png\" width=\"1520\" height=\"1336\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/d3\/1f\/4b\/d31f4bb87c2e4bd7cb4d47dd6c8924aa.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/d3\/1f\/4b\/d31f4bb87c2e4bd7cb4d47dd6c8924aa.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<h4>\u0428\u0430\u043f\u043a\u0430<\/h4>\n<p>WRAP \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 <code>CREATE<\/code> \u0434\u043e \u043a\u043e\u043d\u0446\u0430 \u0438\u043c\u0435\u043d\u0438 \u044e\u043d\u0438\u0442\u0430 \u043a\u0430\u043a \u0435\u0441\u0442\u044c &#8212; \u0441 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u043c, \u0441\u0445\u0435\u043c\u043e\u0439, \u043a\u0430\u0432\u044b\u0447\u043a\u0430\u043c\u0438, \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430\u043c\u0438 \u0441\u0442\u0440\u043e\u043a \u0438 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u043c\u0438 &#8212; \u0438 \u0434\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 <code> wrapped<\/code>. \u0423 \u0442\u0435\u043b\u0430 \u0442\u0438\u043f\u0430 \u043a\u043e\u043f\u0438\u044f \u0438\u0434\u0451\u0442 \u0434\u043e <code>IS<\/code> \u0438\u043b\u0438 <code>AS<\/code>, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u043e\u0431\u0435\u043b\u044b \u0438 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u043f\u0435\u0440\u0435\u0434 \u043d\u0438\u043c\u0438 \u0442\u043e\u0436\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a. \u0414\u0435\u0440\u0435\u0432\u043e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u043d\u0435 \u0445\u0440\u0430\u043d\u0438\u0442: <code>CREATE<\/code> \u0438 <code>CREATE OR REPLACE<\/code>, \u0438\u043c\u044f \u0441\u043e \u0441\u0445\u0435\u043c\u043e\u0439 \u0438 \u0431\u0435\u0437 \u0434\u0430\u044e\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b.<\/p>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u0438\u0434\u0443\u0442 \u0441\u0442\u0440\u043e\u043a\u0430 <code>0<\/code> \u0438 \u0441\u0442\u0440\u043e\u043a\u0438 <code>abcd<\/code>: 16 \u0448\u0442\u0443\u043a \u0432 PL\/SQL 2.x\u20138.1.5 \u0438 15 \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 8.1.6, \u0433\u0434\u0435 \u043d\u0430 \u043c\u0435\u0441\u0442\u0435 \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u043e\u0439 \u0441\u0442\u043e\u0438\u0442 \u0447\u0438\u0441\u043b\u043e (\u0432 \u0441\u044d\u043c\u043f\u043b\u0430\u0445 1 \u0438\u043b\u0438 3). \u0421\u043b\u0435\u0434\u043e\u043c &#8212; \u043a\u043e\u0434 \u0432\u0438\u0434\u0430 \u044e\u043d\u0438\u0442\u0430 \u0432 hex, \u043e\u043d \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u0442\u0438\u043f\u043e\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u0435: <code>7<\/code> &#8212; \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430, <code>8<\/code> &#8212; \u0444\u0443\u043d\u043a\u0446\u0438\u044f, <code>9<\/code> &#8212; \u043f\u0430\u043a\u0435\u0442, <code>b<\/code> &#8212; \u0442\u0435\u043b\u043e \u043f\u0430\u043a\u0435\u0442\u0430, <code>d<\/code> &#8212; \u0442\u0438\u043f, <code>e<\/code> &#8212; \u0442\u0435\u043b\u043e \u0442\u0438\u043f\u0430, <code>16<\/code> &#8212; \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430.<\/p>\n<p>\u0417\u0430\u0442\u0435\u043c \u0438\u0434\u0451\u0442 \u0432\u0435\u0440\u0441\u0438\u044f DIANA &#8212; \u0441\u0435\u043c\u044c \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043d\u044b\u0445 \u0446\u0438\u0444\u0440. \u042d\u0442\u043e \u0432\u0435\u0440\u0441\u0438\u044f PL\/SQL, \u0430 \u043d\u0435 Oracle (PL\/SQL 2.2 &#8212; \u044d\u0442\u043e Oracle 7.2, 2.3 &#8212; 7.3, \u0434\u0430\u043b\u044c\u0448\u0435 \u043d\u043e\u043c\u0435\u0440\u0430 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442). \u0418 \u044d\u0442\u043e \u043d\u0435 \u0440\u0435\u043b\u0438\u0437 \u0441\u0430\u043c\u043e\u0433\u043e WRAP: \u0443\u0442\u0438\u043b\u0438\u0442\u0430 \u043f\u0438\u0448\u0435\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u0432\u0435\u0440\u0441\u0438\u044e DIANA, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0437\u043d\u0430\u0435\u0442.<\/p>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">WRAP (\u0440\u0435\u043b\u0438\u0437 PL\/SQL)<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0421\u0442\u0440\u043e\u043a\u0430 \u0432\u0435\u0440\u0441\u0438\u0438 \u0432 \u044e\u043d\u0438\u0442\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">9.2.0.4<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>9200000<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">9.0.1<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>9000000<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">8.1.6, 8.1.7<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>8106000<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">8.1.5 (Oracle8i \u0434\u043b\u044f Windows NT)<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>8105000<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">8.0.5<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>8003000<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">2.3.3.0.0, 2.3.4<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>200f000<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">2.3.2.3.0 \u0434\u043b\u044f Windows NT<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>95a025ff<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">2.2.2.3.1 \u0434\u043b\u044f Windows NT<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>952825ff<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>\u0421\u043b\u043e\u0432\u0430 \u043d\u0430 <code>25ff<\/code> &#8212; \u043d\u0435 \u0432\u0435\u0440\u0441\u0438\u044f, \u0430 \u0441\u043b\u0435\u0434 \u043e\u0448\u0438\u0431\u043a\u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u0430. WRAP \u0434\u043b\u044f Windows PL\/SQL 2.2 \u0438 2.3.2 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u0438 \u043a\u0430\u043a \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0438 \u0447\u0438\u0442\u0430\u0435\u0442 \u043f\u0435\u0440\u0432\u044b\u0435 \u0447\u0435\u0442\u044b\u0440\u0435 \u0431\u0430\u0439\u0442\u0430 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u0438\u043a\u0430 <code>jmp [slot]<\/code>: <code>FF 25<\/code> \u0438 \u043c\u043b\u0430\u0434\u0448\u0438\u0435 \u0431\u0430\u0439\u0442\u044b \u0430\u0434\u0440\u0435\u0441\u0430 \u0441\u043b\u043e\u0442\u0430. \u041d\u0430\u0441\u0442\u043e\u044f\u0449\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u044d\u0442\u0438\u0445 \u0441\u0431\u043e\u0440\u043e\u043a &#8212; <code>200f000<\/code>, \u0438 \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0443 \u043d\u0438\u0445 \u0442\u0430 \u0436\u0435, \u0447\u0442\u043e \u0443 2.3.4. \u041f\u043e\u0441\u043b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u0438\u0434\u0443\u0442 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 <code>1<\/code>, <code>4<\/code>, <code>0<\/code>.<\/p>\n<h4>\u041b\u0435\u043a\u0441\u0438\u043a\u043e\u043d<\/h4>\n<p>\u041b\u0435\u043a\u0441\u0438\u043a\u043e\u043d &#8212; \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u0441\u0435\u0445 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0441\u043b\u043e\u0432 \u044e\u043d\u0438\u0442\u0430: \u0438\u043c\u0451\u043d, \u043b\u0438\u0442\u0435\u0440\u0430\u043b\u043e\u0432, \u0437\u043d\u0430\u043a\u043e\u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0438 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u043b\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043b\u0435\u043a\u0441\u0435\u0440 \u0447\u0438\u0442\u0430\u0435\u0442 \u043a\u0430\u043a \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b (<code>PACKAGE<\/code>, <code>TYPE<\/code>, <code>VARRAY<\/code>). \u041a\u0430\u0436\u0434\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u043e\u0434\u0438\u043d \u0440\u0430\u0437, \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f; \u043d\u043e\u043c\u0435\u0440 0 &#8212; \u043f\u0443\u0441\u0442\u0430\u044f \u043b\u0435\u043a\u0441\u0435\u043c\u0430. \u041f\u0435\u0440\u0432\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 &#8212; \u0447\u0438\u0441\u043b\u043e \u043b\u0435\u043a\u0441\u0435\u043c \u0432 hex, \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f &#8212; <code>0<\/code>.<\/p>\n<ul>\n<li>\n<p><strong>PL\/SQL 2.x \u0438 8.0:<\/strong> \u0441\u0442\u0440\u043e\u043a\u0430 <code>&lt;\u0434\u043b\u0438\u043d\u0430 \u0432 hex&gt; &lt;\u0442\u0435\u043a\u0441\u0442&gt;:<\/code>; \u0434\u043b\u0438\u043d\u043d\u0430\u044f \u043b\u0435\u043a\u0441\u0435\u043c\u0430 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0441\u0442\u0440\u043e\u043a\u0430\u0445, \u043f\u043e\u043a\u0430 \u043d\u0435 \u043d\u0430\u0431\u0435\u0440\u0451\u0442\u0441\u044f \u0434\u043b\u0438\u043d\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>PL\/SQL 8.1.5 \u0438 \u043d\u043e\u0432\u0435\u0435:<\/strong> \u043c\u0430\u0440\u043a\u0435\u0440 <code>2 :e:<\/code>, \u0437\u0430\u0442\u0435\u043c \u0441\u0442\u0440\u043e\u043a\u0438 <code>1&lt;\u0442\u0435\u043a\u0441\u0442&gt;:<\/code>; \u0441\u0442\u0440\u043e\u043a\u0430, \u043e\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e\u0449\u0430\u044f\u0441\u044f \u043d\u0430 <code>+<\/code>, \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439.<\/p>\n<\/li>\n<li>\n<p><strong>\u042d\u043a\u0440\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435:<\/strong> \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u043b\u0435\u043a\u0441\u0435\u043c\u044b &#8212; <code>:n<\/code>, \u0434\u0432\u043e\u0435\u0442\u043e\u0447\u0438\u0435 &#8212; <code>::<\/code>, \u0432\u043e\u0437\u0432\u0440\u0430\u0442 \u043a\u0430\u0440\u0435\u0442\u043a\u0438 \u0437\u0430\u043f\u0438\u0441\u0430\u043d \u043a\u0430\u043a \u0435\u0441\u0442\u044c.<\/p>\n<\/li>\n<\/ul>\n<pre><code>2.3.4:  12 SELECT_DELETE_DEMO:      \u2190 0x12 = 18 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432        4 P_ID:9.2:    1SELECT empno, ename:n      from emp:n     where deptno = p:n     order by ena+        1me:                        \u2190 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u043b\u0435\u043a\u0441\u0435\u043c\u044b \u043f\u043e\u0441\u043b\u0435 +<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper\"><\/span><\/a><\/div><\/pre>\n<h4>\u0428\u0435\u0441\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446 \u0434\u0435\u0440\u0435\u0432\u0430<\/h4>\n<p>\u041a\u0430\u0436\u0434\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 \u0447\u0438\u0441\u043b\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u0439 \u0438 \u0441\u0442\u0440\u043e\u043a\u0438-\u043c\u0430\u0440\u043a\u0435\u0440\u0430 <code>2<\/code> \u0438\u043b\u0438 <code>4<\/code>, \u0437\u0430\u0442\u0435\u043c \u0438\u0434\u0443\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 hex \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u043e\u0431\u0435\u043b. \u0417\u0430\u043f\u0438\u0441\u044c <code>:N v<\/code> \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 N \u043f\u043e\u0432\u0442\u043e\u0440\u043e\u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f v. \u041f\u043e\u0437\u0438\u0446\u0438\u044f 0 \u0437\u043d\u0430\u0447\u0438\u0442 \u00ab\u043d\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u00bb, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0443\u0437\u043b\u044b, \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441\u043f\u0438\u0441\u043a\u043e\u0432 \u043d\u0443\u043c\u0435\u0440\u0443\u044e\u0442\u0441\u044f \u0441 1.<\/p>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u2116<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0422\u0430\u0431\u043b\u0438\u0446\u0430<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0418\u043d\u0434\u0435\u043a\u0441<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041c\u0430\u0440\u043a\u0435\u0440: 2.x\u20138.1.5 \/ 8.1.6 \/ 9.x<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">Node Types<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043d\u043e\u043c\u0435\u0440 \u0443\u0437\u043b\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043a\u043e\u0434 \u0442\u0438\u043f\u0430 \u0443\u0437\u043b\u0430 (<code>D_COMP_U<\/code> = 23)<\/p>\n<\/td>\n<td>\n<p align=\"left\">2 \/ 2 \/ 2<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">Attribute References<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043d\u043e\u043c\u0435\u0440 \u0443\u0437\u043b\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 5<\/p>\n<\/td>\n<td>\n<p align=\"left\">2 \/ 2 \/ 2<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">3<\/p>\n<\/td>\n<td>\n<p align=\"left\">Columns<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043d\u043e\u043c\u0435\u0440 \u0443\u0437\u043b\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043a\u043e\u043b\u043e\u043d\u043a\u0430 \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">2 \/ 2 \/ 2<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">4<\/p>\n<\/td>\n<td>\n<p align=\"left\">Lines<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043d\u043e\u043c\u0435\u0440 \u0443\u0437\u043b\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0441\u0442\u0440\u043e\u043a\u0430 \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">2 \/ 2 \/ 4<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">5<\/p>\n<\/td>\n<td>\n<p align=\"left\">Attributes<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043f\u043e\u0437\u0438\u0446\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0432\u0441\u0435\u0445 \u0443\u0437\u043b\u043e\u0432 \u0431\u043b\u043e\u043a\u0430\u043c\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">2 \/ 4 \/ 4<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">6<\/p>\n<\/td>\n<td>\n<p align=\"left\">AS Lists<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043f\u043e\u0437\u0438\u0446\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0441\u043f\u0438\u0441\u043e\u043a: \u0434\u043b\u0438\u043d\u0430, \u0437\u0430\u0442\u0435\u043c \u043d\u043e\u043c\u0435\u0440\u0430 \u0443\u0437\u043b\u043e\u0432<\/p>\n<\/td>\n<td>\n<p align=\"left\">2 \/ 4 \/ 4<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>\u041c\u0430\u0440\u043a\u0435\u0440, \u043f\u043e \u0432\u0441\u0435\u0439 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438, &#8212; \u0448\u0438\u0440\u0438\u043d\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0432 \u0431\u0430\u0439\u0442\u0430\u0445. \u041f\u0430\u0440\u0441\u0435\u0440 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e, \u0447\u0442\u043e \u044d\u0442\u043e 2 \u0438\u043b\u0438 4, \u0430 \u0432\u043e \u0432\u0441\u0435\u0445 332 \u044e\u043d\u0438\u0442\u0430\u0445 \u0441\u044d\u043c\u043f\u043b\u043e\u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0437\u0430\u0432\u0438\u0441\u044f\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442 \u0432\u0435\u0440\u0441\u0438\u0438.<\/p>\n<p>\u0423\u0437\u0435\u043b &#8212; \u044d\u0442\u043e \u043d\u043e\u043c\u0435\u0440, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446 1\u20134 \u0431\u0435\u0440\u0443\u0442\u0441\u044f \u0442\u0438\u043f, \u043d\u0430\u0447\u0430\u043b\u043e \u0431\u043b\u043e\u043a\u0430 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0438 \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u0432 \u0442\u0435\u043a\u0441\u0442\u0435. \u0410\u0442\u0440\u0438\u0431\u0443\u0442 k \u0443\u0437\u043b\u0430 \u043b\u0435\u0436\u0438\u0442 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 5 \u043f\u043e \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u00ab\u0441\u0441\u044b\u043b\u043a\u0430 + k \u2212 1\u00bb. \u0421\u043f\u0438\u0441\u043e\u043a \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 6 \u0437\u0430\u043f\u0438\u0441\u0430\u043d \u043a\u0430\u043a \u0434\u043b\u0438\u043d\u0430 \u0438 \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0436\u0435 \u043d\u043e\u043c\u0435\u0440\u043e\u0432 \u0443\u0437\u043b\u043e\u0432 \u0432\u0441\u043b\u0435\u0434 \u0437\u0430 \u043d\u0435\u0439.<\/p>\n<p>\u0427\u0438\u0441\u043b\u043e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0443\u0437\u043b\u0430 \u0432 \u0444\u0430\u0439\u043b\u0435 \u043d\u0435 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043e. \u0415\u0433\u043e \u0437\u043d\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e IDL-\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430 \u0442\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438, \u0447\u0442\u043e \u043f\u0438\u0441\u0430\u043b\u0430 \u0444\u0430\u0439\u043b; \u043b\u0438\u0448\u043d\u0438\u0439 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u043c \u0441\u043e\u0441\u0435\u0434\u043d\u0435\u0433\u043e \u0443\u0437\u043b\u0430. \u0411\u043b\u043e\u043a\u0438 \u043b\u0435\u0436\u0430\u0442 \u043d\u0435 \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0443\u0437\u043b\u043e\u0432, \u0430 \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438 \u0431\u044b\u0432\u0430\u044e\u0442 \u043d\u0438\u0447\u044c\u0438 \u0441\u043b\u043e\u0442\u044b \u0441\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438.<\/p>\n<p>\u0414\u043e 8.1.6 \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0431\u043b\u043e\u043a \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 16-\u0431\u0438\u0442\u043d\u0430\u044f, \u0430 \u0435\u0451 \u0441\u0442\u0430\u0440\u0448\u0438\u0435 \u0440\u0430\u0437\u0440\u044f\u0434\u044b \u0441\u043f\u0440\u044f\u0442\u0430\u043d\u044b \u0432 \u043a\u043e\u0434\u0435 \u0442\u0438\u043f\u0430 \u0443\u0437\u043b\u0430. \u0415\u0441\u043b\u0438 \u043a\u043e\u0434 \u2265 0x1000, \u0442\u043e \u0442\u0438\u043f &#8212; \u044d\u0442\u043e \u043a\u043e\u0434 mod 0x1000, \u0430 \u043a \u0441\u0441\u044b\u043b\u043a\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f (\u043a\u043e\u0434 div 0x1000) \u00d7 0x10000.<\/p>\n<h4>\u042d\u043f\u0438\u043b\u043e\u0433 \u0438 \u0445\u0432\u043e\u0441\u0442<\/h4>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446 \u0441\u043d\u043e\u0432\u0430 \u0438\u0434\u0443\u0442 <code>1<\/code>, <code>4<\/code>, <code>0<\/code> \u0438 \u043d\u043e\u043c\u0435\u0440 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0433\u043e \u0443\u0437\u043b\u0430; \u043a\u043e\u0440\u0435\u043d\u044c \u043e\u0431\u044f\u0437\u0430\u043d \u0438\u043c\u0435\u0442\u044c \u0442\u0438\u043f <code>D_COMP_U<\/code>. \u0414\u0430\u043b\u044c\u0448\u0435 WRAP \u043f\u0438\u0448\u0435\u0442 \u0445\u0432\u043e\u0441\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0449\u0438\u043a \u043d\u0435 \u0447\u0438\u0442\u0430\u0435\u0442: \u0441\u0442\u0440\u043e\u043a\u0438 <code>0<\/code>, <code>1<\/code>, <code>14<\/code>, \u0434\u0432\u0430 \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u0430, 0x14 = 20 \u0447\u0438\u0441\u0435\u043b \u0438 \u0442\u0440\u043e\u0439\u043a\u0438 \u0447\u0438\u0441\u0435\u043b. \u041f\u0435\u0440\u0432\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0442\u0440\u043e\u0439\u043a\u0438 \u0432 \u0441\u044d\u043c\u043f\u043b\u0430\u0445 &#8212; \u043d\u043e\u043c\u0435\u0440 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430: \u043f\u0430\u043a\u0435\u0442\u0430, \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430, \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439, \u043a\u0443\u0440\u0441\u043e\u0440\u0430 \u0438\u043b\u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u0446\u0438\u043a\u043b\u0430. \u042e\u043d\u0438\u0442 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u043e\u0439 <code>\/<\/code>.<\/p>\n<h3>\u0421\u043b\u043e\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f<\/h3>\n<p>\u041d\u0430 \u043f\u0443\u0442\u0438 \u0432 <code>.plb<\/code> \u0442\u0435\u043a\u0441\u0442 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u0441\u0435\u043c\u044c \u0448\u0430\u0433\u043e\u0432, \u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u0447\u0442\u043e-\u0442\u043e \u0442\u0435\u0440\u044f\u0435\u0442. \u0421\u0430\u043c\u043e\u0435 \u0432\u0430\u0436\u043d\u043e\u0435 \u0434\u043b\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f: \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0448\u0430\u0433 \u043f\u0440\u043e\u043f\u0443\u0449\u0435\u043d, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u0444\u0430\u0439\u043b\u0435 \u0441\u0442\u043e\u0438\u0442 \u0434\u0435\u0440\u0435\u0432\u043e, \u0431\u043b\u0438\u0437\u043a\u043e\u0435 \u043a \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0443, \u0430 \u043d\u0435 \u043e\u0442\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430. \u0422\u043e, \u0447\u0442\u043e \u0442\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u0448\u0430\u0433\u0430\u0445 3\u20135, \u0447\u0430\u0441\u0442\u043e \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043a\u043e\u0441\u0432\u0435\u043d\u043d\u044b\u0435 \u0441\u043b\u0435\u0434\u044b, \u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0449\u0438\u043a \u0438\u0445 \u0438\u0449\u0435\u0442.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/53\/9d\/fe\/539dfedf104427c7c178141971c3bc9b.png\" width=\"1520\" height=\"1400\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/53\/9d\/fe\/539dfedf104427c7c178141971c3bc9b.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/53\/9d\/fe\/539dfedf104427c7c178141971c3bc9b.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<h4>\u041b\u0435\u043a\u0441\u0435\u0440: \u0447\u0442\u043e \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043e\u0442 \u0442\u0435\u043a\u0441\u0442\u0430<\/h4>\n<ul>\n<li>\n<p><strong>\u0420\u0435\u0433\u0438\u0441\u0442\u0440.<\/strong> \u0418\u043c\u0435\u043d\u0430 \u0431\u0435\u0437 \u043a\u0430\u0432\u044b\u0447\u0435\u043a \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0432 \u043b\u0435\u043a\u0441\u0438\u043a\u043e\u043d \u0432 \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435: \u043f\u0430\u043a\u0435\u0442 <code>va<\/code> \u0437\u0430\u043f\u0438\u0441\u0430\u043d \u043a\u0430\u043a <code>VA<\/code>. \u0418\u043c\u044f \u0432 \u043a\u0430\u0432\u044b\u0447\u043a\u0430\u0445 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0440\u0435\u0433\u0438\u0441\u0442\u0440, \u0430 \u0441\u0430\u043c\u0438 \u043a\u0430\u0432\u044b\u0447\u043a\u0438 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0444\u043b\u0430\u0433\u043e\u043c \u0443\u0437\u043b\u0430-\u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430 (\u0447\u0435\u0442\u0432\u0451\u0440\u0442\u044b\u0439 \u0430\u0442\u0440\u0438\u0431\u0443\u0442, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f 1 \u0438\u043b\u0438 5).<\/p>\n<\/li>\n<li>\n<p><strong>\u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0438 \u043f\u043e\u0440\u044f\u0434\u043e\u043a.<\/strong> \u041a\u0430\u0436\u0434\u0430\u044f \u043b\u0435\u043a\u0441\u0435\u043c\u0430 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f: <code>NUMBER<\/code> \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0442\u0440\u0438\u0436\u0434\u044b, \u0430 \u0432 \u043b\u0435\u043a\u0441\u0438\u043a\u043e\u043d\u0435 \u0441\u0442\u043e\u0438\u0442 \u043e\u0434\u043d\u0430\u0436\u0434\u044b, \u043f\u043e\u0434 \u043d\u043e\u043c\u0435\u0440\u043e\u043c 8. \u041f\u043e\u0442\u043e\u043c\u0443 \u0434\u0430\u0436\u0435 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0441\u043b\u043e\u0432 \u0432 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u0435 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446.<\/p>\n<\/li>\n<li>\n<p><strong>\u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430.<\/strong> \u0417\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430 (<code>BEGIN<\/code>, <code>END<\/code>, <code>IS<\/code>, <code>AS<\/code>, <code>WITH<\/code>, <code>IN<\/code>) \u0441\u043b\u0435\u0434\u0430 \u043d\u0435 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442. \u0421\u043b\u043e\u0432\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043b\u0435\u043a\u0441\u0435\u0440 \u0447\u0438\u0442\u0430\u0435\u0442 \u043a\u0430\u043a \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b (<code>PACKAGE<\/code>, <code>TYPE<\/code>, <code>VARRAY<\/code>, <code>EXTERNAL<\/code>, <code>LANGUAGE<\/code>, <code>NAME<\/code>), \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0443\u0437\u043b\u0430\u043c\u0438 <code>DI_U_NAM<\/code>, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0438 \u043e\u0434\u0438\u043d \u0430\u0442\u0440\u0438\u0431\u0443\u0442. \u042d\u0442\u0438 \u00ab\u0441\u0438\u0440\u043e\u0442\u044b\u00bb &#8212; \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u043a\u043e\u0441\u0432\u0435\u043d\u043d\u044b\u0445 \u0441\u043b\u0435\u0434\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p><strong>\u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438.<\/strong> \u0418\u0441\u0447\u0435\u0437\u0430\u044e\u0442, \u043a\u0440\u043e\u043c\u0435 \u0442\u0440\u0451\u0445 \u0441\u043b\u0443\u0447\u0430\u0435\u0432: \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435, \u0445\u0438\u043d\u0442 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0442\u043e\u0440\u0430 (\u043b\u0435\u043a\u0441\u0435\u043c\u0430 <code>L_Q_HINT<\/code>) \u0438 SQL, \u0441\u043e\u0445\u0440\u0430\u043d\u0451\u043d\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442\u043e\u043c. \u0414\u043e 9.0 WRAP \u0442\u0435\u0440\u044f\u0435\u0442 \u0441\u0438\u043c\u0432\u043e\u043b \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 <code>\/*+<\/code>, \u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0449\u0438\u043a \u0441\u0442\u0430\u0432\u0438\u0442 \u0442\u0430\u043c \u043f\u0440\u043e\u0431\u0435\u043b.<\/p>\n<\/li>\n<\/ul>\n<h4>\u041f\u0430\u0440\u0441\u0435\u0440: \u0434\u0435\u0440\u0435\u0432\u043e \u0438 \u0435\u0433\u043e \u043d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u044f<\/h4>\n<p>\u0423\u0437\u043b\u044b \u043d\u0443\u043c\u0435\u0440\u0443\u044e\u0442\u0441\u044f \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f: \u043f\u0430\u0440\u0441\u0435\u0440 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u0442\u0440\u043e\u0438\u0442 \u0434\u0435\u0442\u0435\u0439, \u043f\u043e\u0442\u043e\u043c \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f. \u0412 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043a\u043e\u0440\u0435\u043d\u044c <code>D_COMP_U<\/code> &#8212; \u0443\u0437\u0435\u043b 58 \u0438\u0437 59. \u041a\u0430\u0436\u0434\u044b\u0439 \u0443\u0437\u0435\u043b \u0445\u0440\u0430\u043d\u0438\u0442 \u0441\u0442\u0440\u043e\u043a\u0443 \u0438 \u043a\u043e\u043b\u043e\u043d\u043a\u0443 \u0441\u0432\u043e\u0435\u0433\u043e \u0442\u043e\u043a\u0435\u043d\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 wrapped-\u043a\u043e\u0434 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0430\u0442\u044c \u043d\u043e\u043c\u0435\u0440\u0430 \u0441\u0442\u0440\u043e\u043a \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430.<\/p>\n<p>\u0411\u043b\u043e\u043a\u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0432\u044b\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u0435 \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0443\u0437\u043b\u043e\u0432, \u0438 \u044d\u0442\u043e \u0442\u043e\u0436\u0435 \u0441\u043b\u0435\u0434. WRAP \u0434\u043e PL\/SQL 9.0 \u043f\u043e\u0441\u043b\u0435 <code>IS<\/code> \u0447\u0438\u0442\u0430\u0435\u0442 \u043e\u0434\u0438\u043d \u0442\u043e\u043a\u0435\u043d \u0432\u043f\u0435\u0440\u0451\u0434, \u0430 \u043f\u043e\u0441\u043b\u0435 <code>AS<\/code> &#8212; \u043d\u0435\u0442. \u0423\u0437\u0435\u043b \u0437\u0430\u0431\u0435\u0433\u0430\u044e\u0449\u0435\u0433\u043e \u0442\u043e\u043a\u0435\u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0431\u043b\u043e\u043a \u0440\u0430\u043d\u044c\u0448\u0435 \u0438\u043c\u0435\u043d\u0438 \u043f\u0430\u043a\u0435\u0442\u0430, \u0438 \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u0441\u043b\u0435\u0434\u0443 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0449\u0438\u043a \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 <code>IS<\/code> \u0438\u043b\u0438 <code>AS<\/code>.<\/p>\n<h4>\u041d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f: \u0441\u0430\u0445\u0430\u0440 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043a\u0430\u043d\u043e\u043d\u043e\u043c<\/h4>\n<p>\u0424\u0440\u043e\u043d\u0442\u0435\u043d\u0434 \u043f\u0438\u0448\u0435\u0442 \u0432 \u0434\u0435\u0440\u0435\u0432\u043e \u043d\u0435 \u0441\u043b\u043e\u0432\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430, \u0430 \u0438\u0445 \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0444\u043e\u0440\u043c\u0443, \u0438 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u043d\u043e\u0433\u0434\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u0432\u043e\u0438 \u043b\u0435\u043a\u0441\u0435\u043c\u044b. \u0420\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0449\u0438\u043a \u0434\u043e\u043b\u0436\u0435\u043d \u0443\u0437\u043d\u0430\u0442\u044c \u043a\u0430\u043d\u043e\u043d \u0438 \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c.<\/p>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0412 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0435<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0412 \u0434\u0435\u0440\u0435\u0432\u0435<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041f\u043e \u0447\u0435\u043c\u0443 \u0432\u0438\u0434\u043d\u0430 \u0444\u043e\u0440\u043c\u0430<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>VARRAY(10) OF NUMBER<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>D_ARRAY<\/code> \u0441 \u0444\u043b\u0430\u0433\u043e\u043c 2 \u0438 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u043e\u043c <code>1..10<\/code>; \u043b\u0435\u043a\u0441\u0435\u043c\u0443 <code>1<\/code> \u0434\u043e\u0431\u0430\u0432\u0438\u043b \u043f\u0430\u0440\u0441\u0435\u0440<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>VARYING ARRAY<\/code> \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0443\u0437\u0435\u043b-\u0441\u0438\u0440\u043e\u0442\u0443 <code>ARRAY<\/code> \u043f\u0435\u0440\u0435\u0434 \u043b\u0438\u0442\u0435\u0440\u0430\u043b\u043e\u043c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>TABLE OF NUMBER<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>D_ARRAY<\/code> \u0441 \u0444\u043b\u0430\u0433\u043e\u043c 1 \u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c <code>BINARY_INTEGER<\/code>, \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432 \u0442\u0435\u043a\u0441\u0442\u0435 \u043d\u0435\u0442<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0444\u043b\u0430\u0433 1; \u0443 <code>INDEX BY<\/code> \u0444\u043b\u0430\u0433 0<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>CASE<\/code> \u0431\u0435\u0437 <code>ELSE<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0432\u0435\u0442\u043a\u0430 <code>ELSE<\/code> \u0441 <code>RAISE CASE_NOT_FOUND<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0438\u043c\u044f \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u043e \u0444\u043b\u0430\u0433\u043e\u043c 64 \u00ab\u0441\u043e\u0437\u0434\u0430\u043d\u043e \u043f\u0430\u0440\u0441\u0435\u0440\u043e\u043c\u00bb<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>TRIM(LEADING x FROM y)<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0432\u044b\u0437\u043e\u0432 <code> SYS$STANDARD_TRIM<\/code> \u0441 \u043a\u043e\u0434\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0430 (5, 6, 7)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0438\u043c\u044f \u0441 \u043f\u0440\u043e\u0431\u0435\u043b\u043e\u043c \u043d\u0435\u043b\u044c\u0437\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u0442\u0435\u043a\u0441\u0442\u0435; <code>BOTH<\/code> &#8212; \u043f\u043e \u0443\u0437\u043b\u0443 \u0441\u043b\u043e\u0432\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>CHR(x USING NCHAR_CS)<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0432\u044b\u0437\u043e\u0432 <code> SYS$STANDARD_CHR<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0442\u043e \u0436\u0435 \u0438\u043c\u044f \u0441 \u043f\u0440\u043e\u0431\u0435\u043b\u043e\u043c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>a = b<\/code>, <code>a MOD b<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0432\u044b\u0437\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438-\u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430; \u0438\u043c\u0435\u043d\u0430 <code>=<\/code>, <code>&lt;<\/code> \u043b\u0435\u0436\u0430\u0442 \u0432 \u043b\u0435\u043a\u0441\u0438\u043a\u043e\u043d\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>a MOD b<\/code> \u0438 <code>MOD(a, b)<\/code> \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0435\u0442 \u0442\u0438\u043f \u0441\u043f\u0438\u0441\u043a\u0430 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h4>\u0421\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 SQL<\/h4>\n<p>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e WRAP \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442 \u043a\u0430\u0436\u0434\u044b\u0439 SQL-\u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u043d\u0430 \u0443\u0437\u043b\u044b \u043f\u043e\u0434 <code>Q_SQL_ST<\/code>, \u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0449\u0438\u043a \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0435\u0433\u043e \u0437\u0430\u043d\u043e\u0432\u043e \u0432 \u0441\u0432\u043e\u0435\u0439 \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0435. WRAP 9.2 \u0441 \u043a\u043b\u044e\u0447\u043e\u043c <code>edebug=wrap_new_sql<\/code> \u0445\u0440\u0430\u043d\u0438\u0442 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u0443\u0437\u043b\u043e\u043c <code>D_SQL_STMT<\/code> \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u043c \u0432 \u043b\u0435\u043a\u0441\u0438\u043a\u043e\u043d\u0435, \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u043c\u0438. \u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u043a\u0443\u0440\u0441\u043e\u0440\u0430 <code>OPEN<\/code>, <code>FETCH<\/code>, <code>CLOSE<\/code> \u0432 \u043e\u0431\u043e\u0438\u0445 \u0440\u0435\u0436\u0438\u043c\u0430\u0445 \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0443\u0437\u043b\u0430\u043c\u0438.<\/p>\n<p>\u041a\u043b\u044e\u0447 \u043e\u043f\u0438\u0441\u0430\u043d \u0432 <a href=\"https:\/\/docs.oracle.com\/cd\/A97630_01\/appdev.920\/a96624\/c_wrap.htm\" rel=\"noopener nofollow\">\u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0435 PL\/SQL 9.2<\/a>: \u043e\u043d \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0432\u0441\u0435\u0433\u043e \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430 SQL \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 SQL \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u043c. \u0412 \u043a\u043e\u0440\u043f\u0443\u0441\u0435 \u0438\u0437 4017 \u044e\u043d\u0438\u0442\u043e\u0432 \u0442\u0430\u043a\u0438\u0445 7; \u0435\u0449\u0451 1429 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0439 SQL, 2581 \u043e\u0431\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0431\u0435\u0437 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e SQL.<\/p>\n<h4>\u0421\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f<\/h4>\n<p>\u0414\u0435\u0440\u0435\u0432\u043e \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c \u0438\u0437 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430, \u0438 \u043d\u043e\u0432\u044b\u0445 \u043f\u043e\u0442\u0435\u0440\u044c \u0442\u0443\u0442 \u043d\u0435\u0442. \u041d\u043e \u0447\u0438\u0441\u043b\u043e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0443\u0437\u043b\u0430 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043d\u0435\u044f\u0432\u043d\u044b\u043c, \u0430 \u043c\u0435\u0436\u0434\u0443 \u0431\u043b\u043e\u043a\u0430\u043c\u0438 \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u0438\u0447\u044c\u0438 \u0441\u043b\u043e\u0442\u044b: \u0437\u0430 \u0443\u0437\u043b\u043e\u043c \u0431\u0435\u0437 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0438\u0445 \u0432\u0441\u0435\u0433\u0434\u0430 \u0434\u0432\u0430. WRAP \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0432 \u043d\u0438\u0445 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0442\u0430\u043a \u0447\u0442\u043e \u0434\u0432\u0430 \u0444\u0430\u0439\u043b\u0430 \u0441 \u043e\u0434\u043d\u0438\u043c \u0434\u0435\u0440\u0435\u0432\u043e\u043c \u043c\u043e\u0433\u0443\u0442 \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f \u0431\u0430\u0439\u0442\u0430\u043c\u0438.<\/p>\n<h3>\u0420\u0430\u0437\u0431\u043e\u0440 \u043f\u0440\u0438\u043c\u0435\u0440\u0430: \u043f\u0430\u043a\u0435\u0442 va<\/h3>\n<p>\u0421\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043f\u0430\u043a\u0435\u0442\u0430 \u0438\u0437 \u0441\u044d\u043c\u043f\u043b\u0430 <code>P920VARRAY<\/code> (WRAP 9.2.0.4) \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u0441\u0435\u043c\u044c \u0441\u0442\u0440\u043e\u043a, \u0430 \u0432 <code>.plb<\/code> \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 18 \u043b\u0435\u043a\u0441\u0435\u043c, 59 \u0443\u0437\u043b\u043e\u0432, 251 \u0441\u043b\u043e\u0442 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0438 20 \u043f\u043e\u0437\u0438\u0446\u0438\u0439 \u0441\u043f\u0438\u0441\u043a\u043e\u0432 &#8212; 146 \u0441\u0442\u0440\u043e\u043a. \u0420\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0449\u0438\u043a \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u044d\u0442\u0430\u043b\u043e\u043d\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u0431\u0430\u0439\u0442 \u0432 \u0431\u0430\u0439\u0442.<\/p>\n<h4>\u0422\u0435\u043a\u0441\u0442<\/h4>\n<pre><code class=\"sql\">CREATE OR REPLACE PACKAGE va IS   TYPE V1 IS VARRAY( 10 ) OF NUMBER;   TYPE V2 IS VARYING ARRAY( 5 ) OF VARCHAR2( 10 );   TYPE V3 IS VARRAY( 3 ) OF NUMBER NOT NULL;   TYPE T1 IS TABLE OF NUMBER;   X V1;END;\/<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u042d\u0442\u043e \u044d\u0442\u0430\u043b\u043e\u043d \u0441\u044d\u043c\u043f\u043b\u0430 \u0438 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0432\u044b\u0432\u043e\u0434 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0449\u0438\u043a\u0430. \u0420\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 \u0432 \u043d\u0451\u043c \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0430\u044f &#8212; \u043e\u0442\u0441\u0442\u0443\u043f \u0432 \u0442\u0440\u0438 \u043f\u0440\u043e\u0431\u0435\u043b\u0430, \u043f\u0440\u043e\u0431\u0435\u043b\u044b \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u043a\u043e\u0431\u043e\u043a, &#8212; \u0430 WRAP \u0442\u043e\u0439 \u0436\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u0441\u0442\u0440\u043e\u0438\u0442 \u0438\u0437 \u043d\u0435\u0433\u043e \u0442\u043e \u0436\u0435 \u0434\u0435\u0440\u0435\u0432\u043e DIANA.<\/p>\n<h4>Wrapped-\u0444\u0430\u0439\u043b<\/h4>\n<details class=\"spoiler\">\n<summary>Wrapped-\u0444\u0430\u0439\u043b \u043f\u0430\u043a\u0435\u0442\u0430 va \u0446\u0435\u043b\u0438\u043a\u043e\u043c (146 \u0441\u0442\u0440\u043e\u043a)<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>CREATE OR REPLACE PACKAGE va wrapped 0abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd399200000140 122 :e:1PACKAGE:1VA:1TYPE:1V1:1VARRAY:11:110:1NUMBER:1V2:1VARYING:1ARRAY:15:1VARCHAR2:1V3:13:1T1:1BINARY_INTEGER:1X:0003c20 a0 97 a0 9d a0 :2 51 63a8 a0 1c c 77 a0 9d :2 a0:2 51 63 a8 a0 51 a5 1c c77 a0 9d a0 :2 51 63 a8 a01c c 77 a0 9d a0 1c a040 a8 c 77 a3 a0 1c 81b0 :2 aa 59 58 1d 17 b5 3c20 3 7 11 39 19 1d 2023 27 28 2c 34 15 40 7048 4c 50 53 56 5a 5b 5f62 63 6b 44 77 9f 7f 8386 89 8d 8e 92 9a 7b a6c5 ae b2 ba be bf c0 aae1 d0 d4 dc cf cc e8 eaed f0 f1 fa 3c20 1 9 3 8 e :4 14 :2 1ce :2 3 8 e 16 :4 1b 22 2b2a 22 e :2 3 8 e :4 14 :2 1be :2 3 8 :2 17 :4 e :2 3 :3 5 3:7 1 3c40 :2 1 :b 2 :e 3:b 4 :9 5 :5 6 :7 1fc4:3 0 1 :3 0 2:6 0 1 :2 0 3:3 0 4 0 c35 5 :3 0 6:2 0 7 :2 0 67 :2 0 3 8:3 0 a :7 0 9b :2 0 2 4c 4 :4 0 3:3 0 f 0 1a35 a :3 0 b:3 0 6 :2 0 c:2 0 12 13 :2 05 d :3 0 7:2 0 7 16 18:6 0 15 19 :2 02 9 1a f:4 0 3 :3 0 1d0 25 35 5:3 0 6 :2 0 f:2 0 1f 20 :2 09 8 :3 0 230 2 :5 0 2224 :2 0 2 e25 1d :4 0 3:3 0 28 0 2e35 8 :3 0 29:7 0 11 :3 0 2bb 2d 2a :2 01 10 2e 28:4 0 f 37 0d 4 :3 0 31:7 0 34 32 035 0 12 :7 037 35 36 382 37 3a 039 38 3b :8 0154:3 0 1 8 114 1 17 121 1 2c 130 5 d 1b26 2f 33 140 3a0114160 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 28 1 04 1 0f 1 01d 1 02 0 130 1 00\/<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<\/div>\n<\/details>\n<p>\u0412\u0442\u043e\u0440\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0444\u0430\u0439\u043b\u0430, <code>CREATE OR REPLACE TYPE vt AS VARRAY(20) OF NUMBER;<\/code>, \u043e\u0441\u0442\u0430\u043b\u0430\u0441\u044c \u0432 <code>.plb<\/code> \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0439. \u041f\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 9.2 WRAP \u0437\u0430\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442 \u0438\u0437 \u0442\u0438\u043f\u043e\u0432 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u044b\u0435 (<code>CREATE TYPE \u2026 OBJECT<\/code>) \u0438 \u0442\u0435\u043b\u0430 \u0442\u0438\u043f\u043e\u0432, \u0430 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u043a\u0430\u043a \u0435\u0441\u0442\u044c.<\/p>\n<h4>\u0414\u0435\u0440\u0435\u0432\u043e<\/h4>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/b5\/2e\/e2\/b52ee2805a3ebcaf638b6909de105b50.png\" width=\"1520\" height=\"1528\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/b5\/2e\/e2\/b52ee2805a3ebcaf638b6909de105b50.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/b5\/2e\/e2\/b52ee2805a3ebcaf638b6909de105b50.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u044f \u0438\u0434\u0451\u0442 \u0441\u043d\u0438\u0437\u0443 \u0432\u0432\u0435\u0440\u0445: \u043b\u0438\u0442\u0435\u0440\u0430\u043b\u044b \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043d\u043e\u043c\u0435\u0440\u0430 6 \u0438 7, \u0441\u0430\u043c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d &#8212; 8, \u043a\u043e\u0440\u0435\u043d\u044c &#8212; 58. \u041f\u043e\u0437\u0438\u0446\u0438\u0438 \u0432\u0437\u044f\u0442\u044b \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0438\u0434\u0435\u043b WRAP: \u0442\u0430\u043c \u0431\u044b\u043b\u043e <code>VARRAY(10)<\/code> \u0431\u0435\u0437 \u043f\u0440\u043e\u0431\u0435\u043b\u043e\u0432, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0443 <code>NUMBER<\/code> \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u043a\u043e\u043b\u043e\u043d\u043a\u0430 28, \u0430 \u0432 \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u0435 \u043e\u043d \u0441\u0442\u043e\u0438\u0442 \u043f\u0440\u0430\u0432\u0435\u0435.<\/p>\n<h4>\u041e\u0434\u0438\u043d \u0443\u0437\u0435\u043b \u0432\u0440\u0443\u0447\u043d\u0443\u044e<\/h4>\n<p>\u0420\u0430\u0441\u0448\u0438\u0444\u0440\u0443\u0435\u043c \u0443\u0437\u0435\u043b 8 &#8212; \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d <code>1..10<\/code> \u0438\u0437 <code>VARRAY(10)<\/code>:<\/p>\n<ul>\n<li>\n<p><strong>\u0422\u0438\u043f\u044b \u0443\u0437\u043b\u043e\u0432, \u043f\u043e\u0437\u0438\u0446\u0438\u044f 8:<\/strong> <code>63<\/code> = 99, \u0442\u043e \u0435\u0441\u0442\u044c <code>D_RANGE<\/code>. \u0412 \u0441\u0442\u0440\u043e\u043a\u0435 <code>0 a0 97 a0 9d a0 :2 51 63<\/code> \u0437\u0430\u043f\u0438\u0441\u044c <code>:2 51<\/code> \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 6 \u0438 7.<\/p>\n<\/li>\n<li>\n<p><strong>\u0421\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b, \u043f\u043e\u0437\u0438\u0446\u0438\u044f 8:<\/strong> <code>23<\/code> = 35.<\/p>\n<\/li>\n<li>\n<p><strong>\u041a\u043e\u043b\u043e\u043d\u043a\u0438 \u0438 \u0441\u0442\u0440\u043e\u043a\u0438, \u043f\u043e\u0437\u0438\u0446\u0438\u044f 8:<\/strong> \u043a\u043e\u043b\u043e\u043d\u043a\u0430 20, \u0441\u0442\u0440\u043e\u043a\u0430 2.<\/p>\n<\/li>\n<li>\n<p><strong>\u0420\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 <\/strong><code><strong>D_RANGE<\/strong><\/code><strong> \u0434\u043b\u044f 9.x<\/strong> &#8212; \u0447\u0435\u0442\u044b\u0440\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430: <code>A_EXP1<\/code>, <code>A_EXP2<\/code>, <code>S_BASE_T<\/code>, <code>S_LENGTH_SEMANTICS<\/code>. \u0412 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u043d\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u044f\u0445 35\u201338 \u0441\u0442\u043e\u044f\u0442 6, 7, 0, 0: \u0433\u0440\u0430\u043d\u0438\u0446\u044b &#8212; \u0443\u0437\u043b\u044b 6 \u0438 7, \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u043a\u0430 \u043f\u0443\u0441\u0442\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>\u0423\u0437\u043b\u044b 6 \u0438 7<\/strong> &#8212; <code>D_NUMERI<\/code> \u0441 <code>L_NUMREP<\/code>, \u0440\u0430\u0432\u043d\u044b\u043c \u043b\u0435\u043a\u0441\u0435\u043c\u0430\u043c 6 \u0438 7, \u0442\u043e \u0435\u0441\u0442\u044c <code>1<\/code> \u0438 <code>10<\/code>.<\/p>\n<\/li>\n<li>\n<p><strong>\u0420\u043e\u0434\u0438\u0442\u0435\u043b\u044c<\/strong> &#8212; \u0443\u0437\u0435\u043b 9 <code>DS_D_RAN<\/code> \u0441 <code>AS_LIST<\/code> = 3. \u0412 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0441\u043f\u0438\u0441\u043a\u043e\u0432 \u043d\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 3 \u0441\u0442\u043e\u044f\u0442 \u0434\u043b\u0438\u043d\u0430 1 \u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 8.<\/p>\n<\/li>\n<\/ul>\n<h3>\u0412\u0435\u0440\u0441\u0438\u0438 DIANA \u0438 \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432<\/h3>\n<p>\u041e\u0434\u043d\u0430 \u0438 \u0442\u0430 \u0436\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 \u0434\u0430\u0451\u0442 \u0443\u0437\u043b\u044b \u0441 \u0440\u0430\u0437\u043d\u044b\u043c \u0447\u0438\u0441\u043b\u043e\u043c \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432, \u0430 \u0444\u0430\u0439\u043b \u044d\u0442\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u043d\u0435 \u0445\u0440\u0430\u043d\u0438\u0442. \u0420\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0449\u0438\u043a \u0431\u0435\u0440\u0451\u0442 \u0435\u0433\u043e \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043e\u043a: \u043e\u043d\u0430 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0430 \u0438\u0437 IDL-\u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440\u0430 WRAP 9.2.0.4, \u0433\u0434\u0435 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u044b \u0432\u0441\u0435 \u043f\u044f\u0442\u044c \u0432\u0435\u0440\u0441\u0438\u0439 DIANA. \u041d\u043e\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0432 \u043a\u043e\u043d\u0435\u0446 \u0441\u043f\u0438\u0441\u043a\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 \u0441\u0442\u0430\u0440\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 &#8212; \u043f\u0440\u0435\u0444\u0438\u043a\u0441 \u043d\u043e\u0432\u043e\u0439.<\/p>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0412\u0435\u0440\u0441\u0438\u044f DIANA<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0420\u0435\u043b\u0438\u0437\u044b WRAP<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0413\u0440\u0443\u043f\u043f\u0430<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0422\u0438\u043f\u043e\u0432 \u0441 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043c\u0438<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0421\u043b\u043e\u0442\u043e\u0432 \u0432 \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0435<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0427\u0442\u043e \u043f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c \u0432 \u0434\u0435\u0440\u0435\u0432\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>200f000<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">2.2\u20132.3.4, \u0441\u043b\u043e\u0432\u0430 <code>\u202625ff<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">2.x<\/p>\n<\/td>\n<td>\n<p align=\"left\">183<\/p>\n<\/td>\n<td>\n<p align=\"left\">664<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0431\u0430\u0437\u043e\u0432\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 PL\/SQL 2<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>8003000<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">8.0.5<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.0<\/p>\n<\/td>\n<td>\n<p align=\"left\">202<\/p>\n<\/td>\n<td>\n<p align=\"left\">759<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043e\u0431\u044a\u0435\u043a\u0442\u043d\u044b\u0435 \u0442\u0438\u043f\u044b, \u0432\u043d\u0435\u0448\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, <code>REF<\/code>, \u043d\u0430\u0431\u043e\u0440\u044b \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 (<code>A_CS<\/code>), \u0444\u043b\u0430\u0433 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 <code>A_TFLAG<\/code>, <code>RETURNING<\/code> \u0432 DML<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>8105000<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">8.1.5 \u0434\u043b\u044f Windows NT<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.1.5<\/p>\n<\/td>\n<td>\n<p align=\"left\">216<\/p>\n<\/td>\n<td>\n<p align=\"left\">819<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>FORALL<\/code> \u0438 <code>BULK COLLECT<\/code>, <code>EXECUTE IMMEDIATE<\/code> \u0438 <code>OPEN \u2026 FOR<\/code>, <code>AUTHID<\/code> \u0438 \u0441\u0445\u0435\u043c\u0430 \u0432 \u043a\u043e\u0440\u043d\u0435 <code>D_COMP_U<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>8106000<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">8.1.6, 8.1.7<\/p>\n<\/td>\n<td>\n<p align=\"left\">8.1.6<\/p>\n<\/td>\n<td>\n<p align=\"left\">218<\/p>\n<\/td>\n<td>\n<p align=\"left\">826<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>SAMPLE<\/code>, <code>FETCH \u2026 LIMIT<\/code>, <code>RETURNING<\/code> \u0443 <code>EXECUTE IMMEDIATE<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>9000000<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">9.0.1; 9.2.0.4 \u043f\u0438\u0448\u0435\u0442 <code>9200000<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">9.0, 9.2<\/p>\n<\/td>\n<td>\n<p align=\"left\">230<\/p>\n<\/td>\n<td>\n<p align=\"left\">893<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f <code>CASE<\/code>, <code>COALESCE<\/code>, <code>NULLIF<\/code>, <code>PIPE ROW<\/code>, \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0438\u043f\u043e\u0432, \u0434\u043b\u0438\u043d\u0430 \u0432 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u0445, <code>D_SQL_STMT<\/code>, <code>AGENT<\/code> \u0443 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u043a\u043e\u043b\u043e\u043d\u043a\u0430 &#8212; \u043d\u043e\u0432\u044b\u0435 \u0443\u0437\u043b\u044b \u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043e\u043a (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>D_FORALL<\/code> \u0438 <code>Q_EXEC_IMMEDIATE<\/code> \u0432 8.1.5, <code>D_CASE_EXP<\/code> \u0438 <code>D_PIPE<\/code> \u0432 9.x). \u042e\u043d\u0438\u0442 \u043d\u0435\u0437\u043d\u0430\u043a\u043e\u043c\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043f\u043e \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0439 \u043c\u043b\u0430\u0434\u0448\u0435\u0439 \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0435: <code>9200000<\/code> &#8212; \u043a\u0430\u043a <code>9000000<\/code>.<\/p>\n<h4>\u041e\u0442\u043a\u0443\u0434\u0430 \u0432\u0437\u044f\u043b\u0430\u0441\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0430<\/h4>\n<p>IDL-\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 &#8212; \u044d\u0442\u043e \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432 Linux-\u0441\u0431\u043e\u0440\u043a\u0430\u0445 WRAP 8.1.6\u20139.2 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0441\u0438\u043c\u0432\u043e\u043b <code>plsdiana<\/code>. \u0412 <code>PLS234.DLL<\/code> \u0438 <code>PLS805.DLL<\/code> \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u043d\u0435\u0442, \u0438 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 \u043d\u0430 \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u043c\u0451\u043d \u0443\u0437\u043b\u043e\u0432. \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440\u0430 \u0432\u043e \u0432\u0441\u0435\u0445 \u0440\u0435\u043b\u0438\u0437\u0430\u0445 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u0430: \u043d\u043e\u043c\u0435\u0440\u0430 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0432\u0441\u0435\u0445 \u0443\u0437\u043b\u043e\u0432, \u043d\u0430\u0447\u0430\u043b\u043e \u0441\u043f\u0438\u0441\u043a\u0430 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0442\u0438\u043f\u0430, \u0438\u0445 \u0447\u0438\u0441\u043b\u043e, \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u0442\u0438\u043f\u044b \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432, \u0438\u043c\u0435\u043d\u0430 \u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0447\u0438\u0441\u0435\u043b \u043f\u043e \u0432\u0435\u0440\u0441\u0438\u044f\u043c.<\/p>\n<p>\u0420\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0438 \u0441\u0432\u0435\u0440\u0435\u043d\u044b \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0440\u0435\u043b\u0438\u0437\u0430\u043c\u0438 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u044b \u043d\u0430 1431 \u044e\u043d\u0438\u0442\u0435 \u0438 3,2 \u043c\u043b\u043d \u0443\u0437\u043b\u043e\u0432: \u043d\u0438 \u0443 \u043e\u0434\u043d\u043e\u0433\u043e \u0443\u0437\u043b\u0430 \u0431\u043b\u043e\u043a \u0432 \u0444\u0430\u0439\u043b\u0435 \u043d\u0435 \u043a\u043e\u0440\u043e\u0447\u0435 \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0438. \u041f\u043e\u0440\u043e\u0433\u0438 \u0432\u0440\u043e\u0434\u0435 \u00ab\u0441 Oracle 8i\u00bb, \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u0441\u044d\u043c\u043f\u043b\u0430\u043c, \u0441 \u043d\u0435\u0439 \u043d\u0435 \u0441\u0445\u043e\u0434\u044f\u0442\u0441\u044f: <code>UPDATE \u2026 RETURNING<\/code> \u0435\u0441\u0442\u044c \u0441 8.0.3, <code>FETCH \u2026 LIMIT<\/code> &#8212; \u0441 8.1.6, <code>AUTHID<\/code> &#8212; \u0441 8.1.5, \u0430 <code>AGENT<\/code> \u0443 <code>LIBRARY<\/code> &#8212; \u0442\u043e\u043b\u044c\u043a\u043e \u0441 9.0.<\/p>\n<h4>\u0420\u0435\u043b\u0438\u0437 \u0438 \u0444\u043e\u0440\u043c\u0430 SQL \u043f\u043e \u0434\u0435\u0440\u0435\u0432\u0443<\/h4>\n<p>\u0420\u0435\u043b\u0438\u0437 \u043d\u0443\u0436\u0435\u043d, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0431\u0440\u0430\u0442\u044c WRAP \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043a\u0440\u0443\u0433\u043e\u0432\u044b\u043c \u043f\u0440\u043e\u0433\u043e\u043d\u043e\u043c, \u0430 \u0441\u0442\u0440\u043e\u043a\u0430 \u0432\u0435\u0440\u0441\u0438\u0438 \u0435\u0433\u043e \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 <code>PlsqlVersion<\/code> \u0434\u0430\u0451\u0442 \u0442\u0440\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f: \u0441\u0442\u0440\u043e\u043a\u0443 \u043a\u0430\u043a \u0432 \u044e\u043d\u0438\u0442\u0435, \u0440\u0435\u043b\u0438\u0437 \u0441 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u044e\u043d\u0438\u0442, \u0438 \u0433\u0440\u0443\u043f\u043f\u0443 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <code>2.2.2.3.1 [952825ff, compatible 2.x]<\/code>.<\/p>\n<ul>\n<li>\n<p><strong>PL\/SQL 2.2 \u0438\u043b\u0438 2.3.<\/strong> \u0421\u0442\u0440\u043e\u043a\u0443 <code>200f000<\/code> \u043f\u0438\u0448\u0443\u0442 \u043e\u0431\u0430 \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u0430, \u043d\u043e \u0434\u0435\u0440\u0435\u0432\u044c\u044f \u0442\u0435\u043b \u0443 \u043d\u0438\u0445 \u0440\u0430\u0437\u043d\u044b\u0435: 2.3 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0443\u0437\u043b\u044b <code>D_NULL_S<\/code> \u0431\u0435\u0437 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f \u043f\u043e\u0441\u043b\u0435 \u043a\u0430\u0436\u0434\u043e\u0433\u043e <code>D_P_BODY<\/code> \u0438 <code>D_S_BODY<\/code>, 2.2 \u0442\u0430\u043a\u0438\u0445 \u0443\u0437\u043b\u043e\u0432 \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u0451\u0442. \u041f\u0440\u0438\u0437\u043d\u0430\u043a \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d \u043d\u0430 490 \u044e\u043d\u0438\u0442\u0430\u0445 PL\/SQL 2 \u0441 \u0434\u0438\u0441\u043a\u043e\u0432 Oracle 7.3; \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0443 2.2 \u0438 2.3 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442 \u0440\u0435\u043b\u0438\u0437 <code>2.x<\/code>.<\/p>\n<\/li>\n<li>\n<p><strong>\u0424\u043e\u0440\u043c\u0430 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e SQL.<\/strong> <code>StaticSqlForm<\/code> \u0441\u043c\u043e\u0442\u0440\u0438\u0442 \u043d\u0430 \u0442\u0438\u043f\u044b \u0443\u0437\u043b\u043e\u0432: <code>D_SQL_STMT<\/code> \u0437\u043d\u0430\u0447\u0438\u0442 \u0442\u0435\u043a\u0441\u0442, <code>Q_SQL_ST<\/code> \u0441 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u043c \u043a\u0440\u043e\u043c\u0435 <code>OPEN<\/code>, <code>FETCH<\/code>, <code>CLOSE<\/code> &#8212; \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0439 SQL, \u0438\u043d\u0430\u0447\u0435 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e SQL \u043d\u0435\u0442. \u0414\u043b\u044f \u043a\u0440\u0443\u0433\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u043e\u043d\u0430 \u044e\u043d\u0438\u0442\u0430 \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u043c \u043d\u0443\u0436\u0435\u043d WRAP 9.2.0.4 \u0441 <code>edebug=wrap_new_sql<\/code>.<\/p>\n<\/li>\n<\/ul>\n<h3>\u041e\u0431\u0440\u0430\u0442\u043d\u043e\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435: \u043a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0449\u0438\u043a<\/h3>\n<p>\u0420\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0449\u0438\u043a \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u043f\u0443\u0442\u044c WRAP \u0432 \u043e\u0431\u0440\u0430\u0442\u043d\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443. \u041f\u0430\u0440\u0441\u0435\u0440 \u0447\u0438\u0442\u0430\u0435\u0442 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0432 \u043c\u043e\u0434\u0435\u043b\u044c <code>DianaProgram<\/code>, \u0440\u0435\u043d\u0434\u0435\u0440\u0435\u0440 \u043e\u0431\u0445\u043e\u0434\u0438\u0442 \u0434\u0435\u0440\u0435\u0432\u043e \u043e\u0442 \u043a\u043e\u0440\u043d\u044f \u0438 \u043f\u0438\u0448\u0435\u0442 \u0442\u0435\u043a\u0441\u0442 \u0432 \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0435, \u0430 \u043f\u043e\u0442\u0435\u0440\u044f\u043d\u043d\u044b\u0435 \u0434\u0435\u0442\u0430\u043b\u0438 \u0434\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u043f\u043e \u0441\u043b\u0435\u0434\u0430\u043c \u0432 \u0434\u0435\u0440\u0435\u0432\u0435. \u041f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 API \u043e\u0434\u0438\u043d \u0434\u043b\u044f V1 \u0438 V2, \u043c\u043e\u0434\u0435\u043b\u044c DIANA \u043d\u0430\u0440\u0443\u0436\u0443 \u043d\u0435 \u0432\u0438\u0434\u043d\u0430.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/50\/c2\/a7\/50c2a7d5c7281e2c7c52461a8a8d9a4c.png\" width=\"1520\" height=\"1360\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/50\/c2\/a7\/50c2a7d5c7281e2c7c52461a8a8d9a4c.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/50\/c2\/a7\/50c2a7d5c7281e2c7c52461a8a8d9a4c.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<h4>\u041f\u0440\u0430\u0432\u0438\u043b\u0430 \u0440\u0435\u043d\u0434\u0435\u0440\u0435\u0440\u0430<\/h4>\n<ul>\n<li>\n<p><strong>\u041e\u0434\u0438\u043d \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0434\u0430\u043d\u043d\u044b\u0445.<\/strong> \u0412\u0441\u0451 \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0438\u0437 <code>DianaProgram<\/code>, \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043d\u0435 \u043a\u043e\u043f\u0438\u0440\u0443\u044e\u0442\u0441\u044f. \u0410\u0442\u0440\u0438\u0431\u0443\u0442 \u0430\u0434\u0440\u0435\u0441\u0443\u0435\u0442\u0441\u044f \u043d\u043e\u043c\u0435\u0440\u043e\u043c \u0432 \u0443\u0437\u043b\u0435, \u0430 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u043c\u0438 \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0438 \u0432\u0435\u0440\u0441\u0438\u0438 \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a 0, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0447\u0443\u0436\u0438\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u043d\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0432 \u0442\u0435\u043a\u0441\u0442.<\/p>\n<\/li>\n<li>\n<p><strong>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0432 \u043e\u0434\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435.<\/strong> <code>DianaTree<\/code> \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0441\u0441\u044b\u043b\u043a\u0438 \u043f\u043e \u0441\u0445\u0435\u043c\u0435 \u0432\u0440\u043e\u0434\u0435 <code>NNN----X-<\/code>: \u0430\u0442\u0440\u0438\u0431\u0443\u0442 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0443\u0437\u0435\u043b, \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u043b\u0438 \u043b\u0435\u043a\u0441\u0435\u043c\u0443. \u0418\u0441\u043f\u043e\u0440\u0447\u0435\u043d\u043d\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u0434\u0430\u0451\u0442 <code>DianaStructureException<\/code> \u0441 \u043d\u043e\u043c\u0435\u0440\u043e\u043c \u0438 \u0442\u0438\u043f\u043e\u043c \u0443\u0437\u043b\u0430, \u0430 \u0446\u0438\u043a\u043b \u0432 \u0446\u0435\u043f\u043e\u0447\u043a\u0435 \u0443\u0437\u043b\u043e\u0432 \u043b\u043e\u0432\u0438\u0442 <code>Visited<\/code>.<\/p>\n<\/li>\n<li>\n<p><strong>\u0420\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043f\u043e \u043e\u0431\u043b\u0430\u0441\u0442\u044f\u043c.<\/strong> \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0439, \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432, \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0438 SQL &#8212; \u043f\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u0442\u0435\u043d \u0441\u0442\u0440\u043e\u043a \u043a\u0430\u0436\u0434\u044b\u0439; <code>NodeRenderer<\/code> \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043f\u043e \u043a\u043e\u0434\u0443 \u0442\u0438\u043f\u0430. \u0412\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442 \u0442\u0435\u043a\u0441\u0442, \u0441\u043e\u0441\u0442\u0430\u0432\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0441\u0430\u043c\u0438 \u043f\u0438\u0448\u0443\u0442 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 <code>SourceWriter<\/code>.<\/p>\n<\/li>\n<li>\n<p><strong>\u0420\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 \u043a\u0430\u043a \u0443 \u044d\u0442\u0430\u043b\u043e\u043d\u0430.<\/strong> SQL \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0432 \u0432\u044b\u0432\u043e\u0434\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b REWRAP: \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u044b, \u043e\u0442\u0441\u0442\u0443\u043f\u044b, \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 SQL \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u043c \u0443\u0437\u043b\u0430\u043c \u043a\u043e\u043b\u043e\u043d\u043a\u0443 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f \u0438 \u0440\u0435\u0436\u0438\u043c.<\/p>\n<\/li>\n<\/ul>\n<h4>\u041f\u043e\u0442\u0435\u0440\u044f\u043d\u043d\u043e\u0435 &#8212; \u043f\u043e \u0441\u043b\u0435\u0434\u0430\u043c<\/h4>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0427\u0442\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u0442\u043a\u0443\u0434\u0430 \u0431\u0435\u0440\u0451\u0442\u0441\u044f<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a: \u0441\u0445\u0435\u043c\u0430, <code>OR REPLACE<\/code>, \u0440\u0435\u0433\u0438\u0441\u0442\u0440, \u043a\u0430\u0432\u044b\u0447\u043a\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0441\u0442\u0440\u043e\u043a\u0430 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 wrapped-\u044e\u043d\u0438\u0442\u0430, \u0430 \u043d\u0435 \u0434\u0435\u0440\u0435\u0432\u043e<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>IS<\/code> \u0438\u043b\u0438 <code>AS<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0441\u043b\u0435\u0434 \u0437\u0430\u0431\u0435\u0433\u0430\u044e\u0449\u0435\u0433\u043e \u0442\u043e\u043a\u0435\u043d\u0430: \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0443\u0437\u043b\u043e\u0432 \u0438 \u0431\u043b\u043e\u043a\u043e\u0432 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041f\u043e\u0440\u044f\u0434\u043e\u043a \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b, <code>WORK<\/code>, <code>SAVEPOINT<\/code>, <code>BOTH<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043d\u043e\u043c\u0435\u0440\u0430 \u0443\u0437\u043b\u043e\u0432-\u0441\u0438\u0440\u043e\u0442 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u043b\u043e\u0432<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0440\u043e\u043a\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0440\u043e\u043a\u0438 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u044e\u043d\u0438\u0442\u0430 \u0432\u043e \u0432\u0445\u043e\u0434\u043d\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u0435: CRLF, LF \u0438\u043b\u0438 CR<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0420\u0435\u043b\u0438\u0437 PL\/SQL \u0438 \u0444\u043e\u0440\u043c\u0430 SQL<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0441\u0442\u0440\u043e\u043a\u0430 \u0432\u0435\u0440\u0441\u0438\u0438 \u0438 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0438 \u0434\u0435\u0440\u0435\u0432\u0430<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0438\u0434\u0451\u0442 \u043d\u0430 \u0442\u0440\u0451\u0445 \u0443\u0440\u043e\u0432\u043d\u044f\u0445. \u0422\u0435\u0441\u0442\u044b \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044e\u0442 \u0432\u044b\u0432\u043e\u0434 \u0441 \u044d\u0442\u0430\u043b\u043e\u043d\u0430\u043c\u0438 \u0431\u0430\u0439\u0442 \u0432 \u0431\u0430\u0439\u0442; \u043a\u0440\u0443\u0433\u043e\u0432\u043e\u0439 \u043f\u0440\u043e\u0433\u043e\u043d \u0442\u0440\u0435\u0431\u0443\u0435\u0442, \u0447\u0442\u043e\u0431\u044b WRAP \u0442\u043e\u0439 \u0436\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u043b \u0438\u0437 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430 \u0442\u043e \u0436\u0435 \u0434\u0435\u0440\u0435\u0432\u043e; \u043d\u0430 wrapped-\u0444\u0430\u0439\u043b\u0430\u0445 \u0438\u0437 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u043e\u0432 Oracle \u0432\u044b\u0432\u043e\u0434 \u0441\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u0441 REWRAP. \u041a\u0440\u0443\u0433\u043e\u0432\u043e\u0439 \u043f\u0440\u043e\u0433\u043e\u043d \u0441\u0442\u0440\u043e\u0436\u0435 \u0441\u043c\u044b\u0441\u043b\u043e\u0432\u043e\u0439 \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u0438: \u0438\u0437-\u0437\u0430 \u043b\u0435\u043a\u0441\u0438\u043a\u043e\u043d\u0430 \u0438 \u043d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u0438 \u0443\u0437\u043b\u043e\u0432 \u0432\u0430\u0436\u0435\u043d \u0434\u0430\u0436\u0435 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0441\u043b\u043e\u0432.<\/p>\n<h3>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0438 \u043f\u043e\u0434\u0432\u043e\u0434\u043d\u044b\u0435 \u043a\u0430\u043c\u043d\u0438<\/h3>\n<p>\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 V1 &#8212; \u0434\u0435\u0440\u0435\u0432\u043e \u0445\u0440\u0430\u043d\u0438\u0442 \u0441\u043c\u044b\u0441\u043b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u043d\u043e \u043d\u0435 \u0435\u0451 \u0437\u0430\u043f\u0438\u0441\u044c. \u0427\u0430\u0441\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0438 \u043f\u043e\u0442\u0435\u0440\u044f\u043d\u0430 \u043d\u0430\u0441\u043e\u0432\u0441\u0435\u043c, \u0447\u0430\u0441\u0442\u044c \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043b\u0438\u0448\u044c \u0432 \u043a\u043e\u0441\u0432\u0435\u043d\u043d\u044b\u0445 \u0441\u043b\u0435\u0434\u0430\u0445, \u0430 \u0441\u0430\u043c \u0444\u043e\u0440\u043c\u0430\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043b\u043e\u0432\u0443\u0448\u043a\u0438, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0430\u0438\u0432\u043d\u044b\u0439 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0449\u0438\u043a \u0432\u044b\u0434\u0430\u0451\u0442 \u043d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442.<\/p>\n<h4>\u0422\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u0431\u0435\u0437\u0432\u043e\u0437\u0432\u0440\u0430\u0442\u043d\u043e<\/h4>\n<ul>\n<li>\n<p><strong>\u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u044e\u043d\u0438\u0442\u0430.<\/strong> \u0423\u0446\u0435\u043b\u0435\u0432\u0430\u044e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430, \u0445\u0438\u043d\u0442\u044b \u0438 SQL, \u0441\u043e\u0445\u0440\u0430\u043d\u0451\u043d\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442\u043e\u043c.<\/p>\n<\/li>\n<li>\n<p><strong>\u0420\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430.<\/strong> \u041f\u043e\u0437\u0438\u0446\u0438\u0438 \u0443\u0437\u043b\u043e\u0432 \u0432 \u0444\u0430\u0439\u043b\u0435 \u0435\u0441\u0442\u044c, \u043d\u043e \u043f\u0440\u043e\u0431\u0435\u043b\u044b \u0438 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u044b \u043c\u0435\u0436\u0434\u0443 \u0442\u043e\u043a\u0435\u043d\u0430\u043c\u0438 \u043f\u043e \u043d\u0438\u043c \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e \u043d\u0435 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e\u0442\u0441\u044f. \u0420\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0449\u0438\u043a \u043f\u0438\u0448\u0435\u0442 \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0443 REWRAP.<\/p>\n<\/li>\n<li>\n<p><strong>\u0420\u0435\u0433\u0438\u0441\u0442\u0440<\/strong> \u0438\u043c\u0451\u043d \u0431\u0435\u0437 \u043a\u0430\u0432\u044b\u0447\u0435\u043a \u0438 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u043b\u043e\u0432: \u0432 \u043b\u0435\u043a\u0441\u0438\u043a\u043e\u043d\u0435 \u0432\u0441\u0451 \u0432 \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435.<\/p>\n<\/li>\n<li>\n<p><code><strong>IS<\/strong><\/code><strong> \u0438\u043b\u0438 <\/strong><code><strong>AS<\/strong><\/code><strong> \u0432 PL\/SQL 9.x.<\/strong> WRAP 9.x \u0441\u0442\u0440\u043e\u0438\u0442 \u0434\u043b\u044f \u043d\u0438\u0445 \u043e\u0434\u043d\u043e \u0434\u0435\u0440\u0435\u0432\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0438\u0448\u0435\u0442\u0441\u044f <code>IS<\/code>, \u043a\u0430\u043a \u0443 REWRAP.<\/p>\n<\/li>\n<\/ul>\n<h4>\u041d\u0435\u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043d\u0438\u043c\u0430\u044e\u0442\u0441\u044f \u043f\u043e \u0441\u043b\u0435\u0434\u0430\u043c<\/h4>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041c\u0430\u0441\u0448\u0442\u0430\u0431<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041a\u0430\u043a \u0441\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>IS<\/code> \u0438\u043b\u0438 <code>AS<\/code> \u0432 PL\/SQL 2.x\u20138.1<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0432 wrapped-\u0444\u0430\u0439\u043b\u0430\u0445 Oracle 2374 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 871 \u044e\u043d\u0438\u0442\u0430 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043a\u0430\u043a <code>AS<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0441\u043b\u0435\u0434 \u0437\u0430\u0431\u0435\u0433\u0430\u044e\u0449\u0435\u0433\u043e \u0442\u043e\u043a\u0435\u043d\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041f\u043e\u0440\u044f\u0434\u043e\u043a \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b<\/p>\n<\/td>\n<td>\n<p align=\"left\">3351 \u0442\u0435\u043b\u043e \u0432 \u0444\u0430\u0439\u043b\u0430\u0445 Oracle 8.0\u20139.2, 27 \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u0432; \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u043c \u0443 1678<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043d\u043e\u043c\u0435\u0440\u0430 \u0443\u0437\u043b\u043e\u0432 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u043b\u043e\u0432<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430 <code>WORK<\/code>, <code>SAVEPOINT<\/code>, <code>BOTH<\/code>, \u043f\u043e\u0440\u044f\u0434\u043e\u043a <code>START WITH<\/code> \u0438 <code>CONNECT BY<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0441\u043c\u044b\u0441\u043b \u043d\u0435 \u043c\u0435\u043d\u044f\u044e\u0442, \u043d\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0442 \u043b\u0435\u043a\u0441\u0435\u043c\u0443 \u0438 \u0443\u0437\u0435\u043b<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0442\u0435 \u0436\u0435 \u0443\u0437\u043b\u044b \u0438 \u043d\u043e\u043c\u0435\u0440\u0430 \u0443\u0437\u043b\u043e\u0432<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>VARYING ARRAY<\/code> \u0438\u043b\u0438 <code>VARRAY<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043e\u0434\u0438\u043d \u0443\u0437\u0435\u043b <code>D_ARRAY<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0441\u0438\u0440\u043e\u0442\u0430 <code>ARRAY<\/code> \u043f\u0435\u0440\u0435\u0434 \u043b\u0438\u0442\u0435\u0440\u0430\u043b\u043e\u043c <code>1<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0444\u043e\u0440\u043c\u044b: <code>TRIM<\/code>, <code>CHR \u2026 USING<\/code>, <code>CASE<\/code> \u0431\u0435\u0437 <code>ELSE<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043f\u0430\u0440\u0441\u0435\u0440 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043b \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0441\u043b\u0443\u0436\u0435\u0431\u043d\u044b\u0435 \u0438\u043c\u0435\u043d\u0430 <code> SYS$STANDARD_\u2026<\/code> \u0438 \u0444\u043b\u0430\u0433 64<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h4>\u041b\u043e\u0432\u0443\u0448\u043a\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0430<\/h4>\n<ul>\n<li>\n<p><strong>\u041d\u0435\u044f\u0432\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432.<\/strong> \u0411\u0435\u0437 \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0438 \u0432\u0435\u0440\u0441\u0438\u0438 \u0447\u0442\u0435\u043d\u0438\u0435 \u0443\u0445\u043e\u0434\u0438\u0442 \u0432 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0441\u043e\u0441\u0435\u0434\u043d\u0435\u0433\u043e \u0443\u0437\u043b\u0430. \u0414\u043b\u0438\u043d\u0443 \u0431\u043b\u043e\u043a\u0430 \u043d\u0435\u043b\u044c\u0437\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0443\u0437\u0435\u043b: \u0431\u043b\u043e\u043a\u0438 \u043d\u0435 \u0438\u0434\u0443\u0442 \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443, \u0430 \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438 \u0431\u044b\u0432\u0430\u044e\u0442 \u043d\u0438\u0447\u044c\u0438 \u0441\u043b\u043e\u0442\u044b.<\/p>\n<\/li>\n<li>\n<p><strong>\u0412\u0435\u0440\u0441\u0438\u044f &#8212; \u043d\u0435 \u0440\u0435\u043b\u0438\u0437.<\/strong> WRAP \u043f\u0438\u0448\u0435\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0443\u044e \u0435\u043c\u0443 \u0432\u0435\u0440\u0441\u0438\u044e DIANA, \u0430 WRAP \u0434\u043b\u044f Windows PL\/SQL 2.2 \u0438 2.3.2 &#8212; \u0441\u043b\u043e\u0432\u043e <code>\u202625ff<\/code>. \u0421\u0435\u043c\u0438\u0437\u043d\u0430\u0447\u043d\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u0432\u0440\u043e\u0434\u0435 <code>92025ff<\/code> \u043b\u0435\u0433\u043a\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u044c \u0437\u0430 \u0432\u0435\u0440\u0441\u0438\u044e 9.2, \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0435\u0433\u043e \u043d\u0435 \u043f\u0435\u0440\u0432\u044b\u043c.<\/p>\n<\/li>\n<li>\n<p><strong>16-\u0431\u0438\u0442\u043d\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u0434\u043e 8.1.6.<\/strong> \u0421\u0442\u0430\u0440\u0448\u0438\u0435 \u0440\u0430\u0437\u0440\u044f\u0434\u044b \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0431\u043b\u043e\u043a \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u043b\u0435\u0436\u0430\u0442 \u0432 \u043a\u043e\u0434\u0435 \u0442\u0438\u043f\u0430 \u0443\u0437\u043b\u0430; \u0431\u0435\u0437 \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u044e\u043d\u0438\u0442 \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u0432\u0435\u0440\u043d\u043e.<\/p>\n<\/li>\n<li>\n<p><strong>\u0414\u0432\u0430 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u043b\u0435\u043a\u0441\u0438\u043a\u043e\u043d\u0430 \u0438 \u0441\u044b\u0440\u043e\u0439 CR.<\/strong> \u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u043a\u0430\u0440\u0435\u0442\u043a\u0438 \u0438\u0437 \u043b\u0438\u0442\u0435\u0440\u0430\u043b\u0430 \u0437\u0430\u043f\u0438\u0441\u0430\u043d \u0431\u0435\u0437 \u044d\u043a\u0440\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u0442\u0440\u043e\u043a\u0443 \u043b\u0435\u043a\u0441\u0438\u043a\u043e\u043d\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e LF \u0438\u043b\u0438 CRLF.<\/p>\n<\/li>\n<li>\n<p><strong>\u0425\u0438\u043d\u0442\u044b.<\/strong> \u0414\u043e PL\/SQL 9.0 WRAP \u0442\u0435\u0440\u044f\u0435\u0442 \u0441\u0438\u043c\u0432\u043e\u043b \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 <code>\/*+<\/code>.<\/p>\n<\/li>\n<li>\n<p><strong>\u041f\u0435\u0440\u0435\u0432\u043e\u0434\u044b \u0441\u0442\u0440\u043e\u043a.<\/strong> WRAP \u0434\u043b\u044f Windows \u043f\u0438\u0448\u0435\u0442 CRLF \u0438 \u0445\u0440\u0430\u043d\u0438\u0442 \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u043b\u0438\u0442\u0435\u0440\u0430\u043b\u0435 \u043a\u0430\u043a LF. WRAP \u0434\u043b\u044f Linux \u043f\u0438\u0448\u0435\u0442 LF \u0438 \u043e\u0442\u0432\u0435\u0440\u0433\u0430\u0435\u0442 CR \u0432\u043d\u0435 \u043b\u0438\u0442\u0435\u0440\u0430\u043b\u043e\u0432 \u043e\u0448\u0438\u0431\u043a\u043e\u0439 <code>PSU(103,\u2026)<\/code>, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0442\u0435\u043a\u0441\u0442 \u0441 CRLF \u0435\u043c\u0443 \u043d\u0435 \u0441\u043a\u043e\u0440\u043c\u0438\u0442\u044c.<\/p>\n<\/li>\n<li>\n<p><strong>\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0442\u0435\u043b\u0430 \u0442\u0438\u043f\u0430.<\/strong> WRAP \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442 \u0435\u0433\u043e \u0434\u043e <code>IS<\/code> \u0438\u043b\u0438 <code>AS<\/code> \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043f\u0440\u043e\u0431\u0435\u043b\u0430\u043c\u0438. \u0415\u0441\u043b\u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0449\u0438\u043a \u0434\u043e\u0431\u0430\u0432\u0438\u0442 \u0441\u0432\u043e\u0439 \u043f\u0440\u043e\u0431\u0435\u043b, \u043a\u0430\u0436\u0434\u044b\u0439 \u043a\u0440\u0443\u0433\u043e\u0432\u043e\u0439 \u043f\u0440\u043e\u0433\u043e\u043d \u0434\u043e\u0431\u0430\u0432\u0438\u0442 \u0435\u0449\u0451 \u043e\u0434\u0438\u043d.<\/p>\n<\/li>\n<li>\n<p><code><strong>CREATE TYPE \u2026 AUTHID<\/strong><\/code><strong>.<\/strong> WRAP 8.1.5\u20139.2.0.4 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0442\u0430\u043a\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u043d\u0435\u0437\u0430\u0432\u0451\u0440\u043d\u0443\u0442\u044b\u043c, \u0438 \u043c\u0435\u0441\u0442\u043e <code>AUTHID<\/code> \u0432 \u0435\u0433\u043e \u0434\u0435\u0440\u0435\u0432\u0435 \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e.<\/p>\n<\/li>\n<\/ul>\n<h4>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0441\u0430\u043c\u043e\u0433\u043e WRAP<\/h4>\n<ul>\n<li>\n<p>\u041d\u0435\u0442 \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438: \u043e\u0448\u0438\u0431\u043a\u0438 \u0438\u043c\u0451\u043d \u0438 \u0442\u0438\u043f\u043e\u0432 \u0432\u0438\u0434\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 <code>.plb<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u0432\u0435\u0440\u0445: \u0444\u0430\u0439\u043b WRAP 8.1.6 \u043d\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0441\u044f \u0432 8.1.5.<\/p>\n<\/li>\n<li>\n<p>\u0424\u0430\u0439\u043b \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430: \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0441\u0435\u043c\u044c \u0441\u0442\u0440\u043e\u043a \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u043b\u0438\u0441\u044c \u0432 146.<\/p>\n<\/li>\n<li>\n<p>\u0427\u0430\u0441\u0442\u044c \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430 SQL \u0432 9.2 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u043d\u0430; <code>edebug=wrap_new_sql<\/code> \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0435\u0433\u043e \u0446\u0435\u043d\u043e\u0439 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0433\u043e SQL.<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u043f\u0430\u043a\u0435\u0442\u044b \u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u044b\u0435 \u0442\u0438\u043f\u044b (\u0432 \u0441\u044d\u043c\u043f\u043b\u0430\u0445 \u0435\u0441\u0442\u044c \u0435\u0449\u0451 <code>LIBRARY<\/code>); \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0438\u0434\u0443\u0442 \u0432 <code>.plb<\/code> \u043a\u0430\u043a \u0435\u0441\u0442\u044c.<\/p>\n<\/li>\n<li>\n<p>\u0415\u0441\u0442\u044c \u0438 \u043f\u0440\u0435\u0434\u0435\u043b \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430: 2^26 \u0443\u0437\u043b\u043e\u0432 DIANA \u043d\u0430 \u043c\u043e\u0434\u0443\u043b\u044c, \u043f\u0440\u0438 \u043f\u0440\u0435\u0432\u044b\u0448\u0435\u043d\u0438\u0438 &#8212; \u043e\u0448\u0438\u0431\u043a\u0430 \u0432\u0440\u043e\u0434\u0435 PLS-00123.<\/p>\n<\/li>\n<\/ul>\n<h3>\u0427\u0442\u043e \u043c\u0435\u0448\u0430\u0435\u0442 \u043f\u0440\u0438 \u0440\u0430\u0437\u0431\u043e\u0440\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 wrapped-\u0444\u0430\u0439\u043b\u043e\u0432<\/h3>\n<p>Wrapped-\u0444\u0430\u0439\u043b\u044b \u0438\u0437 \u0436\u0438\u0432\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u0440\u0435\u0434\u043a\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u0442\u0430\u043a, \u043a\u0430\u043a \u0438\u0445 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f: \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043b\u0438 \u043c\u0435\u0436\u0434\u0443 Windows \u0438 Unix, \u0430 \u0444\u0430\u0439\u043b\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u043b\u0438 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0440\u0435\u043b\u0438\u0437\u0430\u043c\u0438 WRAP. \u041d\u0438\u0436\u0435 &#8212; \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0442\u044b\u043a\u0430\u0435\u0448\u044c\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0430 \u0442\u0430\u043a\u0438\u0445 \u0444\u0430\u0439\u043b\u0430\u0445.<\/p>\n<h4>CR \u043d\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u0435 \u0431\u043b\u043e\u043a\u0430 \u0432 512 \u0431\u0430\u0439\u0442<\/h4>\n<p>\u041f\u043e\u043f\u0430\u0434\u0430\u044e\u0442\u0441\u044f wrapped-\u043f\u0430\u043a\u0435\u0442\u044b, \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u044b\u043b \u0432 Windows-\u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u0441 CRLF, \u0430 \u0437\u0430\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u043b\u0441\u044f \u0432 Unix \u0438\u043b\u0438 Linux, \u0433\u0434\u0435 \u0441\u0442\u0440\u043e\u043a\u0430 \u043a\u043e\u043d\u0447\u0430\u0435\u0442\u0441\u044f LF. CR \u043f\u0435\u0440\u0435\u0434 LF \u0443\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u0432\u0435\u0437\u0434\u0435: \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0431\u043b\u043e\u043a\u0430\u043c\u0438 \u043f\u043e 512 \u0431\u0430\u0439\u0442 \u043e\u0442 \u043d\u0430\u0447\u0430\u043b\u0430 \u0444\u0430\u0439\u043b\u0430, \u0438 \u043f\u0430\u0440\u0430 CR LF \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0451\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u0431\u043b\u043e\u043a\u0430.<\/p>\n<ul>\n<li>\n<p><strong>\u0413\u0434\u0435 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f CR.<\/strong> \u0415\u0441\u043b\u0438 CR \u0441\u0442\u043e\u0438\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c \u0431\u0430\u0439\u0442\u043e\u043c \u0431\u043b\u043e\u043a\u0430 &#8212; \u043d\u0430 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0438 511, 1023 \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435, &#8212; \u0430 LF \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0431\u043b\u043e\u043a, CR \u043f\u0435\u0440\u0435\u0436\u0438\u0432\u0430\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443. \u0412 \u044e\u043d\u0438\u0442\u0435 \u0441 LF \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0435\u0434\u0438\u043d\u0438\u0447\u043d\u044b\u0435 CRLF, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0445 \u043b\u0438\u0442\u0435\u0440\u0430\u043b\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p><strong>\u041e\u0442 \u0447\u0435\u0433\u043e \u0437\u0430\u0432\u0438\u0441\u0438\u0442.<\/strong> \u041d\u0430\u0431\u043e\u0440 \u0443\u0446\u0435\u043b\u0435\u0432\u0448\u0438\u0445 CR \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0435\u043c, \u043a\u0430\u043a\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0438\u0441\u044c \u043d\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u0435 \u0431\u043b\u043e\u043a\u0430. \u0412 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u043c \u0441\u043a\u0440\u0438\u043f\u0442\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0441\u0442\u043e\u044f\u0442 \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f\u0445, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0439 WRAP \u0443\u0431\u0438\u0440\u0430\u0435\u0442 \u0434\u0440\u0443\u0433\u0438\u0435 CR \u0438 \u0434\u0430\u0451\u0442 \u0434\u0440\u0443\u0433\u0438\u0435 \u0431\u0430\u0439\u0442\u044b.<\/p>\n<\/li>\n<li>\n<p><strong>\u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u0438 \u0440\u0430\u0437\u0431\u043e\u0440\u0435.<\/strong> \u041f\u0430\u0440\u0441\u0435\u0440 \u043d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043e\u0434\u0438\u043d\u043e\u0447\u043d\u044b\u0439 CR \u043a\u043e\u043d\u0446\u043e\u043c \u0441\u0442\u0440\u043e\u043a\u0438 \u0438 \u043d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u00ab\u0447\u0438\u0441\u0442\u0438\u0442\u044c\u00bb \u0442\u0430\u043a\u0438\u0435 CR \u0432 \u043b\u0438\u0442\u0435\u0440\u0430\u043b\u0430\u0445: \u044d\u0442\u043e \u0447\u0430\u0441\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0438\u0434\u0435\u043b\u0430 \u0431\u0430\u0437\u0430. \u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0441\u043c\u0435\u0448\u0438\u0432\u0430\u0435\u0442 LF \u0438 CRLF, \u0438 \u044d\u0442\u043e \u0442\u043e\u0447\u043d\u043e\u0435 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430, \u0430 \u043d\u0435 \u043e\u0448\u0438\u0431\u043a\u0430.<\/p>\n<\/li>\n<\/ul>\n<p>\u0412 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 V2 \u044d\u0442\u043e \u0437\u0430\u043c\u0435\u0442\u043d\u0435\u0435 \u0432\u0441\u0435\u0433\u043e: \u0442\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 WRAP 10.2.0.1, 10.2.0.5, 11.1.0.6 \u0438 11.2.0.1, \u0430 \u0442\u0435\u043a\u0441\u0442 \u0442\u0430\u043c \u0441\u0436\u0430\u0442, \u0438 \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430 \u0444\u0430\u0439\u043b\u0430 \u0434\u043e \u043d\u0435\u0433\u043e \u043d\u0435 \u0434\u043e\u0442\u044f\u0433\u0438\u0432\u0430\u0435\u0442\u0441\u044f. \u0414\u0430\u0436\u0435 \u0432 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0435 Oracle 12.2.0.1 \u0435\u0441\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u044e\u043d\u0438\u0442\u044b: <code>ords_migrate<\/code> \u0438 <code>upg_oauth<\/code> \u0441 3 \u0438 1 \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u043c\u0441\u044f CRLF.<\/p>\n<h4>8.1.6 \u0438 8.1.7: \u043e\u0434\u0438\u043d \u0444\u043e\u0440\u043c\u0430\u0442, \u0440\u0430\u0437\u043d\u044b\u0439 \u0432\u044b\u0432\u043e\u0434<\/h4>\n<p>WRAP 8.1.6 \u0438 8.1.7 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044e\u0442 \u043a\u043e\u0434 \u043e\u0434\u043d\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430: \u0441\u0442\u0440\u043e\u043a\u0430 \u0432\u0435\u0440\u0441\u0438\u0438 <code>8106000<\/code> \u0438 \u043e\u0434\u043d\u0430 \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432. \u041d\u043e \u0432\u044b\u0432\u043e\u0434 \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0438 \u0442\u043e\u0433\u043e \u0436\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430 \u0443 \u043d\u0438\u0445 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f.<\/p>\n<ul>\n<li>\n<p>\u041f\u043e \u0441\u0442\u0440\u043e\u043a\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u0440\u0435\u043b\u0438\u0437 \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c: \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0449\u0438\u043a \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d <code>8.1.6-8.1.7<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f \u043f\u043e\u0431\u0430\u0439\u0442\u043e\u0432\u043e\u0433\u043e \u043a\u0440\u0443\u0433\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u043e\u043d\u0430 \u043d\u0443\u0436\u0435\u043d WRAP \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u043e\u0433\u043e \u0440\u0435\u043b\u0438\u0437\u0430, \u0447\u0442\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u043b \u0444\u0430\u0439\u043b: \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 DIANA \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b 8.1.6 \u0438 8.1.7 \u043f\u043e \u0431\u0430\u0439\u0442\u0430\u043c \u0431\u0435\u0441\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u043e &#8212; \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442.<\/p>\n<\/li>\n<\/ul>\n<h4>2.2 \u0438 2.3.2: \u0430\u0434\u0440\u0435\u0441 \u0432\u043c\u0435\u0441\u0442\u043e \u0432\u0435\u0440\u0441\u0438\u0438<\/h4>\n<p>WRAP \u0434\u043b\u044f Windows PL\/SQL 2.2 \u0438 2.3.2 \u043f\u0438\u0448\u0435\u0442 \u043d\u0430 \u043c\u0435\u0441\u0442\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u043d\u0435 <code>200f000<\/code>, \u0430 \u0430\u0434\u0440\u0435\u0441 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0441 \u0432\u0435\u0440\u0441\u0438\u0435\u0439. \u0422\u043e\u0447\u043d\u0435\u0435, \u043f\u0435\u0440\u0432\u044b\u0435 \u0447\u0435\u0442\u044b\u0440\u0435 \u0431\u0430\u0439\u0442\u0430 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u0438\u043a\u0430 \u0438\u043c\u043f\u043e\u0440\u0442\u0430 <code>jmp [slot]<\/code>: <code>FF 25<\/code> \u0438 \u043c\u043b\u0430\u0434\u0448\u0438\u0435 \u0431\u0430\u0439\u0442\u044b \u0430\u0434\u0440\u0435\u0441\u0430, \u043e\u0442\u0441\u044e\u0434\u0430 \u0441\u043b\u043e\u0432\u0430 \u0432\u0440\u043e\u0434\u0435 <code>952825ff<\/code>, <code>a54025ff<\/code>, <code>95a025ff<\/code>. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u044d\u0442\u043e <code>200f000<\/code>: \u0434\u0435\u0440\u0435\u0432\u043e \u0438 \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0442\u0435 \u0436\u0435, \u0447\u0442\u043e \u0443 2.3.4.<\/p>\n<ul>\n<li>\n<p>\u0421\u043b\u043e\u0432\u043e \u043d\u0430 <code>25ff<\/code> \u043d\u0430\u0434\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0434\u043e \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u0432\u0435\u0440\u0441\u0438\u0438, \u0438\u043d\u0430\u0447\u0435 \u0441\u0435\u043c\u0438\u0437\u043d\u0430\u0447\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0432\u0440\u043e\u0434\u0435 <code>92025ff<\/code> \u043b\u0435\u0433\u043a\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u044c \u0437\u0430 9.2 \u0438 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0434\u0435\u0440\u0435\u0432\u043e \u0447\u0443\u0436\u043e\u0439 \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u043e\u0439.<\/p>\n<\/li>\n<li>\n<p>\u0410\u0434\u0440\u0435\u0441 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0441\u0431\u043e\u0440\u043a\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043b\u043e\u0432\u043e \u0437\u0430\u043e\u0434\u043d\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0440\u0435\u043b\u0438\u0437: <code>952825ff<\/code> \u0438 <code>a54025ff<\/code> &#8212; 2.2.2.3.1, <code>95a025ff<\/code> &#8212; 2.3.2.3.0, \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 &#8212; \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u043e 2.3.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0435\u0437\u043d\u0430\u043a\u043e\u043c\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u043d\u0430 <code>25ff<\/code> \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a PL\/SQL 2.x, \u0430 2.2 \u0438\u043b\u0438 2.3 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e \u0434\u0435\u0440\u0435\u0432\u0443.<\/p>\n<\/li>\n<\/ul>\n<h4>\u041d\u0435\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u043e\u0434\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 DIANA<\/h4>\n<p>\u041f\u0440\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u043e\u0442 \u0432\u0435\u0440\u0441\u0438\u0438 \u043a \u0432\u0435\u0440\u0441\u0438\u0438 PL\/SQL \u0438\u043d\u043e\u0433\u0434\u0430 \u043f\u043e\u044f\u0432\u043b\u044f\u043b\u0438\u0441\u044c \u00ab\u043d\u0435\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0435\u00bb \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u0434\u0430\u0436\u0435 \u043a\u043e\u0433\u0434\u0430 \u0441\u0442\u0440\u043e\u043a\u0430 \u0432\u0435\u0440\u0441\u0438\u0438 \u0432 \u0444\u0430\u0439\u043b\u0435 \u043e\u0441\u0442\u0430\u0432\u0430\u043b\u0430\u0441\u044c \u043f\u0440\u0435\u0436\u043d\u0435\u0439. \u0421\u0430\u043c\u044b\u0439 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 &#8212; \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043e\u0442 PL\/SQL 2.2 \u043a 2.3: \u043e\u0431\u0430 \u0432\u0440\u0430\u043f\u043f\u0435\u0440\u0430 \u043e\u0442\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u043a \u0432\u0435\u0440\u0441\u0438\u0438 <code>200f000<\/code>, \u043d\u043e \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u043e \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435.<\/p>\n<ul>\n<li>\n<p><strong>\u0427\u0442\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u043e\u0441\u044c.<\/strong> \u0410\u0442\u0440\u0438\u0431\u0443\u0442 \u043d\u0430 \u0442\u043e\u0439 \u0436\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0432 2.2 \u0438 2.3.2 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <code>S_NORMAL<\/code>, \u0430 \u0432 2.3.3 \u0438 2.3.4 &#8212; <code>S_NORMARGLIST<\/code>. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, 2.3 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0432 \u0442\u0435\u043b\u0430\u0445 \u0443\u0437\u043b\u044b <code>D_NULL_S<\/code> \u0431\u0435\u0437 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f, \u0430 2.2 &#8212; \u043d\u0435\u0442, \u0442\u043e \u0435\u0441\u0442\u044c \u0434\u0435\u0440\u0435\u0432\u044c\u044f \u043e\u0434\u043d\u043e\u0439 \u0438 \u0442\u043e\u0439 \u0436\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 DIANA \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f.<\/p>\n<\/li>\n<li>\n<p><strong>\u041a\u0430\u043a \u044d\u0442\u043e \u0432\u0438\u0434\u043d\u043e \u0432 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430\u0445.<\/strong> \u0418\u0437-\u0437\u0430 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f Oracle \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u043b \u0432 \u0440\u0430\u043d\u043d\u0438\u0445 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430\u0445 \u0434\u0432\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0440\u0430\u043f\u043f\u0435\u0440\u0430 &#8212; \u0434\u043b\u044f Oracle 7.2 \u0438 \u0434\u043b\u044f Oracle 7.3.<\/p>\n<\/li>\n<li>\n<p><strong>\u0421\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u0441\u043f\u0440\u044f\u0442\u0430\u043d\u0430 \u0432 \u0431\u0430\u0437\u0435.<\/strong> \u0411\u0430\u0437\u0430 7.3 \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u043a\u0443 \u043e\u0442 7.2: \u0433\u0434\u0435-\u0442\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0442\u043e\u0440\u0430 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0430. \u041d\u043e \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0432\u0440\u0430\u043f\u043f\u0435\u0440\u0430 \u0438 \u0444\u0430\u0439\u043b\u0430 \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u0432\u0438\u0434\u043d\u043e: \u0441\u0442\u0440\u043e\u043a\u0430 \u0432\u0435\u0440\u0441\u0438\u0438 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u0430, \u0438 \u043a\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0437\u0430\u0432\u0435\u0440\u043d\u0443\u043b \u044e\u043d\u0438\u0442, \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u043f\u043e \u0434\u0435\u0440\u0435\u0432\u0443.<\/p>\n<\/li>\n<li>\n<p><strong>\u0427\u0442\u043e \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u0434\u043b\u044f \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0449\u0438\u043a\u0430.<\/strong> \u0420\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0443 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u043d\u0435\u043b\u044c\u0437\u044f \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438, \u0430 \u0434\u043b\u044f \u043a\u0440\u0443\u0433\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u043e\u043d\u0430 \u043d\u0443\u0436\u0435\u043d \u0432\u0440\u0430\u043f\u043f\u0435\u0440 \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u043e\u0433\u043e \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u0430 &#8212; 2.2 \u0438\u043b\u0438 2.3, &#8212; \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0444\u0430\u0439\u043b \u0431\u044b\u043b \u0441\u043e\u0431\u0440\u0430\u043d.<\/p>\n<\/li>\n<\/ul>\n<h3>\u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e wrap V1 \u0437\u0430\u0449\u0438\u0449\u0430\u0435\u0442 \u043a\u043e\u0434<\/h3>\n<p>\u0421\u043b\u0430\u0431\u043e: V1 &#8212; \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043b\u0435\u043a\u0441\u0438\u043a\u043e\u043d\u043e\u043c, \u0430 \u043d\u0435 \u0448\u0438\u0444\u0440. <a href=\"https:\/\/docs.oracle.com\/cd\/A97630_01\/appdev.920\/a96624\/c_wrap.htm\" rel=\"noopener nofollow\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f Oracle 9.2<\/a> \u0441\u0430\u043c\u0430 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0430\u0435\u0442: \u043b\u0438\u0442\u0435\u0440\u0430\u043b\u044b \u0438 \u0438\u043c\u0435\u043d\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u0442\u0430\u0431\u043b\u0438\u0446 \u0438 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u043c, \u0430 \u043f\u0430\u0440\u043e\u043b\u0438 \u0438 \u0438\u043c\u0435\u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446 \u0442\u0430\u043a \u043d\u0435 \u0441\u043f\u0440\u044f\u0447\u0435\u0448\u044c.<\/p>\n<ul>\n<li>\n<p><strong>\u041b\u0435\u043a\u0441\u0438\u043a\u043e\u043d \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0431\u0435\u0437 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432.<\/strong> \u041f\u043e <a href=\"https:\/\/www.blackhat.com\/presentations\/bh-usa-06\/BH-US-06-Finnigan.pdf\" rel=\"noopener nofollow\">\u0424\u0438\u043d\u043d\u0438\u0433\u0430\u043d\u0443<\/a>, \u0432\u0438\u0434\u0438\u043c\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0432\u044b\u0434\u0430\u0451\u0442 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0438 \u043e\u0431\u043b\u0435\u0433\u0447\u0430\u0435\u0442 \u043f\u043e\u0438\u0441\u043a SQL-\u0438\u043d\u044a\u0435\u043a\u0446\u0438\u0439. \u041e\u043d \u0436\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u043f\u0440\u0430\u0432\u043a\u0443 wrapped-\u043a\u043e\u0434\u0430 \u0431\u0435\u0437 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0438.<\/p>\n<\/li>\n<li>\n<p><strong>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430.<\/strong> \u0418\u043c\u0435\u043d\u0430 \u0443\u0437\u043b\u043e\u0432 \u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u043b\u0435\u0436\u0430\u0442 \u0432 <code>pidian.sql<\/code> \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430, \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0438 &#8212; \u0432 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440\u0435 \u0441\u0430\u043c\u043e\u0433\u043e WRAP. \u041f\u043e\u0437\u0438\u0446\u0438\u0438 \u0443\u0437\u043b\u043e\u0432 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u044e\u0442 \u0434\u0435\u0440\u0435\u0432\u043e \u0441\u043e \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>\u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0442\u043e\u0447\u043d\u043e\u0435.<\/strong> \u041f\u0440\u043e\u0435\u043a\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0442\u0435\u043a\u0441\u0442, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e WRAP \u0442\u043e\u0439 \u0436\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u0441\u0442\u0440\u043e\u0438\u0442 \u0442\u043e \u0436\u0435 \u0434\u0435\u0440\u0435\u0432\u043e, \u0430 \u0441 \u044d\u0442\u0430\u043b\u043e\u043d\u0430\u043c\u0438 \u0441\u044d\u043c\u043f\u043b\u043e\u0432 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0431\u0430\u0439\u0442 \u0432 \u0431\u0430\u0439\u0442.<\/p>\n<\/li>\n<li>\n<p><strong>\u0412 10g \u0441\u0445\u0435\u043c\u0443 \u0441\u043c\u0435\u043d\u0438\u043b\u0438.<\/strong> \u0424\u043e\u0440\u043c\u0430\u0442 V2 \u0445\u0440\u0430\u043d\u0438\u0442 \u0441\u0436\u0430\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u0431\u0435\u0437 DIANA; \u0435\u0433\u043e \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 <a href=\"https:\/\/github.com\/sftwnd\/oracle-plsql-unwrap\" rel=\"noopener nofollow\">oracle-plsql-unwrap<\/a>.<\/p>\n<\/li>\n<\/ul>\n<p>\u0418\u0442\u043e\u0433: wrap V1 \u0437\u0430\u0449\u0438\u0449\u0430\u0435\u0442 \u043e\u0442 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0433\u043e \u0432\u0437\u0433\u043b\u044f\u0434\u0430, \u043d\u043e \u043d\u0435 \u043e\u0442 \u0446\u0435\u043b\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0447\u0442\u0435\u043d\u0438\u044f.<\/p>\n<h3>\u0427\u0442\u043e \u0443\u0434\u0430\u0451\u0442\u0441\u044f \u0441\u0435\u0439\u0447\u0430\u0441<\/h3>\n<p>\u041d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043c\u043d\u0435 \u0443\u0434\u0430\u0451\u0442\u0441\u044f \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u043a\u043e\u0434 Oracle \u043e\u0442 \u0432\u0435\u0440\u0441\u0438\u0438 7.2 \u0434\u043e 26ai \u0441 \u043f\u043e\u043b\u043d\u044b\u043c \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435\u043c \u043f\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044e \u043f\u043e\u0441\u043b\u0435 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e wrapping-\u0430. \u0420\u0430\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0434\u0432\u0443\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445:<\/p>\n<ul>\n<li>\n<p>\u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 <code>REM<\/code>, \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u0431\u044b\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u0432 \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442;<\/p>\n<\/li>\n<li>\n<p>\u0432 \u043b\u0438\u0448\u043d\u0438\u0445 CR, \u0435\u0441\u043b\u0438 \u0444\u0430\u0439\u043b \u0437\u0430\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u043b\u0441\u044f \u043f\u0440\u0438 \u0441\u043c\u0435\u0448\u0435\u043d\u0438\u0438 CRLF \u0438 LF \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0435 \u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435.<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0430 \u043b\u043e\u0433\u0438\u043a\u0443 \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u044d\u0442\u0438 \u0440\u0430\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043d\u0435 \u0432\u043b\u0438\u044f\u044e\u0442. \u0422\u0430\u043a \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043a\u043e\u0434 \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u0435\u0433\u043e \u043f\u0440\u0438 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438, \u043f\u0438\u0448\u0438\u0442\u0435 \u043d\u0430 <a href=\"mailto:ashindarev@gmail.com\" rel=\"noopener nofollow\">ashindarev@gmail.com<\/a> \u0438\u043b\u0438 \u0432 LinkedIn: <a href=\"https:\/\/www.linkedin.com\/in\/ashindarev\/\" rel=\"noopener nofollow\">ashindarev<\/a>.<\/p>\n<h3>\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438<\/h3>\n<ul>\n<li>\n<p><a href=\"https:\/\/docs.oracle.com\/cd\/A97630_01\/appdev.920\/a96624\/c_wrap.htm\" rel=\"noopener nofollow\">PL\/SQL User&#8217;s Guide and Reference 9.2 &#8212; PL\/SQL Wrap Utility<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/resources.mpi-inf.mpg.de\/departments\/d5\/teaching\/ss05\/is05\/oracle\/appdev.920\/a96624\/e_limits.htm\" rel=\"noopener nofollow\">PL\/SQL User&#8217;s Guide and Reference 9.2 &#8212; PL\/SQL Program Limits<\/a> (\u0437\u0435\u0440\u043a\u0430\u043b\u043e)<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/apps.dtic.mil\/sti\/pdfs\/ADA128232.pdf\" rel=\"noopener nofollow\">DIANA Reference Manual, Revision 3 (Tartan Laboratories, 1983)<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/foldoc.org\/DIANA\" rel=\"noopener nofollow\">FOLDOC: Descriptive Intermediate Attributed Notation for Ada<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.blackhat.com\/presentations\/bh-usa-06\/BH-US-06-Finnigan.pdf\" rel=\"noopener nofollow\">Pete Finnigan. How to unwrap PL\/SQL (Black Hat USA 2006)<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/morganslibrary.org\/reference\/pkgs\/pidl.html\" rel=\"noopener nofollow\">Morgan&#8217;s Library: \u043f\u0430\u043a\u0435\u0442 PIDL<\/a><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<p>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/1104428\/\">https:\/\/habr.com\/ru\/articles\/1104428\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u041f\u0440\u0435\u0434\u044b\u0441\u0442\u043e\u0440\u0438\u044f\u0417\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0434\u0432\u0430 \u0433\u043e\u0434\u0430 \u043c\u043d\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0437\u0430\u0432\u0451\u0440\u043d\u0443\u0442\u044b\u0439 \u043a\u043e\u0434 Oracle \u0432\u0435\u0440\u0441\u0438\u0439 7.2-9.2:\u043e\u0434\u0438\u043d \u0440\u0430\u0437 &#8212; \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0438;\u043e\u0434\u0438\u043d \u0440\u0430\u0437 &#8212; \u0447\u0442\u043e\u0431\u044b \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043d\u0430\u0448 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043f\u043e\u0442\u0435\u0440\u044f\u043d\u043d\u044b\u0439 \u043f\u0430\u043a\u0435\u0442;\u043f\u0430\u0440\u0443 \u0440\u0430\u0437 &#8212; \u043f\u043e \u043f\u0440\u043e\u0441\u044c\u0431\u0435 \u043a\u043e\u043b\u043b\u0435\u0433 \u0438\u0437 \u0444\u0438\u043d\u0442\u0435\u0445\u0430: \u0434\u0440\u0435\u0432\u043d\u0438\u0439 \u043a\u043e\u0434 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u043b \u043d\u0430\u043b\u043e\u0433, \u0438 \u043d\u0430\u0434\u043e \u0431\u044b\u043b\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0447\u0435\u043c\u0443.\u0418\u043c\u0435\u0432\u0448\u0430\u044f\u0441\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u0430 1993 \u0433\u043e\u0434\u0430, \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u0430\u044f \u043d\u0430 PL\/SQL 2.2, \u043f\u043e\u043c\u043e\u0433\u043b\u0430 \u043d\u0435\u0441\u0438\u043b\u044c\u043d\u043e: \u043a\u043e\u0434 \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0434\u043e\u0432\u0435\u0441\u0442\u0438 \u0434\u043e \u0443\u0440\u043e\u0432\u043d\u044f, \u043f\u0440\u0438\u0433\u043e\u0434\u043d\u043e\u0433\u043e \u0434\u043b\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438. \u0422\u0430\u043a \u044f \u043f\u043e\u0433\u0440\u0443\u0437\u0438\u043b\u0441\u044f \u0432 \u0442\u0435\u043c\u0443 unwrapping-\u0430, \u0438 \u044d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f &#8212; \u0441\u0432\u043e\u0434\u043a\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0432\u044b\u044f\u0441\u043d\u0438\u0442\u044c \u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0435 V1 \u0432 \u0445\u043e\u0434\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f unwrapper-\u0430.\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u0412 Oracle 7.2\u20139.2 \u0443\u0442\u0438\u043b\u0438\u0442\u0430 WRAP \u043d\u0435 \u0448\u0438\u0444\u0440\u0443\u0435\u0442 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442. \u041e\u043d\u0430 \u043f\u0440\u043e\u0433\u043e\u043d\u044f\u0435\u0442 \u0435\u0433\u043e \u0447\u0435\u0440\u0435\u0437 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 PL\/SQL \u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0432 \u0444\u0430\u0439\u043b \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e DIANA &#8212; \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0431\u0430\u0437\u0430 \u0437\u0430\u0442\u0435\u043c \u0434\u043e\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442 \u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0444\u043e\u0440\u043c\u0430\u0442 V1 \u043e\u0431\u0440\u0430\u0442\u0438\u043c: \u0438\u043c\u0435\u043d\u0430 \u0438 \u043b\u0438\u0442\u0435\u0440\u0430\u043b\u044b \u043b\u0435\u0436\u0430\u0442 \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c \u043b\u0435\u043a\u0441\u0438\u043a\u043e\u043d\u0435, \u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b &#8212; \u0432 \u0448\u0435\u0441\u0442\u0438 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0445 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0445.\u0421\u0442\u0430\u0442\u044c\u044f \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 DIANA, \u0447\u0435\u0440\u0435\u0437 \u043a\u0430\u043a\u0438\u0435 \u0441\u043b\u043e\u0438 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u043a\u043e\u0434 \u043d\u0430 \u043f\u0443\u0442\u0438 \u0432 wrapped-\u0444\u0430\u0439\u043b, \u043a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d \u044d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b \u0438 \u0447\u0442\u043e \u0432 \u043d\u0451\u043c \u0442\u0435\u0440\u044f\u0435\u0442\u0441\u044f. \u0424\u043e\u0440\u043c\u0430\u0442 V1 \u043e\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0435\u0442 PL\/SQL 2.2\u20139.2, \u0442\u043e \u0435\u0441\u0442\u044c Oracle 7.2, 7.3, 8.0, 8i \u0438 9i. \u0424\u043e\u0440\u043c\u0430\u0442 V2 (Oracle 10g \u0438 \u043d\u043e\u0432\u0435\u0435) \u0441 \u043d\u0438\u043c \u043d\u0435 \u0441\u0432\u044f\u0437\u0430\u043d: \u0442\u0430\u043c \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0441\u0436\u0430\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u0431\u0435\u0437 \u0434\u0435\u0440\u0435\u0432\u0430.\u0426\u0438\u0444\u0440\u044b \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u044b \u0434\u0430\u043c\u043f\u043e\u043c \u0442\u0430\u0431\u043b\u0438\u0446 \u044d\u0442\u0430\u043b\u043e\u043d\u043d\u044b\u0445 \u044e\u043d\u0438\u0442\u043e\u0432: 332 \u044e\u043d\u0438\u0442\u0430 V1, 16 625 \u0443\u0437\u043b\u043e\u0432. \u0412\u043d\u0435\u0448\u043d\u0438\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438 &#8212; \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f Oracle 9.2, \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a DIANA \u0438 \u0434\u043e\u043a\u043b\u0430\u0434 \u041f\u0438\u0442\u0430 \u0424\u0438\u043d\u043d\u0438\u0433\u0430\u043d\u0430 \u043d\u0430 Black Hat 2006. \u0420\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0430 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 V2 (Oracle 10g \u0438 \u043d\u043e\u0432\u0435\u0435) \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 oracle-plsql-unwrap.DIANA: \u0434\u0435\u0440\u0435\u0432\u043e \u0441 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043c\u0438DIANA (Descriptive Intermediate Attributed Notation for Ada) &#8212; \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0439 \u044f\u0437\u044b\u043a \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u0432 Ada: \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043a\u0430\u043a \u0434\u0435\u0440\u0435\u0432\u043e \u0443\u0437\u043b\u043e\u0432 \u0441 \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043c\u0438. \u0415\u0451 \u0441\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0433\u0440\u0443\u043f\u043f\u044b \u0413\u0435\u0440\u0445\u0430\u0440\u0434\u0430 \u0413\u043e\u043e\u0441\u0430 (\u041a\u0430\u0440\u043b\u0441\u0440\u0443\u044d) \u0438 \u0423\u0438\u043b\u044c\u044f\u043c\u0430 \u0412\u0443\u043b\u044c\u0444\u0430 (\u041a\u0430\u0440\u043d\u0435\u0433\u0438\u2013\u041c\u0435\u043b\u043b\u043e\u043d) \u0432 1981 \u0433\u043e\u0434\u0443 (FOLDOC). \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u0435\u0440\u0435\u0432\u0430 \u0437\u0430\u0434\u0430\u043d\u0430 \u043d\u0430 \u043c\u0435\u0442\u0430\u043d\u043e\u0442\u0430\u0446\u0438\u0438 IDL (Interface Description Language), \u0430 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043a\u0440\u044b\u0442\u043e \u0437\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u043c\u0438 \u0442\u0438\u043f\u0430 (\u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a DIANA, \u0440\u0435\u0434. 3, 1983).PL\/SQL \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d \u043d\u0430 Ada \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0441\u0432\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 DIANA, \u0442\u043e\u0436\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 IDL. \u041f\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 Oracle 9.2, \u0431\u0430\u0437\u0430 \u0445\u0440\u0430\u043d\u0438\u0442 \u0438 DIANA, \u0438 m-code: \u043f\u043e DIANA \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0435 \u043c\u043e\u0434\u0443\u043b\u0438, m-code \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f. \u0421\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043f\u0430\u043a\u0435\u0442\u0430, \u0442\u0438\u043f\u0430, \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0438\u043b\u0438 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0439 \u0431\u043b\u043e\u043a \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u044b 2^26 \u0443\u0437\u043b\u0430\u043c\u0438 DIANA; \u043f\u0440\u0438 \u043f\u0440\u0435\u0432\u044b\u0448\u0435\u043d\u0438\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0432\u044b\u0434\u0430\u0451\u0442 \u043e\u0448\u0438\u0431\u043a\u0443 \u0432\u0440\u043e\u0434\u0435 PLS-00123.\u0423\u0437\u043b\u044b\u0422\u0430\u0431\u043b\u0438\u0446\u0430 \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043e\u043a, \u0438\u0437\u0432\u043b\u0435\u0447\u0451\u043d\u043d\u0430\u044f \u0438\u0437 IDL-\u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440\u0430 WRAP 9.2.0.4, \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 300 \u043a\u043e\u0434\u043e\u0432 \u0443\u0437\u043b\u043e\u0432; \u0432 9.x \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0435\u0441\u0442\u044c \u0443 230 \u0438\u0437 \u043d\u0438\u0445. \u041f\u0440\u0435\u0444\u0438\u043a\u0441 \u0438\u043c\u0435\u043d\u0438 \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u0435 \u0443\u0437\u043b\u0430. \u0421\u0442\u0430\u0440\u044b\u0435 \u0438\u043c\u0435\u043d\u0430 \u043e\u0431\u0440\u0435\u0437\u0430\u043d\u044b \u0434\u043e 8 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 (D_COMP_U, DI_PACKA), \u0443\u0437\u043b\u044b, \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0432 8i\u20139i, &#8212; \u0434\u043b\u0438\u043d\u043d\u0435\u0435 (D_SQL_STMT, DI_BULK_ITER).\u041f\u0440\u0435\u0444\u0438\u043a\u0441\u0421\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u043e\u041a\u043e\u0434\u043e\u0432\u041f\u0440\u0438\u043c\u0435\u0440\u044bD_\u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u044f\u0437\u044b\u043a\u0430166D_COMP_U &#8212; \u0435\u0434\u0438\u043d\u0438\u0446\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438, D_P_SPEC &#8212; \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043f\u0430\u043a\u0435\u0442\u0430, D_BLOCK, D_ASSIGN, D_F_CALLDI_\u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b: \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f35DI_PACKA, DI_PROC, DI_VAR, DI_U_NAM &#8212; \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0438\u043c\u044fDS_\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u043823DS_DECL &#8212; \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f, DS_STM &#8212; \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b, DS_PARAMQ_, QI_, QS_\u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 SQL75Q_SELECT, Q_INSERT, Q_SQL_ST, QI_CURSO\u0410\u0442\u0440\u0438\u0431\u0443\u0442\u044b\u0412 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 DIANA \u0447\u0435\u0442\u044b\u0440\u0435 \u0432\u0438\u0434\u0430 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432: \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u0435 (as_), \u043b\u0435\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0435 (lx_), \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 (sm_) \u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u043a\u043e\u0434\u0430 (cd_). PL\/SQL \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u044d\u0442\u043e \u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0441\u043e \u0441\u0432\u043e\u0438\u043c\u0438 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u0430\u043c\u0438: \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043e\u043a 184 \u0438\u043c\u0435\u043d\u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432. \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u043a\u043e\u043b\u043e\u043d\u043a\u0430 &#8212; \u0434\u043e\u043b\u044f \u043d\u0435\u043d\u0443\u043b\u0435\u0432\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 332 \u044e\u043d\u0438\u0442\u0430\u0445 \u0441\u044d\u043c\u043f\u043b\u043e\u0432: \u043e\u043d\u0430 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u043a\u0430\u043a\u0438\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b WRAP \u0432\u043e\u043e\u0431\u0449\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442.\u041f\u0440\u0435\u0444\u0438\u043a\u0441\u0412\u0438\u0434\u0418\u043c\u0451\u043d\u041f\u0440\u0438\u043c\u0435\u0440\u044b\u041d\u0435\u043d\u0443\u043b\u0435\u0432\u044b\u0445 \u0432 wrapped-\u0444\u0430\u0439\u043b\u0430\u0445A_\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u0439: \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0443\u0437\u0435\u043b \u0438\u043b\u0438 \u0444\u043b\u0430\u043384A_NAME, A_EXP1, A_UP &#8212; \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f63%AS_\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u0439: \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c28AS_DECL1, AS_STM, AS_LIST72%L_\u043b\u0435\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439: \u043d\u043e\u043c\u0435\u0440 \u043b\u0435\u043a\u0441\u0435\u043c\u044b7L_SYMREP &#8212; \u0438\u043c\u044f, L_NUMREP &#8212; \u0447\u0438\u0441\u043b\u043e, L_Q_HINT &#8212; \u0445\u0438\u043d\u044254%S_\u0441\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043947S_EXP_TY &#8212; \u0442\u0438\u043f \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, S_DEFN_PRIVATE &#8212; \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0438\u043c\u0435\u043d\u04385,1%SS_\u0441\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c10SS_SQL, SS_BINDS0%C_\u043a\u043e\u0434\u043e\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f8C_OFFSET, C_FIXUP, C_ENTRY_PT0,2%\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u0435 \u0438 \u043b\u0435\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u044b, \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u043a\u043e\u0434\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0443\u0441\u0442\u044b. \u0418\u0437 \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f \u043b\u0438\u0448\u044c \u0441\u0432\u044f\u0437\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0430\u0440\u0441\u0435\u0440 \u0437\u043d\u0430\u0435\u0442 \u0441\u0430\u043c: S_LAYER, S_FIRST, S_T_SPEC, S_RECORD. \u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u043c\u043e\u0436\u043d\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u0438\u0437 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u0445 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432: \u0430\u0432\u0442\u043e\u0440\u044b DIANA \u0437\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u043b\u0438 \u0442\u0435\u0441\u043d\u043e\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u043e\u043c \u044f\u0437\u044b\u043a\u0430 \u0438 \u044d\u0442\u0438\u043c\u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043c\u0438.\u0413\u0434\u0435 DIANA \u0436\u0438\u0432\u0451\u0442 \u0432 \u0431\u0430\u0437\u0435\u0421\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0445 SYS IDL_UB1$, IDL_UB2$, IDL_SB4$ \u0438 IDL_CHAR$. \u0421\u0443\u0444\u0444\u0438\u043a\u0441\u044b &#8212; \u0442\u0438\u043f\u044b \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 IDL: \u0431\u0435\u0437\u0437\u043d\u0430\u043a\u043e\u0432\u044b\u0435 1 \u0438 2 \u0431\u0430\u0439\u0442\u0430, \u0437\u043d\u0430\u043a\u043e\u0432\u044b\u0435 4 \u0431\u0430\u0439\u0442\u0430, \u0441\u0438\u043c\u0432\u043e\u043b\u044b. \u041a\u043e\u043b\u043e\u043d\u043a\u0430 PART \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435: 0 &#8212; DIANA, 1 &#8212; \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043c\u044b\u0439 p-code (m-code), 2 &#8212; \u043c\u0430\u0448\u0438\u043d\u043d\u043e-\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0439 p-code; \u0442\u0430\u043a \u0441\u043a\u0430\u0437\u0430\u043d\u043e \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 sql.bsq, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u0424\u0438\u043d\u043d\u0438\u0433\u0430\u043d.\u0418\u0437 PL\/SQL \u0434\u0435\u0440\u0435\u0432\u043e \u0447\u0438\u0442\u0430\u044e\u0442 \u043f\u0430\u043a\u0435\u0442\u044b PIDL \u0438 DIANA (\u0441\u043a\u0440\u0438\u043f\u0442\u044b pipidl.sql, pidian.sql) \u0438 \u0443\u0442\u0438\u043b\u0438\u0442\u044b DIUTIL. \u0418\u043c\u0435\u043d\u0430 \u0443\u0437\u043b\u043e\u0432 \u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0438\u0437 pidian.sql \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442 \u0441 \u0442\u0435\u043c\u0438, \u0447\u0442\u043e \u0437\u0430\u0448\u0438\u0442\u044b \u0432 WRAP. \u041f\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044e \u0424\u0438\u043d\u043d\u0438\u0433\u0430\u043d\u0430, DIANA \u0442\u0435\u043b \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0432 IDL-\u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0445 \u043d\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f, \u0438 \u0447\u0435\u0440\u0435\u0437 \u044d\u0442\u0438 API \u0442\u0435\u043b\u0430 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440 \u043d\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u044c.\u0413\u0434\u0435 WRAP \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044eWRAP &#8212; \u044d\u0442\u043e \u043b\u0435\u043a\u0441\u0435\u0440 \u0438 \u043f\u0430\u0440\u0441\u0435\u0440 PL\/SQL, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0434 \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0430\u043d\u0430\u043b\u0438\u0437\u043e\u043c. \u0424\u0430\u0439\u043b .plb \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0442\u043e \u0434\u0435\u0440\u0435\u0432\u043e, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0431\u0430\u0437\u0430 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u043b\u0430 \u0431\u044b \u0441\u0430\u043c\u0430 \u043f\u043e\u0441\u043b\u0435 \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430. \u041f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u043e\u043d\u0430 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0440\u0430\u0437\u0431\u043e\u0440 \u0438 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442 \u0441 \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u043a\u0438.\u0412 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 Oracle 9.2 \u0442\u0435\u043b\u043e wrapped-\u044e\u043d\u0438\u0442\u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u043e \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 (Wrap Utility, 9.2), \u0430 \u0424\u0438\u043d\u043d\u0438\u0433\u0430\u043d \u043f\u0440\u044f\u043c\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442 WRAP \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u043e\u043c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 PL\/SQL. \u0418\u0437 \u044d\u0442\u043e\u0433\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0442 \u0442\u0440\u0438 \u0432\u0435\u0449\u0438:WRAP \u043d\u0435 \u0432\u0438\u0434\u0438\u0442 \u0431\u0430\u0437\u0443. \u041e\u043d \u043d\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 \u0432\u043d\u0435\u0448\u043d\u0438\u0435 \u0441\u0441\u044b\u043b\u043a\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0430 \u0432 \u0438\u043c\u0435\u043d\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043f\u0440\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 .plb. \u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043e\u043d \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442 \u0441\u0430\u043c.\u0421\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0432 \u0444\u0430\u0439\u043b\u0435 \u043f\u0443\u0441\u0442\u044b. \u042d\u0442\u043e \u0432\u0438\u0434\u043d\u043e \u043f\u043e \u0437\u0430\u043c\u0435\u0440\u0443 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432: S_ \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u044b \u043d\u0430 5,1%, SS_ &#8212; \u043d\u0430 0%, C_ &#8212; \u043d\u0430 0,2%. \u0418\u043c\u0435\u043d\u0430 \u0432 DI_U_NAM \u043d\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u044b \u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f\u043c\u0438: S_DEFN_PRIVATE \u043d\u0435\u043d\u0443\u043b\u0435\u0432\u043e\u0439 \u0432 2 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0438\u0437 5 107.\u0424\u0430\u0439\u043b \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c \u0432\u0432\u0435\u0440\u0445, \u043d\u043e \u043d\u0435 \u0432\u043d\u0438\u0437. \u042e\u043d\u0438\u0442 WRAP 8.1.5 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u0432 8.1.6, \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0435 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e. \u0412\u0435\u0440\u043e\u044f\u0442\u043d\u0430\u044f \u043f\u0440\u0438\u0447\u0438\u043d\u0430 &#8212; \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0438 \u0443\u0437\u043b\u043e\u0432: \u0432 \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 DIANA \u0443 \u0443\u0437\u043b\u043e\u0432 \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u0442\u0430\u0440\u044b\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043d\u0435 \u0437\u043d\u0430\u0435\u0442.\u0424\u043e\u0440\u043c\u0430\u0442 wrapped-\u0444\u0430\u0439\u043b\u0430 V1Wrapped-\u044e\u043d\u0438\u0442 V1 &#8212; \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442: \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a CREATE, \u0441\u043b\u0443\u0436\u0435\u0431\u043d\u0430\u044f \u0448\u0430\u043f\u043a\u0430, \u043b\u0435\u043a\u0441\u0438\u043a\u043e\u043d \u0438 \u0448\u0435\u0441\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446 \u0434\u0435\u0440\u0435\u0432\u0430 \u0432 \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438. \u0421\u0445\u0435\u043c\u0430 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0444\u0430\u0439\u043b \u0438\u0437 \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u043d\u0438\u0436\u0435 (\u043f\u0430\u043a\u0435\u0442 va, 59 \u0443\u0437\u043b\u043e\u0432) \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0441\u0442\u0440\u043e\u043a, \u043a\u0430\u043a \u0435\u0433\u043e \u0447\u0438\u0442\u0430\u0435\u0442 V1SourceParser.\u0428\u0430\u043f\u043a\u0430WRAP \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 CREATE \u0434\u043e \u043a\u043e\u043d\u0446\u0430 \u0438\u043c\u0435\u043d\u0438 \u044e\u043d\u0438\u0442\u0430 \u043a\u0430\u043a \u0435\u0441\u0442\u044c &#8212; \u0441 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u043c, \u0441\u0445\u0435\u043c\u043e\u0439, \u043a\u0430\u0432\u044b\u0447\u043a\u0430\u043c\u0438, \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430\u043c\u0438 \u0441\u0442\u0440\u043e\u043a \u0438 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u043c\u0438 &#8212; \u0438 \u0434\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442  wrapped. \u0423 \u0442\u0435\u043b\u0430 \u0442\u0438\u043f\u0430 \u043a\u043e\u043f\u0438\u044f \u0438\u0434\u0451\u0442 \u0434\u043e IS \u0438\u043b\u0438 AS, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u043e\u0431\u0435\u043b\u044b \u0438 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u043f\u0435\u0440\u0435\u0434 \u043d\u0438\u043c\u0438 \u0442\u043e\u0436\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a. \u0414\u0435\u0440\u0435\u0432\u043e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u043d\u0435 \u0445\u0440\u0430\u043d\u0438\u0442: CREATE \u0438 CREATE OR REPLACE, \u0438\u043c\u044f \u0441\u043e \u0441\u0445\u0435\u043c\u043e\u0439 \u0438 \u0431\u0435\u0437 \u0434\u0430\u044e\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b.\u0414\u0430\u043b\u044c\u0448\u0435 \u0438\u0434\u0443\u0442 \u0441\u0442\u0440\u043e\u043a\u0430 0 \u0438 \u0441\u0442\u0440\u043e\u043a\u0438 abcd: 16 \u0448\u0442\u0443\u043a \u0432 PL\/SQL 2.x\u20138.1.5 \u0438 15 \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 8.1.6, \u0433\u0434\u0435 \u043d\u0430 \u043c\u0435\u0441\u0442\u0435 \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u043e\u0439 \u0441\u0442\u043e\u0438\u0442 \u0447\u0438\u0441\u043b\u043e (\u0432 \u0441\u044d\u043c\u043f\u043b\u0430\u0445 1 \u0438\u043b\u0438 3). \u0421\u043b\u0435\u0434\u043e\u043c &#8212; \u043a\u043e\u0434 \u0432\u0438\u0434\u0430 \u044e\u043d\u0438\u0442\u0430 \u0432 hex, \u043e\u043d \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u0442\u0438\u043f\u043e\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u0435: 7 &#8212; \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430, 8 &#8212; \u0444\u0443\u043d\u043a\u0446\u0438\u044f, 9 &#8212; \u043f\u0430\u043a\u0435\u0442, b &#8212; \u0442\u0435\u043b\u043e \u043f\u0430\u043a\u0435\u0442\u0430, d &#8212; \u0442\u0438\u043f, e &#8212; \u0442\u0435\u043b\u043e \u0442\u0438\u043f\u0430, 16 &#8212; \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430.\u0417\u0430\u0442\u0435\u043c \u0438\u0434\u0451\u0442 \u0432\u0435\u0440\u0441\u0438\u044f DIANA &#8212; \u0441\u0435\u043c\u044c \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043d\u044b\u0445 \u0446\u0438\u0444\u0440. \u042d\u0442\u043e \u0432\u0435\u0440\u0441\u0438\u044f PL\/SQL, \u0430 \u043d\u0435 Oracle (PL\/SQL 2.2 &#8212; \u044d\u0442\u043e Oracle 7.2, 2.3 &#8212; 7.3, \u0434\u0430\u043b\u044c\u0448\u0435 \u043d\u043e\u043c\u0435\u0440\u0430 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442). \u0418 \u044d\u0442\u043e \u043d\u0435 \u0440\u0435\u043b\u0438\u0437 \u0441\u0430\u043c\u043e\u0433\u043e WRAP: \u0443\u0442\u0438\u043b\u0438\u0442\u0430 \u043f\u0438\u0448\u0435\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u0432\u0435\u0440\u0441\u0438\u044e DIANA, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0437\u043d\u0430\u0435\u0442.WRAP (\u0440\u0435\u043b\u0438\u0437 PL\/SQL)\u0421\u0442\u0440\u043e\u043a\u0430 \u0432\u0435\u0440\u0441\u0438\u0438 \u0432 \u044e\u043d\u0438\u0442\u04359.2.0.492000009.0.190000008.1.6, 8.1.781060008.1.5 (Oracle8i \u0434\u043b\u044f Windows NT)81050008.0.580030002.3.3.0.0, 2.3.4200f0002.3.2.3.0 \u0434\u043b\u044f Windows NT95a025ff2.2.2.3.1 \u0434\u043b\u044f Windows NT952825ff\u0421\u043b\u043e\u0432\u0430 \u043d\u0430 25ff &#8212; \u043d\u0435 \u0432\u0435\u0440\u0441\u0438\u044f, \u0430 \u0441\u043b\u0435\u0434 \u043e\u0448\u0438\u0431\u043a\u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u0430. WRAP \u0434\u043b\u044f Windows PL\/SQL 2.2 \u0438 2.3.2 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u0438 \u043a\u0430\u043a \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0438 \u0447\u0438\u0442\u0430\u0435\u0442 \u043f\u0435\u0440\u0432\u044b\u0435 \u0447\u0435\u0442\u044b\u0440\u0435 \u0431\u0430\u0439\u0442\u0430 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u0438\u043a\u0430 jmp [slot]: FF 25 \u0438 \u043c\u043b\u0430\u0434\u0448\u0438\u0435 \u0431\u0430\u0439\u0442\u044b \u0430\u0434\u0440\u0435\u0441\u0430 \u0441\u043b\u043e\u0442\u0430. \u041d\u0430\u0441\u0442\u043e\u044f\u0449\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u044d\u0442\u0438\u0445 \u0441\u0431\u043e\u0440\u043e\u043a &#8212; 200f000, \u0438 \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0443 \u043d\u0438\u0445 \u0442\u0430 \u0436\u0435, \u0447\u0442\u043e \u0443 2.3.4. \u041f\u043e\u0441\u043b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u0438\u0434\u0443\u0442 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 1, 4, 0.\u041b\u0435\u043a\u0441\u0438\u043a\u043e\u043d\u041b\u0435\u043a\u0441\u0438\u043a\u043e\u043d &#8212; \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u0441\u0435\u0445 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0441\u043b\u043e\u0432 \u044e\u043d\u0438\u0442\u0430: \u0438\u043c\u0451\u043d, \u043b\u0438\u0442\u0435\u0440\u0430\u043b\u043e\u0432, \u0437\u043d\u0430\u043a\u043e\u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0438 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u043b\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043b\u0435\u043a\u0441\u0435\u0440 \u0447\u0438\u0442\u0430\u0435\u0442 \u043a\u0430\u043a \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b (PACKAGE, TYPE, VARRAY). \u041a\u0430\u0436\u0434\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u043e\u0434\u0438\u043d \u0440\u0430\u0437, \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f; \u043d\u043e\u043c\u0435\u0440 0 &#8212; \u043f\u0443\u0441\u0442\u0430\u044f \u043b\u0435\u043a\u0441\u0435\u043c\u0430. \u041f\u0435\u0440\u0432\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 &#8212; \u0447\u0438\u0441\u043b\u043e \u043b\u0435\u043a\u0441\u0435\u043c \u0432 hex, \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f &#8212; 0.PL\/SQL 2.x \u0438 8.0: \u0441\u0442\u0440\u043e\u043a\u0430 &lt;\u0434\u043b\u0438\u043d\u0430 \u0432 hex&gt; &lt;\u0442\u0435\u043a\u0441\u0442&gt;:; \u0434\u043b\u0438\u043d\u043d\u0430\u044f \u043b\u0435\u043a\u0441\u0435\u043c\u0430 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0441\u0442\u0440\u043e\u043a\u0430\u0445, \u043f\u043e\u043a\u0430 \u043d\u0435 \u043d\u0430\u0431\u0435\u0440\u0451\u0442\u0441\u044f \u0434\u043b\u0438\u043d\u0430.PL\/SQL 8.1.5 \u0438 \u043d\u043e\u0432\u0435\u0435: \u043c\u0430\u0440\u043a\u0435\u0440 2 :e:, \u0437\u0430\u0442\u0435\u043c \u0441\u0442\u0440\u043e\u043a\u0438 1&lt;\u0442\u0435\u043a\u0441\u0442&gt;:; \u0441\u0442\u0440\u043e\u043a\u0430, \u043e\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e\u0449\u0430\u044f\u0441\u044f \u043d\u0430 +, \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439.\u042d\u043a\u0440\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435: \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u043b\u0435\u043a\u0441\u0435\u043c\u044b &#8212; :n, \u0434\u0432\u043e\u0435\u0442\u043e\u0447\u0438\u0435 &#8212; ::, \u0432\u043e\u0437\u0432\u0440\u0430\u0442 \u043a\u0430\u0440\u0435\u0442\u043a\u0438 \u0437\u0430\u043f\u0438\u0441\u0430\u043d \u043a\u0430\u043a \u0435\u0441\u0442\u044c.2.3.4:  12 SELECT_DELETE_DEMO:      \u2190 0x12 = 18 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432        4 P_ID:9.2:    1SELECT empno, ename:n      from emp:n     where deptno = p:n     order by ena+        1me:                        \u2190 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u043b\u0435\u043a\u0441\u0435\u043c\u044b \u043f\u043e\u0441\u043b\u0435 +\u0428\u0435\u0441\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446 \u0434\u0435\u0440\u0435\u0432\u0430\u041a\u0430\u0436\u0434\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 \u0447\u0438\u0441\u043b\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u0439 \u0438 \u0441\u0442\u0440\u043e\u043a\u0438-\u043c\u0430\u0440\u043a\u0435\u0440\u0430 2 \u0438\u043b\u0438 4, \u0437\u0430\u0442\u0435\u043c \u0438\u0434\u0443\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 hex \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u043e\u0431\u0435\u043b. \u0417\u0430\u043f\u0438\u0441\u044c :N v \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 N \u043f\u043e\u0432\u0442\u043e\u0440\u043e\u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f v. \u041f\u043e\u0437\u0438\u0446\u0438\u044f 0 \u0437\u043d\u0430\u0447\u0438\u0442 \u00ab\u043d\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u00bb, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0443\u0437\u043b\u044b, \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441\u043f\u0438\u0441\u043a\u043e\u0432 \u043d\u0443\u043c\u0435\u0440\u0443\u044e\u0442\u0441\u044f \u0441 1.\u2116\u0422\u0430\u0431\u043b\u0438\u0446\u0430\u0418\u043d\u0434\u0435\u043a\u0441\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u041c\u0430\u0440\u043a\u0435\u0440: 2.x\u20138.1.5 \/ 8.1.6 \/ 9.x1Node Types\u043d\u043e\u043c\u0435\u0440 \u0443\u0437\u043b\u0430\u043a\u043e\u0434 \u0442\u0438\u043f\u0430 \u0443\u0437\u043b\u0430 (D_COMP_U = 23)2 \/ 2 \/ 22Attribute References\u043d\u043e\u043c\u0435\u0440 \u0443\u0437\u043b\u0430\u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 52 \/ 2 \/ 23Columns\u043d\u043e\u043c\u0435\u0440 \u0443\u0437\u043b\u0430\u043a\u043e\u043b\u043e\u043d\u043a\u0430 \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u04352 \/ 2 \/ 24Lines\u043d\u043e\u043c\u0435\u0440 \u0443\u0437\u043b\u0430\u0441\u0442\u0440\u043e\u043a\u0430 \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u04352 \/ 2 \/ 45Attributes\u043f\u043e\u0437\u0438\u0446\u0438\u044f\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0432\u0441\u0435\u0445 \u0443\u0437\u043b\u043e\u0432 \u0431\u043b\u043e\u043a\u0430\u043c\u04382 \/ 4 \/ 46AS Lists\u043f\u043e\u0437\u0438\u0446\u0438\u044f\u0441\u043f\u0438\u0441\u043e\u043a: \u0434\u043b\u0438\u043d\u0430, \u0437\u0430\u0442\u0435\u043c \u043d\u043e\u043c\u0435\u0440\u0430 \u0443\u0437\u043b\u043e\u04322 \/ 4 \/ 4\u041c\u0430\u0440\u043a\u0435\u0440, \u043f\u043e \u0432\u0441\u0435\u0439 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438, &#8212; \u0448\u0438\u0440\u0438\u043d\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0432 \u0431\u0430\u0439\u0442\u0430\u0445. \u041f\u0430\u0440\u0441\u0435\u0440 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e, \u0447\u0442\u043e \u044d\u0442\u043e 2 \u0438\u043b\u0438 4, \u0430 \u0432\u043e \u0432\u0441\u0435\u0445 332 \u044e\u043d\u0438\u0442\u0430\u0445 \u0441\u044d\u043c\u043f\u043b\u043e\u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0437\u0430\u0432\u0438\u0441\u044f\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442 \u0432\u0435\u0440\u0441\u0438\u0438.\u0423\u0437\u0435\u043b &#8212; \u044d\u0442\u043e \u043d\u043e\u043c\u0435\u0440, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446 1\u20134 \u0431\u0435\u0440\u0443\u0442\u0441\u044f \u0442\u0438\u043f, \u043d\u0430\u0447\u0430\u043b\u043e \u0431\u043b\u043e\u043a\u0430 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0438 \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u0432 \u0442\u0435\u043a\u0441\u0442\u0435. \u0410\u0442\u0440\u0438\u0431\u0443\u0442 k \u0443\u0437\u043b\u0430 \u043b\u0435\u0436\u0438\u0442 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 5 \u043f\u043e \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u00ab\u0441\u0441\u044b\u043b\u043a\u0430 + k \u2212 1\u00bb. \u0421\u043f\u0438\u0441\u043e\u043a \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 6 \u0437\u0430\u043f\u0438\u0441\u0430\u043d \u043a\u0430\u043a \u0434\u043b\u0438\u043d\u0430 \u0438 \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0436\u0435 \u043d\u043e\u043c\u0435\u0440\u043e\u0432 \u0443\u0437\u043b\u043e\u0432 \u0432\u0441\u043b\u0435\u0434 \u0437\u0430 \u043d\u0435\u0439.\u0427\u0438\u0441\u043b\u043e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0443\u0437\u043b\u0430 \u0432 \u0444\u0430\u0439\u043b\u0435 \u043d\u0435 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043e. \u0415\u0433\u043e \u0437\u043d\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e IDL-\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430 \u0442\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438, \u0447\u0442\u043e \u043f\u0438\u0441\u0430\u043b\u0430 \u0444\u0430\u0439\u043b; \u043b\u0438\u0448\u043d\u0438\u0439 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u043c \u0441\u043e\u0441\u0435\u0434\u043d\u0435\u0433\u043e \u0443\u0437\u043b\u0430. \u0411\u043b\u043e\u043a\u0438 \u043b\u0435\u0436\u0430\u0442 \u043d\u0435 \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0443\u0437\u043b\u043e\u0432, \u0430 \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438 \u0431\u044b\u0432\u0430\u044e\u0442 \u043d\u0438\u0447\u044c\u0438 \u0441\u043b\u043e\u0442\u044b \u0441\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438.\u0414\u043e 8.1.6 \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0431\u043b\u043e\u043a \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 16-\u0431\u0438\u0442\u043d\u0430\u044f, \u0430 \u0435\u0451 \u0441\u0442\u0430\u0440\u0448\u0438\u0435 \u0440\u0430\u0437\u0440\u044f\u0434\u044b \u0441\u043f\u0440\u044f\u0442\u0430\u043d\u044b \u0432 \u043a\u043e\u0434\u0435 \u0442\u0438\u043f\u0430 \u0443\u0437\u043b\u0430. \u0415\u0441\u043b\u0438 \u043a\u043e\u0434 \u2265 0x1000, \u0442\u043e \u0442\u0438\u043f &#8212; \u044d\u0442\u043e \u043a\u043e\u0434 mod 0x1000, \u0430 \u043a \u0441\u0441\u044b\u043b\u043a\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f (\u043a\u043e\u0434 div &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-501969","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/501969","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=501969"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/501969\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=501969"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=501969"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=501969"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}