{"id":254070,"date":"2015-03-30T14:14:02","date_gmt":"2015-03-30T10:14:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=254070"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=254070","title":{"rendered":"\u0412\u0441\u0435 \u043e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u0445 \u0432 Oracle"},"content":{"rendered":"<p> \t\t\t<em>\u0421\u0442\u0430\u0442\u044c\u044f \u0438\u043c\u0435\u0435\u0442 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0442\u0430\u043a\u0438 \u0442\u0435\u0437\u0438\u0441\u043d\u044b\u0439 \u0441\u0442\u0438\u043b\u044c. \u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u043c \u0432\u043d\u0438\u0437\u0443 \u0441\u0442\u0430\u0442\u044c\u0438 \u0432\u0438\u0434\u0435\u043e \u0441 \u0437\u0430\u043f\u0438\u0441\u044c\u044e \u043b\u0435\u043a\u0446\u0438\u0438 \u043f\u043e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u043c Oracle.<\/em><\/p>\n<p>  \u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e \u0432 \u0442\u043e\u043c \u0438\u043b\u0438 \u0438\u043d\u043e\u043c \u0432\u0438\u0434\u0435 \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u044f\u0437\u044b\u043a\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0432\u0435\u0437\u0434\u0435 \u0438\u043c\u0435\u044e\u0442 \u0441\u0445\u043e\u0436\u0443\u044e \u0441\u0443\u0442\u044c \u0432 \u043f\u043b\u0430\u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f. \u0410 \u0438\u043c\u0435\u043d\u043d\u043e \u2013 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043d\u0430\u0431\u043e\u0440 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043e\u0434\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0438 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u043d\u0430\u0434 \u0432\u0441\u0435\u043c \u043d\u0430\u0431\u043e\u0440\u043e\u043c \u043a\u0430\u043a\u0438\u0435-\u043b\u0438\u0431\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f, \u043b\u0438\u0431\u043e \u0432 \u0446\u0438\u043a\u043b\u0435 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u043e\u0434\u043d\u043e\u0442\u0438\u043f\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c\u0438 \u043d\u0430\u0431\u043e\u0440\u0430.<\/p>\n<p>  \u0422\u0430\u043a\u0438\u043c \u0436\u0435 \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0438 \u0432 Oracle.<\/p>\n<h4><b>\u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u0441\u0442\u0430\u0442\u044c\u0438<\/b><\/h4>\n<p>  <\/p>\n<ul>\n<li><a href=\"#One\">\u041e\u0431\u0449\u0438\u0435 \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u0445 \u0432 pl\/sql <\/a><\/li>\n<li><a href=\"#Two\">\u0422\u0438\u043f\u044b \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 <\/a><\/li>\n<li><a href=\"#Three\">\u0410\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 <\/a><\/li>\n<li><a href=\"#Four\">Varray <\/a><\/li>\n<li><a href=\"#Five\">Nested table <\/a><\/li>\n<li><a href=\"#Six\">Set operations \u0441 nested tables <\/a><\/li>\n<li><a href=\"#Seven\">\u041b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u043c\u0438 <\/a><\/li>\n<li><a href=\"#Eight\">\u041c\u0435\u0442\u043e\u0434\u044b \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 <\/a>\n<ul>\n<li><a href=\"#Nine\">Delete <\/a><\/li>\n<li><a href=\"#Ten\">Trim <\/a><\/li>\n<li><a href=\"#Eleven\">Extend <\/a><\/li>\n<li><a href=\"#Twelve\">Exists <\/a><\/li>\n<li><a href=\"#Thirteen\">First \u0438 Last <\/a><\/li>\n<li><a href=\"#Fourteen\">Count<\/a><\/li>\n<li><a href=\"#Fifteen\">Limit <\/a><\/li>\n<li><a href=\"#Sixteen\">Prior \u0438 Next <\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#Seventeen\">Bulk Collect <\/a><\/li>\n<li><a href=\"#Eighteen\">\u0426\u0438\u043a\u043b forall<\/a> <br \/> \n<ul>\n<li><a href=\"#Nineteen\">Exceptions in forall <\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#Twenty\">Collection exceptions <\/a><\/li>\n<li><a href=\"#TwentyOne\">DBMS_SESSION.FREE_UNUSED_USER_MEMORY<\/a><\/li>\n<\/ul>\n<p>  <a name=\"habracut\"><\/a><br \/>  <a name=\"One\"><\/a><\/p>\n<h5><b>\u041e\u0431\u0449\u0438\u0435 \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u0445 \u0432 pl\/sql<\/b><\/h5>\n<p>  <\/p>\n<ul>\n<li>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 \u0434\u0432\u0430 \u044d\u0442\u0430\u043f\u0430\n<ol>\n<li>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043c\u044b \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0435\u043c \u0442\u0438\u043f(type) \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 (\u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 assoc_array_type_def, varray_type_def \u0438 nested_table_type_def \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u044b \u0434\u0430\u043b\u0435\u0435)\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/f6b\/0a0\/bf9\/f6b0a0bf9b84467d805019fa949a7b75.png\"\/><\/li>\n<li>\u0417\u0430\u0442\u0435\u043c \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u044d\u0442\u043e\u0433\u043e \u0442\u0438\u043f\u0430<\/li>\n<\/ol>\n<\/li>\n<li>\u041e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0443 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0438\u043c\u0435\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441:\n<pre><code class=\"sql\">variable_name(index)<\/code><\/pre>\n<\/li>\n<li>\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0442\u0438\u043f\u0430 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 NULL (\u0438 \u0441\u0430\u043c\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u0442\u043e\u0436\u0435).<\/li>\n<li>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b \u043c\u043d\u043e\u0433\u043e\u043c\u0435\u0440\u043d\u044b\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 (\u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439) <\/li>\n<\/ul>\n<p>  <a name=\"Two\"><\/a><\/p>\n<h5><b>\u0422\u0438\u043f\u044b \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439<\/b><\/h5>\n<p>  <\/p>\n<table>\n<tr>\n<th>\u0422\u0438\u043f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/th>\n<th>\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432<\/th>\n<th>\u0422\u0438\u043f \u0438\u043d\u0434\u0435\u043a\u0441\u0430<\/th>\n<th>\u041f\u043b\u043e\u0442\u043d\u0430\u044f \u0438\u043b\u0438 \u0440\u0430\u0437\u0440\u0435\u0436\u0435\u043d\u043d\u0430\u044f<\/th>\n<th>\u0411\u0435\u0437 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438<\/th>\n<th>\u0413\u0434\u0435 \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f<\/th>\n<th>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 SQL <\/th>\n<\/tr>\n<tr>\n<td>\u0410\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 <br \/>  (index by table)<\/td>\n<td>\u041d\u0435 \u0437\u0430\u0434\u0430\u043d\u043e<\/td>\n<td>String <br \/>  Pls_integer<\/td>\n<td>\u041f\u043b\u043e\u0442\u043d\u0430\u044f \u0438 \u0440\u0430\u0437\u0440\u0435\u0436\u0435\u043d\u043d\u0430\u044f<\/td>\n<td>Empty<\/td>\n<td>PL\/SQL block<br \/>  Package<\/td>\n<td>\u041d\u0435\u0442<\/td>\n<\/tr>\n<tr>\n<td>Varray <br \/>  (variable-size array) <\/td>\n<td>\u0417\u0430\u0434\u0430\u043d\u043e<\/td>\n<td>Integer<\/td>\n<td>\u0422\u043e\u043b\u044c\u043a\u043e \u043f\u043b\u043e\u0442\u043d\u0430\u044f<\/td>\n<td>Null<\/td>\n<td>PL\/SQL block <br \/>  Package<br \/>  Schema level<\/td>\n<td>\u0422\u043e\u043b\u044c\u043a\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0441\u0445\u0435\u043c\u044b<\/td>\n<\/tr>\n<tr>\n<td>Nested table<\/td>\n<td>\u041d\u0435 \u0437\u0430\u0434\u0430\u043d\u043e<\/td>\n<td>Integer<\/td>\n<td>\u041f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043f\u043b\u043e\u0442\u043d\u0430\u044f, \u043c\u043e\u0436\u0435\u0442 \u0441\u0442\u0430\u0442\u044c \u0440\u0430\u0437\u0440\u0435\u0436\u0435\u043d\u043d\u043e\u0439<\/td>\n<td>Null<\/td>\n<td>PL\/SQL block <br \/>  Package <br \/>  Schema level<\/td>\n<td>\u0422\u043e\u043b\u044c\u043a\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0441\u0445\u0435\u043c\u044b<\/td>\n<\/tr>\n<\/table>\n<p>  \u041f\u043b\u043e\u0442\u043d\u043e\u0441\u0442\u044c \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043c\u0435\u0436\u0434\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043d\u0435\u0442 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043e\u0432, \u043f\u0443\u0441\u0442\u044b\u0445 \u043c\u0435\u0441\u0442. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438, \u043a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0440\u0430\u0437\u0440\u0435\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u2013 \u0442.\u0435. \u043c\u043e\u0433\u0443\u0442 \u0438\u043c\u0435\u0442\u044c \u0440\u0430\u0437\u0440\u044b\u0432\u044b \u043c\u0435\u0436\u0434\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c\u0438. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0432 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c 1 \u0438 4, \u0430 \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c 2 \u0438 3 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0435\u0442. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0441\u043b\u043e\u0442\u044b \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u043e\u0434 2-\u0439 \u0438 3-\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0431\u0443\u0434\u0443\u0442 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0438 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0442\u044c \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 (\u0432 \u0441\u043b\u0443\u0447\u0430\u0435 nested table), \u043d\u043e \u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u044d\u0442\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432\u044b\u0437\u043e\u0432\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0443 no_data_found.<br \/>  \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u043c\u043e\u0436\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c \u0438\u0437 \u0432\u0438\u0434\u0435\u043e-\u043b\u0435\u043a\u0446\u0438\u0438 \u0432 \u043a\u043e\u043d\u0446\u0435 \u0441\u0442\u0430\u0442\u044c\u0438.<\/p>\n<p>  <a name=\"Three\"><\/a><\/p>\n<h5><b>\u0410\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432<\/b><\/h5>\n<p>  \u0422\u0430\u043a\u0436\u0435 \u0435\u0433\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 index by table \u0438\u043b\u0438 pl\/sql table.<br \/>  \u0422\u0438\u043f \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c (assoc_array_type_def):.<br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/d27\/7fb\/53d\/d277fb53d52048a4b6bd46beba651cd8.png\"\/>  <\/p>\n<ul>\n<li>\u041d\u0430\u0431\u043e\u0440 \u043f\u0430\u0440 \u043a\u043b\u044e\u0447-\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/li>\n<li>\u0414\u0430\u043d\u043d\u044b\u0435 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u043f\u043e \u043a\u043b\u044e\u0447\u0443 \u043f\u043e\u0440\u044f\u0434\u043a\u0435<\/li>\n<li>\u041d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 DML-\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 <\/li>\n<li>\u041f\u0440\u0438 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0438 \u043a\u0430\u043a \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0441\u0440\u0430\u0437\u0443 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 <\/li>\n<li>\u041f\u043e\u0440\u044f\u0434\u043e\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u043e\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u0441 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 NLS_SORT \u0438 NLS_COMP <\/li>\n<li>\u041d\u0435\u043b\u044c\u0437\u044f \u043e\u0431\u044a\u044f\u0432\u0438\u0442\u044c \u0442\u0438\u043f \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0441\u0445\u0435\u043c\u044b, \u043d\u043e \u043c\u043e\u0436\u043d\u043e \u0432 \u043f\u0430\u043a\u0435\u0442\u0435<\/li>\n<li>\u041d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430 <\/li>\n<li>\u0418\u043d\u0434\u0435\u043a\u0441 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 null<\/li>\n<li>Datatype \u2013 \u044d\u0442\u043e \u043b\u044e\u0431\u043e\u0439 \u0442\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u0440\u043e\u043c\u0435 ref cursor<\/li>\n<\/ul>\n<p>  <b>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f:<\/b>  <\/p>\n<ul>\n<li>\u0414\u043b\u044f \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0432 \u043f\u0430\u043c\u044f\u0442\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0442\u0430\u0431\u043b\u0438\u0446-\u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u043e\u0432<\/li>\n<li>\u0414\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 <\/li>\n<\/ul>\n<p>  <b>Restrictions:<\/b><br \/>  \u041f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 NLS_SORT \u0438 NLS_COMP \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0441\u0435\u0441\u0441\u0438\u0438 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430, \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 first, last, next, previous. \u0422\u0430\u043a\u0436\u0435 \u043c\u043e\u0433\u0443\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435 \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043d\u0430 \u0434\u0440\u0443\u0433\u0443\u044e \u0411\u0414 \u0441 \u0438\u043d\u044b\u043c\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438 NLS_SORT \u0438 NLS_COMP<\/p>\n<p>  <a name=\"Four\"><\/a><\/p>\n<h5><b>Varray<\/b><\/h5>\n<p>  \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u0440\u0430\u043d\u044f\u0449\u0438\u0445\u0441\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432<br \/>   <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/8a9\/56b\/78e\/8a956b78e35149239301d312e6b60feb.png\"\/><\/p>\n<p>  \u0422\u0438\u043f \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c (varay_type_def):<br \/>   <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/7d6\/27f\/381\/7d627f3814914ea7a8432ddfe73773b6.png\"\/><\/p>\n<ul>\n<li>\u0420\u0430\u0437\u043c\u0435\u0440 \u0437\u0430\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438<\/li>\n<li>\u0418\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441 1<\/li>\n<li>\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u043e\u043c<br \/> \n<pre><code class=\"sql\">collection_type ( [ value [, value ]... ] )<\/code><\/pre>\n<\/li>\n<li>\u0415\u0441\u043b\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043d\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043f\u0443\u0441\u0442\u0430\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f<\/li>\n<li>Datatype \u2013 \u044d\u0442\u043e \u043b\u044e\u0431\u043e\u0439 \u0442\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u0440\u043e\u043c\u0435 ref cursor<\/li>\n<\/ul>\n<p>  <b>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f, \u0435\u0441\u043b\u0438:<\/b>  <\/p>\n<ul>\n<li>\u0417\u043d\u0430\u0435\u043c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432<\/li>\n<li>\u0414\u043e\u0441\u0442\u0443\u043f \u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439<\/li>\n<\/ul>\n<p>  <b>Restrictions:<\/b><br \/>  \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u2013 2 147 483 647 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432<\/p>\n<p>  <a name=\"Five\"><\/a><\/p>\n<h5><b>Nested table<\/b><\/h5>\n<p>  \u0422\u0438\u043f \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c (nested_table_type_def):<br \/>   <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/8d4\/4a3\/922\/8d44a39225f440faa46444b6b9a3db78.png\"\/><\/p>\n<ul>\n<li>\u0420\u0430\u0437\u043c\u0435\u0440 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438<\/li>\n<li>\u041c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432 \u0440\u0430\u0437\u0440\u044f\u0436\u0435\u043d\u043d\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438, \u043a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435<br \/>  &lt;<img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/8f1\/3a8\/e2d\/8f13a8e2d08a493b99a38693da9ef25e.png\"\/><\/li>\n<li>\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u043e\u043c<br \/> \n<pre><code class=\"sql\">collection_type ( [ value [, value ]... ] )<\/code><\/pre>\n<\/li>\n<li>\u0415\u0441\u043b\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043d\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043f\u0443\u0441\u0442\u0430\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f<\/li>\n<li>Datatype \u2013 \u044d\u0442\u043e \u043b\u044e\u0431\u043e\u0439 \u0442\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u0440\u043e\u043c\u0435 ref cursor<\/li>\n<li>\u0415\u0441\u043b\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u043e \u0441\u043a\u0430\u043b\u044f\u0440\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0442\u043e \u0438\u043c\u044f \u043a\u043e\u043b\u043e\u043d\u043a\u0438 \u2013 Column_Value <br \/> \n<pre><code class=\"sql\">SELECT column_value FROM   TABLE(nested_table)<\/code><\/pre>\n<\/li>\n<li>\u0415\u0441\u043b\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043d\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043f\u0443\u0441\u0442\u0430\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f<\/li>\n<\/ul>\n<p>  <a name=\"Six\"><\/a><\/p>\n<h5><b>Set operations \u0441 nested tables<\/b><\/h5>\n<p>  \u041e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u043c\u0438 <b>nested table<\/b>. \u041e\u0431\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438, \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438, \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043e\u0434\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430.<br \/>  \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0442\u0430\u043a\u0436\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f <b>nested table<\/b>.<\/p>\n<table>\n<tr>\n<th>\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u044f<\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<\/tr>\n<tr>\n<td>MULTISET UNION<\/td>\n<td>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0434\u0432\u0443\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439<\/td>\n<\/tr>\n<tr>\n<td>MULTISET UNION DISTINCT<\/td>\n<td>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0434\u0432\u0443\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u0441 \u0434\u0438\u0441\u0442\u0438\u043d\u043a\u0442\u043e\u043c (\u0443\u0431\u0438\u0440\u0430\u0435\u0442 \u0434\u0443\u0431\u043b\u0438)<\/td>\n<\/tr>\n<tr>\n<td>MULTISET INTERSECT<\/td>\n<td>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u0435 \u0434\u0432\u0443\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439<\/td>\n<\/tr>\n<tr>\n<td>MULTISET INTERSECT DISTINCT<\/td>\n<td>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u0435 \u0434\u0432\u0443\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u0441 \u0434\u0438\u0441\u0442\u0438\u043d\u043a\u0442\u043e\u043c (\u0443\u0431\u0438\u0440\u0430\u0435\u0442 \u0434\u0443\u0431\u043b\u0438)<\/td>\n<\/tr>\n<tr>\n<td>SET<\/td>\n<td>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e \u0441 \u0434\u0438\u0441\u0442\u0438\u043d\u043a\u0442\u043e\u043c (\u0442.\u0435. \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e \u0431\u0435\u0437 \u0434\u0443\u0431\u043b\u0435\u0439)<\/td>\n<\/tr>\n<tr>\n<td>MULTISET EXCEPT<\/td>\n<td>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u0434\u0432\u0443\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439<\/td>\n<\/tr>\n<tr>\n<td>MULTISET EXCEPT DISTINCT<\/td>\n<td>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u0434\u0432\u0443\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u0441 \u0434\u0438\u0441\u0442\u0438\u043d\u043a\u0442\u043e\u043c (\u0443\u0431\u0438\u0440\u0430\u0435\u0442 \u0434\u0443\u0431\u043b\u0438)<\/td>\n<\/tr>\n<\/table>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440<\/b><\/p>\n<div class=\"spoiler_text\">\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 (\u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 <b>MULTISET EXCEPT DISTINCT<\/b>)  <\/p>\n<pre><code class=\"sql\"> DECLARE      TYPE nested_typ IS TABLE OF NUMBER;      nt1 nested_typ := nested_typ(1,2,3);      nt2 nested_typ := nested_typ(3,2,1);      nt3 nested_typ := nested_typ(2,3,1,3);      nt4 nested_typ := nested_typ(1,2,4);      answer nested_typ;  BEGIN      answer := nt1 MULTISET UNION nt4;      answer := nt1 MULTISET UNION nt3;      answer := nt1 MULTISET UNION DISTINCT nt3;     answer := nt2 MULTISET INTERSECT nt3;      answer := nt2 MULTISET INTERSECT DISTINCT nt3;      answer := SET(nt3);      answer := nt3 MULTISET EXCEPT nt2;      answer := nt3 MULTISET EXCEPT DISTINCT nt2;  END; <\/code><\/pre>\n<p>  <b>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/b>  <\/p>\n<pre><code class=\"sql\"> nt1 MULTISET UNION nt4: 1 2 3 1 2 4  nt1 MULTISET UNION nt3: 1 2 3 2 3 1 3  nt1 MULTISET UNION DISTINCT nt3: 1 2 3  nt2 MULTISET INTERSECT nt3: 3 2 1  nt2 MULTISET INTERSECT DISTINCT nt3: 3 2 1  SET(nt3): 2 3 1  nt3 MULTISET EXCEPT nt2: 3  nt3 MULTISET EXCEPT DISTINCT nt2: empty set <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <a name=\"Seven\"><\/a><\/p>\n<h5><b>\u041b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u043c\u0438<\/b><\/h5>\n<p>  <\/p>\n<table>\n<tr>\n<th>\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u044f<\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<\/tr>\n<tr>\n<td>IS NULL (IS NOT NULL)<\/td>\n<td>\u0421\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c NULL<\/td>\n<\/tr>\n<tr>\n<td>\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 =<\/td>\n<td>\u0414\u0432\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 nested table \u043c\u043e\u0436\u043d\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c, \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0438 \u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0442\u0438\u043f\u0430 record. \u041e\u043d\u0438 \u0440\u0430\u0432\u043d\u044b, \u0435\u0441\u043b\u0438 \u0438\u043c\u0435\u044e\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0435 \u043d\u0430\u0431\u043e\u0440\u044b \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 (\u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u043f\u043e\u0440\u044f\u0434\u043a\u0430 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438) <\/td>\n<\/tr>\n<tr>\n<td>IN<\/td>\n<td>\u0421\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e \u0441 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u0432 \u0441\u043a\u043e\u0431\u043a\u0430\u0445<\/td>\n<\/tr>\n<tr>\n<td>SUBMULTISET OF<\/td>\n<td>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u043f\u043e\u0434\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e\u043c \u0434\u0440\u0443\u0433\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/td>\n<\/tr>\n<tr>\n<td>MEMBER OF<\/td>\n<td>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442(\u043e\u0431\u044a\u0435\u043a\u0442) \u0447\u0430\u0441\u0442\u044c\u044e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/td>\n<\/tr>\n<tr>\n<td>IS A SET<\/td>\n<td>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043b\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u0434\u0443\u0431\u043b\u0438<\/td>\n<\/tr>\n<tr>\n<td>IS EMPTY<\/td>\n<td>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u043f\u0443\u0441\u0442\u0430 \u043b\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f<\/td>\n<\/tr>\n<\/table>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0441 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u043c\u0438<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"sql\"> DECLARE     TYPE nested_typ IS TABLE OF NUMBER;     nt1 nested_typ := nested_typ(1, 2, 3);     nt2 nested_typ := nested_typ(3, 2, 1);     nt3 nested_typ := nested_typ(2, 3, 1, 3);     nt4 nested_typ := nested_typ(); BEGIN     IF nt1 = nt2 THEN         DBMS_OUTPUT.PUT_LINE('nt1 = nt2');     END IF;      IF (nt1 IN (nt2, nt3, nt4)) THEN         DBMS_OUTPUT.PUT_LINE('nt1 IN (nt2,nt3,nt4)');     END IF;      IF (nt1 SUBMULTISET OF nt3) THEN         DBMS_OUTPUT.PUT_LINE('nt1 SUBMULTISET OF nt3');     END IF;      IF (3 MEMBER OF nt3) THEN         DBMS_OUTPUT.PUT_LINE(\u20183 MEMBER OF nt3');     END IF;      IF (nt3 IS NOT A SET) THEN         DBMS_OUTPUT.PUT_LINE('nt3 IS NOT A SET');     END IF;      IF (nt4 IS EMPTY) THEN         DBMS_OUTPUT.PUT_LINE('nt4 IS EMPTY');     END IF; END;  <\/code><\/pre>\n<p>  <b>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/b>  <\/p>\n<pre><code class=\"sql\"> nt1 = nt2 nt1 IN (nt2,nt3,nt4) nt1 SUBMULTISET OF nt3 3 MEMBER OF nt3 nt3 IS NOT A SET nt4 IS EMPTY  <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <a name=\"Eight\"><\/a><\/p>\n<h5><b>\u041c\u0435\u0442\u043e\u0434\u044b \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439<\/b><\/h5>\n<p>  \u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0432\u044b\u0437\u043e\u0432\u0430 \u043c\u0435\u0442\u043e\u0434\u043e\u0432: <\/p>\n<pre><code class=\"sql\">collection_name.method <\/code><\/pre>\n<p>  <\/p>\n<table>\n<tr>\n<th>\u041c\u0435\u0442\u043e\u0434<\/th>\n<th>\u0422\u0438\u043f<\/th>\n<th>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/th>\n<th>Index by table<\/th>\n<th>Varray<\/th>\n<th>Nested table<\/th>\n<\/tr>\n<tr>\n<td>DELETE<\/td>\n<td>\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430<\/td>\n<td>\u0423\u0434\u0430\u043b\u044f\u0435\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0438\u0437 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/td>\n<td>\u0414\u0430<\/td>\n<td>\u041d\u0435\u0442<\/td>\n<td>\u0414\u0430<\/td>\n<\/tr>\n<tr>\n<td>TRIM<\/td>\n<td>\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430<\/td>\n<td>\u0423\u0434\u0430\u043b\u044f\u0435\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441 \u043a\u043e\u043d\u0446\u0430 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 (\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u043c \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438)<\/td>\n<td>\u041d\u0435\u0442<\/td>\n<td>\u0414\u0430<\/td>\n<td>\u0414\u0430<\/td>\n<\/tr>\n<tr>\n<td>EXTEND<\/td>\n<td>\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430<\/td>\n<td>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0432 \u043a\u043e\u043d\u0435\u0446 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/td>\n<td>\u041d\u0435\u0442<\/td>\n<td>\u0414\u0430<\/td>\n<td>\u0414\u0430<\/td>\n<\/tr>\n<tr>\n<td>EXISTS<\/td>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f<\/td>\n<td>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 TRUE, \u0435\u0441\u043b\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/td>\n<td>\u0414\u0430<\/td>\n<td>\u0414\u0430<\/td>\n<td>\u0414\u0430<\/td>\n<\/tr>\n<tr>\n<td>FIRST<\/td>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f<\/td>\n<td>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/td>\n<td>\u0414\u0430<\/td>\n<td>\u0414\u0430<\/td>\n<td>\u0414\u0430<\/td>\n<\/tr>\n<tr>\n<td>LAST<\/td>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f<\/td>\n<td>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/td>\n<td>\u0414\u0430<\/td>\n<td>\u0414\u0430<\/td>\n<td>\u0414\u0430<\/td>\n<\/tr>\n<tr>\n<td>COUNT<\/td>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f<\/td>\n<td>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/td>\n<td>\u0414\u0430<\/td>\n<td>\u0414\u0430<\/td>\n<td>\u0414\u0430<\/td>\n<\/tr>\n<tr>\n<td>LIMIT<\/td>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f<\/td>\n<td>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f<\/td>\n<td>\u041d\u0435\u0442<\/td>\n<td>\u0414\u0430<\/td>\n<td>\u041d\u0435\u0442<\/td>\n<\/tr>\n<tr>\n<td>PRIOR<\/td>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f<\/td>\n<td>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/td>\n<td>\u0414\u0430<\/td>\n<td>\u0414\u0430<\/td>\n<td>\u0414\u0430<\/td>\n<\/tr>\n<tr>\n<td>NEXT<\/td>\n<td>\u0424\u0443\u043d\u043a\u0446\u0438\u044f<\/td>\n<td>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u043d\u0434\u0435\u043a\u0441 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/td>\n<td>\u0414\u0430<\/td>\n<td>\u0414\u0430<\/td>\n<td>\u0414\u0430<\/td>\n<\/tr>\n<\/table>\n<p>  <a name=\"Nine\"><\/a><\/p>\n<h6><b>Delete<\/b><\/p>\n<h6>\n<ul>\n<li>Delete \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b. \u0421\u0440\u0430\u0437\u0443 \u0436\u0435 \u043e\u0447\u0438\u0449\u0430\u0435\u0442 \u043f\u0430\u043c\u044f\u0442\u044c, \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u0443\u044e \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u044d\u0442\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432. <\/li>\n<li>Delete(n) \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c n. \u041f\u0430\u043c\u044f\u0442\u044c \u043d\u0435 \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u0435\u0442. \u042d\u043b\u0435\u043c\u0435\u043d\u0442 \u043c\u043e\u0436\u043d\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c (\u0442.\u0435. \u0437\u0430\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439) \u0438 \u043e\u043d \u0437\u0430\u0439\u043c\u0435\u0442 \u0442\u0443 \u0436\u0435 \u043f\u0430\u043c\u044f\u0442\u044c, \u0447\u0442\u043e \u0437\u0430\u043d\u0438\u043c\u0430\u043b \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439. <\/li>\n<li>Delete(n, m) \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c\u0438 \u0432 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043a\u0435 n..m <\/li>\n<li>\u0415\u0441\u043b\u0438 \u0443\u0434\u0430\u043b\u044f\u0435\u043c\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0432 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043d\u0435\u0442, \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u0442. <\/li>\n<\/ul>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"sql\"> DECLARE     TYPE nt_type IS TABLE OF NUMBER;     nt nt_type := nt_type(11, 22, 33, 44, 55, 66); BEGIN     nt.DELETE(2); -- \u0423\u0434\u0430\u043b\u044f\u0435\u0442 \u0432\u0442\u043e\u0440\u043e\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442      nt(2) := 2222; -- \u0412\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 2-\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442      nt.DELETE(2, 4); -- \u0423\u0434\u0430\u043b\u044f\u0435\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441\u043e 2-\u0433\u043e \u043f\u043e 4-\u0439     nt(3) := 3333; -- \u0412\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 3-\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442     nt.DELETE; -- \u0423\u0434\u0430\u043b\u044f\u0435\u0442 \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b END; <\/code><\/pre>\n<p>  <b>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b:<\/b>  <\/p>\n<pre><code class=\"sql\"> beginning: 11 22 33 44 55 66  after delete(2): 11 33 44 55 66  after nt(2) := 2222: 11 2222 33 44 55 66  after delete(2, 4): 11 55 66  after nt(3) := 3333: 11 3333 55 66  after delete:  empty set  <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <a name=\"Ten\"><\/a><\/p>\n<h6><b>Trim<\/b><\/h6>\n<p>  <\/p>\n<ul>\n<li>Trim() \u2013 \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u043e\u0434\u0438\u043d \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0432 \u043a\u043e\u043d\u0446\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438. \u0415\u0441\u043b\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043d\u0435\u0442, \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 SUBSCRIPT_BEYOND_COUNT<\/li>\n<li>Trim(n) \u2013 \u0443\u0434\u0430\u043b\u044f\u0435\u0442 n \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u043a\u043e\u043d\u0446\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438. \u0415\u0441\u043b\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043c\u0435\u043d\u044c\u0448\u0435, \u0447\u0435\u043c n, \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 SUBSCRIPT_BEYOND_COUNT<\/li>\n<li>\u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u043c \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438. \u0422.\u0435. \u0435\u0441\u043b\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0431\u044b\u043b \u0443\u0434\u0430\u043b\u0435\u043d \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Delete, \u0432\u044b\u0437\u043e\u0432 Trim() \u0443\u0434\u0430\u043b\u0438\u0442 \u0443\u0436\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0439 \u0440\u0430\u043d\u0435\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442. <\/li>\n<li>\u0421\u0440\u0430\u0437\u0443 \u043e\u0447\u0438\u0449\u0430\u0435\u0442 \u043f\u0430\u043c\u044f\u0442\u044c, \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u0443\u044e \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u044d\u0442\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432<\/li>\n<li>\u041b\u0443\u0447\u0448\u0435 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u0438 \u0441 Delete()<\/li>\n<\/ul>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"sql\"> DECLARE     TYPE nt_type IS TABLE OF NUMBER;     nt nt_type := nt_type(11, 22, 33, 44, 55, 66); BEGIN     nt.TRIM; -- Trim last element      nt.DELETE(4); -- Delete fourth element      nt.TRIM(2); -- Trim last two elements  END; <\/code><\/pre>\n<p>  <b>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/b>  <\/p>\n<pre><code class=\"sql\"> beginning: 11 22 33 44 55 66  after TRIM: 11 22 33 44 55  after DELETE(4): 11 22 33 55  after TRIM(2): 11 22 33 <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <a name=\"Eleven\"><\/a><\/p>\n<h6><b>Extend<\/b><\/h6>\n<p>  <\/p>\n<ul>\n<li>EXTEND \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0434\u0438\u043d \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c null \u0432 \u043a\u043e\u043d\u0435\u0446 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 <\/li>\n<li>EXTEND(n) \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 n \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c null \u0432 \u043a\u043e\u043d\u0435\u0446 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 <\/li>\n<li>EXTEND(n,i) \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 n \u043a\u043e\u043f\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c i \u0432 \u043a\u043e\u043d\u0435\u0446 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438. \u0415\u0441\u043b\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u0438\u043c\u0435\u0435\u0442 NOT NULL \u043a\u043e\u043d\u0441\u0442\u0440\u0435\u0439\u043d\u0442, \u0442\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u043e\u0439 \u0444\u043e\u0440\u043c\u043e\u0439 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f.<\/li>\n<li>\u0415\u0441\u043b\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0431\u044b\u043b\u0438 \u0440\u0430\u043d\u0435\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0435\u0442\u043e\u0434\u0430 Delete, Extend \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0432\u0448\u0438\u0435\u0441\u044f \u0437\u0430 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0435\u0439 \u044f\u0447\u0435\u0439\u043a\u0438 \u043f\u0430\u043c\u044f\u0442\u0438, \u0430 \u0434\u043e\u0431\u0430\u0432\u0438\u0442 \u043d\u043e\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 (\u0432\u044b\u0434\u0435\u043b\u0438\u0442 \u043d\u043e\u0432\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c)<\/li>\n<\/ul>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"sql\"> DECLARE     TYPE nt_type IS TABLE OF NUMBER;     nt nt_type := nt_type(11, 22, 33); BEGIN     nt.EXTEND(2, 1); -- Append two copies of first element      nt.DELETE(5); -- Delete fifth element     nt.EXTEND; -- Append one null element  END; <\/code><\/pre>\n<p>  <b>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/b>  <\/p>\n<pre><code class=\"sql\"> beginning: 11 22 33  after EXTEND(2,1): 11 22 33 11 11  after DELETE(5): 11 22 33 11  after EXTEND: 11 22 33 11  <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <a name=\"Twelve\"><\/a><\/p>\n<h6><b>Exists<\/b><\/h6>\n<p>  <\/p>\n<ul>\n<li>\u0414\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 false<\/li>\n<li>\u041f\u0440\u0438 \u0432\u044b\u0445\u043e\u0434\u0435 \u0437\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 false<\/li>\n<\/ul>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"sql\"> DECLARE     TYPE NumList IS TABLE OF INTEGER;     n NumList := NumList(1, 3, 5, 7); BEGIN     n.DELETE(2); -- Delete second element      FOR i IN 1 .. 6     LOOP         IF n.EXISTS(i)         THEN             DBMS_OUTPUT.PUT_LINE('n(\u2018||i||') = ' || n(i));         ELSE             DBMS_OUTPUT.PUT_LINE('n(\u2018||i||') does not exist');         END IF;     END LOOP; END; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <a name=\"Thirteen\"><\/a><\/p>\n<h6><b>First \u0438 Last<\/b><\/h6>\n<p>  <\/p>\n<ul>\n<li>\u0414\u043b\u044f varray First \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0435\u0434\u0438\u043d\u0438\u0446\u0443, Last \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0442\u043e \u0436\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0447\u0442\u043e \u0438 Count<\/li>\n<\/ul>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"sql\"> DECLARE     TYPE aa_type_str IS TABLE OF INTEGER INDEX BY VARCHAR2(10);     aa_str aa_type_str; BEGIN     aa_str('Z') := 26;     aa_str('A') := 1;     aa_str('K') := 11;     aa_str('R') := 18;      DBMS_OUTPUT.PUT_LINE('Before deletions:');     DBMS_OUTPUT.PUT_LINE('FIRST = ' || aa_str.FIRST);     DBMS_OUTPUT.PUT_LINE('LAST = ' || aa_str.LAST);      aa_str.DELETE('A');     aa_str.DELETE('Z');      DBMS_OUTPUT.PUT_LINE('After deletions:');     DBMS_OUTPUT.PUT_LINE('FIRST = ' || aa_str.FIRST);     DBMS_OUTPUT.PUT_LINE('LAST = ' || aa_str.LAST); END; <\/code><\/pre>\n<p>  <b>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/b>  <\/p>\n<pre><code class=\"sql\"> Before deletions: FIRST = A LAST = Z After deletions: FIRST = K LAST = R  <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <a name=\"Fourteen\"><\/a><\/p>\n<h6><b>Count<\/b><\/h6>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"sql\"> DECLARE     TYPE NumList IS VARRAY(10) OF INTEGER;     n NumList := NumList(1, 3, 5, 7);  BEGIN     DBMS_OUTPUT.PUT('n.COUNT = ' || n.COUNT || ', ');     DBMS_OUTPUT.PUT_LINE('n.LAST = ' || n.LAST);      n.EXTEND(3);     DBMS_OUTPUT.PUT('n.COUNT = ' || n.COUNT || ', ');     DBMS_OUTPUT.PUT_LINE('n.LAST = ' || n.LAST);      n.TRIM(5);     DBMS_OUTPUT.PUT('n.COUNT = ' || n.COUNT || ', ');     DBMS_OUTPUT.PUT_LINE('n.LAST = ' || n.LAST); END; <\/code><\/pre>\n<p>  <b>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<\/b>  <\/p>\n<pre><code class=\"sql\"> n.COUNT = 4, n.LAST = 4 n.COUNT = 7, n.LAST = 7 n.COUNT = 2, n.LAST = 2  <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <a name=\"Fifteen\"><\/a><\/p>\n<h6><b>Limit<\/b><\/h6>\n<p>  <\/p>\n<ul>\n<li>\u0414\u043b\u044f varray \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438, \u0434\u043b\u044f \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 null<\/li>\n<\/ul>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"sql\"> DECLARE     TYPE aa_type IS TABLE OF INTEGER INDEX BY PLS_INTEGER;     aa aa_type; -- associative array      TYPE va_type IS VARRAY(4) OF INTEGER;     va va_type := va_type(2, 4); -- varray      TYPE nt_type IS TABLE OF INTEGER;     nt nt_type := nt_type(1, 3, 5); -- nested table  BEGIN     aa(1) := 3;     aa(2) := 6;     aa(3) := 9;     aa(4) := 12;     DBMS_OUTPUT.PUT_LINE('aa.COUNT = ' || aa.count);     DBMS_OUTPUT.PUT_LINE('aa.LIMIT = ' || aa.limit);      DBMS_OUTPUT.PUT_LINE('va.COUNT = ' || va.count);     DBMS_OUTPUT.PUT_LINE('va.LIMIT = ' || va.limit);      DBMS_OUTPUT.PUT_LINE('nt.COUNT = ' || nt.count);     DBMS_OUTPUT.PUT_LINE('nt.LIMIT = ' || nt.limit); END; <\/code><\/pre>\n<p>  <b>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/b>  <\/p>\n<pre><code class=\"sql\"> aa.COUNT = 4 aa.LIMIT =  va.COUNT = 2 va.LIMIT = 4 nt.COUNT = 3 nt.LIMIT =  <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <a name=\"Sixteen\"><\/a><\/p>\n<h6><b>Prior \u0438 Next<\/b><\/h6>\n<p>  <\/p>\n<ul>\n<li>\u041f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0442\u044c\u0441\u044f \u043f\u043e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/li>\n<li>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442 \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e\/\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 (\u0438\u043b\u0438 null, \u0435\u0441\u043b\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043d\u0435\u0442)<\/li>\n<\/ul>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"sql\"> DECLARE     TYPE nt_type IS TABLE OF NUMBER;     nt nt_type := nt_type(18, NULL, 36, 45, 54, 63);  BEGIN     nt.DELETE(4);     DBMS_OUTPUT.PUT_LINE('nt(4) was deleted.');      FOR i IN 1 .. 7     LOOP         DBMS_OUTPUT.PUT('nt.PRIOR(' || i || ') = ');         print(nt.PRIOR(i));         DBMS_OUTPUT.PUT('nt.NEXT(' || i || ')  = ');         print(nt.NEXT(i));     END LOOP; END; <\/code><\/pre>\n<p>  <b>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/b>  <\/p>\n<pre><code class=\"sql\"> nt(4) was deleted. nt.PRIOR(1) =  nt.NEXT(1)  = 2 nt.PRIOR(2) = 1 nt.NEXT(2)  = 3 nt.PRIOR(3) = 2 nt.NEXT(3)  = 5 nt.PRIOR(4) = 3 nt.NEXT(4)  = 5 nt.PRIOR(5) = 3 nt.NEXT(5)  = 6 nt.PRIOR(6) = 5 nt.NEXT(6)  =  nt.PRIOR(7) = 6 nt.NEXT(7)  =  <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <a name=\"Seventeen\"><\/a><\/p>\n<h5><b>Bulk Collect<\/b><\/h5>\n<p>  <\/p>\n<ul>\n<li>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b sql-\u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0432 PL\/SQL \u043f\u0430\u0447\u043a\u0430\u043c\u0438, \u0430 \u043d\u0435 \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443<\/li>\n<li>SELECT BULK COLLECT INTO<\/li>\n<li>FETCH BULK COLLECT INTO [LIMIT]<\/li>\n<li>RETURNING BULK COLLECT INTO<\/li>\n<li>\u041d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u0430\u043c\u0438 (\u043a\u0440\u043e\u043c\u0435 \u0442\u0435\u0445, \u0447\u0442\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u044b pls_integer) <\/li>\n<\/ul>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"sql\"> DECLARE     TYPE NumTab IS TABLE OF employees.employee_id%TYPE;     TYPE NameTab IS TABLE OF employees.last_name%TYPE;      CURSOR c1 IS SELECT employee_id,last_name         FROM   employees         WHERE  salary &gt; 10000         ORDER  BY last_name;      enums NumTab;     names NameTab; BEGIN     SELECT employee_id, last_name      BULK COLLECT INTO   enums, names     FROM   employees     ORDER  BY employee_id;      OPEN c1;     LOOP         FETCH c1 BULK COLLECT INTO enums, names LIMIT 10;         EXIT WHEN names.COUNT = 0;         do_something();     END LOOP;     CLOSE c1;      DELETE FROM emp_temp WHERE  department_id = 30     RETURNING employee_id, last_name BULK COLLECT INTO enums, names; END; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <a name=\"Eighteen\"><\/a><\/p>\n<h5><b>\u0426\u0438\u043a\u043b forall<\/b><\/h5>\n<p>  <\/p>\n<ul>\n<li>\u043f\u043e\u0441\u044b\u043b\u0430\u0435\u0442 DML \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0438\u0437 PL\/SQL \u0432 SQL \u043f\u0430\u0447\u043a\u0430\u043c\u0438, \u0430 \u043d\u0435 \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443<\/li>\n<li>\u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d DML \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440<\/li>\n<li>\u0434\u043b\u044f \u0440\u0430\u0437\u0440\u044f\u0436\u0435\u043d\u043d\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0444\u043e\u0440\u043c\u0430: <br \/> \n<pre><code class=\"sql\">FORALL i IN INDICES OF cust_tab<\/code><\/pre>\n<p> (\u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0434\u043b\u044f \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432, \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438)<\/li>\n<li>\u0441 \u0440\u0430\u0437\u0440\u044f\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u043c\u0438 (\u0438\u043b\u0438 \u0441 \u0447\u0430\u0441\u0442\u044c\u044e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438) \u0443\u0434\u043e\u0431\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u043d\u0434\u0435\u043a\u0441-\u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 (of pls_integer). \u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f:<br \/> \n<pre><code class=\"sql\">FORALL i IN VALUES OF rejected_order_tab<\/code><\/pre>\n<\/li>\n<\/ul>\n<ul>\n<li><b>SQL%BULK_ROWCOUNT<\/b> \u2013 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f, \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u043e\u043a, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0432\u043b\u0438\u044f\u043b \u043a\u0430\u0436\u0434\u044b\u0439 dml \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440<\/li>\n<li><b>SQL%ROWCOUNT<\/b> \u2013 \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u043e\u043a, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0432\u043b\u0438\u044f\u043b\u0438 dml-\u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0432 \u0446\u0438\u043a\u043b\u0435 forall<\/li>\n<\/ul>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"sql\"> DECLARE     TYPE NumList IS TABLE OF NUMBER;     depts NumList := NumList(10, 20, 30);      TYPE enum_t IS TABLE OF employees.employee_id%TYPE;     e_ids enum_t;      TYPE dept_t IS TABLE OF employees.department_id%TYPE;     d_ids dept_t; BEGIN     FORALL j IN depts.FIRST .. depts.LAST         DELETE FROM emp_temp         WHERE  department_id = depts(j)         RETURNING employee_id, department_id BULK COLLECT INTO e_ids, d_ids; END; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <a name=\"Nineteen\"><\/a><\/p>\n<h6><b>Exceptions in forall<\/b><\/h6>\n<p>  <\/p>\n<ul>\n<li>\u041f\u0440\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0432 \u043b\u044e\u0431\u043e\u043c \u0438\u0437 dml-\u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u0432 \u0446\u0438\u043a\u043b\u0435, \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u0442\u043a\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f<\/li>\n<li>\u0415\u0441\u043b\u0438 \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043e\u0448\u0438\u0431\u043e\u043a, \u0432 \u043d\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0432\u0448\u0438\u0435\u0441\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b dml (\u044d\u0442\u043e \u0442\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b\u0438\u0441\u044c \u0434\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f).<\/li>\n<li>\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\n<pre><code class=\"sql\">FORALL j IN collection.FIRST.. collection.LAST SAVE EXCEPTIONS <\/code><\/pre>\n<p>   \u0413\u0435\u043d\u0435\u0440\u0438\u0442 ORA-24381 \u0432 \u043a\u043e\u043d\u0446\u0435, \u0435\u0441\u043b\u0438 \u0432 \u0446\u0438\u043a\u043b\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u043b\u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f<\/li>\n<li>SQL%BULK_EXCEPTIONS \u2013 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0432\u0441\u0435\u0445 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0446\u0438\u043a\u043b\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f\u0445<br \/>   .Count<br \/>   .ERROR_INDEX \u2013 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 j, \u043f\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 (sql%bulk_exception(i).error_index)<br \/>   .ERROR_CODE \u2014 \u043a\u043e\u0434 \u0432\u043e\u0437\u043d\u0438\u043a\u0448\u0435\u0439 \u043e\u0448\u0438\u0431\u043a\u0438. \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0437\u0432\u043b\u0435\u0447\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 sqlerrm: SQLERRM(-(SQL%BULK_EXCEPTIONS(i).ERROR_CODE)) <\/li>\n<\/ul>\n<p>  <a name=\"Twenty\"><\/a><\/p>\n<h5><b>Collection exceptions<\/b><\/h5>\n<p>  <\/p>\n<ul>\n<li><b>COLLECTION_IS_NULL<\/b> \u2013 \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043d\u0435\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0435\u0439<\/li>\n<li><b>NO_DATA_FOUND <\/b>\u2013 \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442<\/li>\n<li><b>SUBSCRIPT_BEYOND_COUNT <\/b>\u2013 \u0432\u044b\u0445\u043e\u0434 \u0437\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/li>\n<li><b>SUBSCRIPT_OUTSIDE_LIMIT<\/b> \u2013 \u0438\u043d\u0434\u0435\u043a\u0441 \u0432\u043d\u0435 \u043f\u0440\u0435\u0434\u0435\u043b\u0430 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u043e\u0433\u043e \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430<\/li>\n<li><b>VALUE_ERROR <\/b>\u2013 \u0438\u043d\u0434\u0435\u043a\u0441 \u0440\u0430\u0432\u0435\u043d null \u0438\u043b\u0438 \u043d\u0435 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432 integer <\/li>\n<\/ul>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0439, \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044e\u0449\u0438\u0445 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"sql\"> DECLARE     TYPE NumList IS TABLE OF NUMBER;     nums NumList; BEGIN     nums(1) := 1; -- raises COLLECTION_IS_NULL     nums := NumList(1, 2);     nums(NULL) := 3; -- raises VALUE_ERROR     nums(0) := 3; -- raises SUBSCRIPT_BEYOND_COUNT     nums(3) := 3; --raises SUBSCRIPT_OUTSIDE_LIMIT     nums.Delete(1);     IF nums(1) = 1 THEN ... -- raises NO_DATA_FOUND END; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <a name=\"TwentyOne\"><\/a><\/p>\n<h5><b>DBMS_SESSION.FREE_UNUSED_USER_MEMORY<\/b><\/h5>\n<ul>\n<li>\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 DBMS_SESSION.FREE_UNUSED_USER_MEMORY \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0443\u044e \u0431\u043e\u043b\u0435\u0435 \u043f\u0430\u043c\u044f\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0435<\/li>\n<li>\u0412 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 Oracle \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443 \u0441\u043e\u0432\u0435\u0442\u0443\u044e\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u00ab\u0440\u0435\u0434\u043a\u043e \u0438 \u0431\u043b\u0430\u0433\u043e\u0440\u0430\u0437\u0443\u043c\u043d\u043e\u00bb. <\/li>\n<li>\u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 <b>Dedicated Server<\/b> \u0432\u044b\u0437\u043e\u0432 \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0443\u044e PGA \u043f\u0430\u043c\u044f\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435<\/li>\n<li>\u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 <b>Shared Server<\/b> \u0432\u044b\u0437\u043e\u0432 \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c \u0432 <b>Shared Pool<\/b><\/li>\n<\/ul>\n<p>  <b>\u0412 \u043a\u0430\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u043d\u0443\u0436\u043d\u043e \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u044c: <\/b>  <\/p>\n<ul>\n<li>\u0411\u043e\u043b\u044c\u0448\u0438\u0435 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438, \u043a\u043e\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u0441\u044f \u043e\u0431\u043b\u0430\u0441\u0442\u044c sort_area_size <\/li>\n<li>\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u0445 PL\/SQL \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440 \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 <\/li>\n<li>\u0425\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043e\u0431\u044a\u0435\u043c\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0438\u043d\u0434\u0435\u043a\u0441\u043d\u044b\u0445 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0445 PL\/SQL<\/li>\n<\/ul>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"sql\"> CREATE PACKAGE foobar    type number_idx_tbl is table of number indexed by binary_integer;     store1_table  number_idx_tbl;     --  PL\/SQL indexed table    store2_table  number_idx_tbl;     --  PL\/SQL indexed table    store3_table  number_idx_tbl;     --  PL\/SQL indexed table    ... END;            --  end of foobar  DECLARE    ...    empty_table   number_idx_tbl;     --  uninitialized (&quot;empty&quot;) version BEGIN    FOR i in 1..1000000 loop      store1_table(i) := i;           --  load data    END LOOP;    ...    store1_table := empty_table;      --  &quot;truncate&quot; the indexed table    ...     -    dbms_session.free_unused_user_memory;  -- give memory back to system     store1_table(1) := 100;           --  index tables still declared;    store2_table(2) := 200;           --  but truncated.    ... END; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0412\u0438\u0434\u0435\u043e-\u0437\u0430\u043f\u0438\u0441\u044c \u043b\u0435\u043a\u0446\u0438\u0438, \u043f\u043e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430\u043c \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0438 \u0431\u044b\u043b\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u044d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f:<\/p>\n<p>  <iframe loading=\"lazy\" width=\"560\" height=\"349\" src=\"\/\/www.youtube.com\/embed\/y6aTJBHNgBQ?wmode=opaque\" frameborder=\"0\" allowfullscreen><\/iframe><\/h6>\n<\/h6>\n<div class=\"clear\"><\/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=\"http:\/\/habrahabr.ru\/post\/254355\/\"> http:\/\/habrahabr.ru\/post\/254355\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p> \t\t\t<em>\u0421\u0442\u0430\u0442\u044c\u044f \u0438\u043c\u0435\u0435\u0442 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0442\u0430\u043a\u0438 \u0442\u0435\u0437\u0438\u0441\u043d\u044b\u0439 \u0441\u0442\u0438\u043b\u044c. \u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u043c \u0432\u043d\u0438\u0437\u0443 \u0441\u0442\u0430\u0442\u044c\u0438 \u0432\u0438\u0434\u0435\u043e \u0441 \u0437\u0430\u043f\u0438\u0441\u044c\u044e \u043b\u0435\u043a\u0446\u0438\u0438 \u043f\u043e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u043c Oracle.<\/em><\/p>\n<p>  \u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e \u0432 \u0442\u043e\u043c \u0438\u043b\u0438 \u0438\u043d\u043e\u043c \u0432\u0438\u0434\u0435 \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u044f\u0437\u044b\u043a\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0432\u0435\u0437\u0434\u0435 \u0438\u043c\u0435\u044e\u0442 \u0441\u0445\u043e\u0436\u0443\u044e \u0441\u0443\u0442\u044c \u0432 \u043f\u043b\u0430\u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f. \u0410 \u0438\u043c\u0435\u043d\u043d\u043e \u2013 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043d\u0430\u0431\u043e\u0440 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043e\u0434\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0438 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u043d\u0430\u0434 \u0432\u0441\u0435\u043c \u043d\u0430\u0431\u043e\u0440\u043e\u043c \u043a\u0430\u043a\u0438\u0435-\u043b\u0438\u0431\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f, \u043b\u0438\u0431\u043e \u0432 \u0446\u0438\u043a\u043b\u0435 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u043e\u0434\u043d\u043e\u0442\u0438\u043f\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c\u0438 \u043d\u0430\u0431\u043e\u0440\u0430.<\/p>\n<p>  \u0422\u0430\u043a\u0438\u043c \u0436\u0435 \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0438 \u0432 Oracle.<\/p>\n<h4><b>\u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u0441\u0442\u0430\u0442\u044c\u0438<\/b><\/h4>\n<p>  <\/p>\n<ul>\n<li><a href=\"#One\">\u041e\u0431\u0449\u0438\u0435 \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u0445 \u0432 pl\/sql <\/a><\/li>\n<li><a href=\"#Two\">\u0422\u0438\u043f\u044b \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 <\/a><\/li>\n<li><a href=\"#Three\">\u0410\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 <\/a><\/li>\n<li><a href=\"#Four\">Varray <\/a><\/li>\n<li><a href=\"#Five\">Nested table <\/a><\/li>\n<li><a href=\"#Six\">Set operations \u0441 nested tables <\/a><\/li>\n<li><a href=\"#Seven\">\u041b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u043c\u0438 <\/a><\/li>\n<li><a href=\"#Eight\">\u041c\u0435\u0442\u043e\u0434\u044b \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 <\/a>\n<ul>\n<li><a href=\"#Nine\">Delete <\/a><\/li>\n<li><a href=\"#Ten\">Trim <\/a><\/li>\n<li><a href=\"#Eleven\">Extend <\/a><\/li>\n<li><a href=\"#Twelve\">Exists <\/a><\/li>\n<li><a href=\"#Thirteen\">First \u0438 Last <\/a><\/li>\n<li><a href=\"#Fourteen\">Count<\/a><\/li>\n<li><a href=\"#Fifteen\">Limit <\/a><\/li>\n<li><a href=\"#Sixteen\">Prior \u0438 Next <\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#Seventeen\">Bulk Collect <\/a><\/li>\n<li><a href=\"#Eighteen\">\u0426\u0438\u043a\u043b forall<\/a> <br \/> \n<ul>\n<li><a href=\"#Nineteen\">Exceptions in forall <\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#Twenty\">Collection exceptions <\/a><\/li>\n<li><a href=\"#TwentyOne\">DBMS_SESSION.FREE_UNUSED_USER_MEMORY<\/a><\/li>\n<\/ul>\n<p>  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-254070","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/254070","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=254070"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/254070\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=254070"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=254070"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=254070"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}