Oracle 游标

时间:2022-01-21 16:36:37

游标的简介

游标的概念

游标是从数据表中提取出来的数据,以临时表的形式存放在内存中,在游标中有一个数据指针,在初始状态下指向的是首记录,利用fetch语句可以移动该指针,从而对游标中的数据进行各种操作,然后将操作结果写回数据表中。

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAy8AAAGOCAIAAAARkKsFAAAgAElEQVR4nOydeVhT19q3n3++c/qd9z1tz9dTa3vqcKxT68SgiKkDtYpURXFARKY47TpLBYs4BBRFHKJBLYiUwSpFlKJiG6pSwSGOQARRTLcYxSFWsYgtpdLW9f2xM+zMCWTmua/fdTWsvfazVjbbcHdPAYIgCIIgCGIdLlTVFomq49IK2Skpk5SUSWqkMmuMWCOVlZRJsgpFOge1xohtB+w9AQRBEARBXAexpG57TrHf4uSOvtHgSXlzk/wWJ2uIkQ/F96H4vafwwJPq6h/Ljc/OKhRJH9S3bsSSMsnGrCK/xcmvDFkInlTvKTwfis+Nz9Y5KHhSrwxZ6EPx5yXmHC4RNzxvsuzbbx1oYwiCIAiCtBWxpI4bn93RN9otOCGSn1ckqpbVN5qyovRBfVahiBuf3dU/tqt/7MasIhNXzD1+OSAqBTwpH4q/YmdBkai6+UWLKSs2v2gpKZOk5pcGRKW87hPpzU2KSys0cVArgTaGIAiCIK4MIx+HS8Qax4ri0goPl4hLyiStPijFcLhE7EPx3YITMgtFD+sbXxLS6tx+UL9iZ0FH3+jpselFomqdw0lZfQpKxG0Zjsn5qtq4tEKm4IWq2rZsilaDNoYgCIIgLoXyaJM3N0l5Yi4gKkXbxgKiUnwoflf/WPCkXveJ9KH4cWmFphtJjVTmzU0KiEo5VSZpuxWx8/Xxy36Lk/0WJ7MPWTU8b5qXmNPVPzYxq6iN2qdvUG9ukjc3yfZOhjaGIAiCIK5AkaiakZWu/rER8dmZR0Wiytq/XhIT87Sx6dQVCS+t0Jub9MqQhX6Lk7fnFOu7rKr5RcuKnQVuwQlmDWFuhOeqe0/hZRWKCCGp+aVd/WNTDpVabzgmospab25SJD/PlpeUoY0hCIIgiBPT8LyJMRW/xckph0pr79e33Uiafm8Rnqteys/r6h8byc/TuKaq4XmTNzcpMbOo6fcWa7vR08amD2dv/seHiz5NzHna2GTt4ZTZtr+49xSezQ6SoY0hCIIgiFPS8Lwpkp/X1T/208ScW/fr/3xJLJ76xib+/uKOvtHc+GyxpI4Z1Ifil9+ss8Zw2tmQWRQRn1370CrvznDuP2kcQfEPl4ht8KtEG0MQBEEQ54M5HsbfX1zf2GQDNck4KnILTvBdtL3npNW2VLGl/Dzbe5gyv/7eMjEqhTlValXQxhAEQRDEdlyoqm3jY0jFkjpvbtKniTlPGpv+eElsmRmrM6jE/bYZa//3l4Ni0238BnVmYlSKtY+QoY0hCIIgiCURS+pKyiRxaYXzEnN8KP7rPpHgSSkzmJs0guKPoPjKFuZppdNj05nnxRt+8FWRqNqbm3Tuau0ffxEb597jxi7+sb80t9hgrF+aW5ZszbPNWEbz5FmTW3BCG58DYhi0MQRBEARpK2JJ3casIuaJEgOCE0ZQ/DW7C3cdKj15RfL4WVPLX8RArtXKTl6R7P/+8prdhSMofkffaOZhE9tzijW+OyirUDRmcfLz5hbDBa2UJVvztu4vtsvQds/Zq7Xe3CTr7T9oYwiCIAjSGppftBwuETMPoB8QnLB8R8GZq7Uv/iJtz0/Pmk5ekSzemtdrCq/3FF4kP4/54sXw+GyL1G9d1mcWNTa32HEC9s0Ea56vRBtDEARBEPOQ1TdG8vM6+kZPWJaSfkR096fG3/8kVkrlLdmWfcWDwjb+77DFCRlFjxqarDcWxkDOXK3tOXmNlfYotDEEQRAEMZUaqYw5GLZlX/GjhqbmP4nNcuenxugdBV38Y1ftLrzzU6Mth8Ywed0n8m/eC8YsTmau8LPgfoU2hiAIgiDGqZHKJkal9JrCSzsi+u1PYq/IGppW7S7s4h+7aGue9KdGO86kHSZwRfqXxy4cPVu9anfh8Ll88KSC9H+fplmgjSEIgiCIERKzigYEJxwoFjf9QRwhT5taNu0r7jI+9siZartPpv0kKrlgXUYRuyVbeNl3UXJX/9iNWUWGb4Y1DNoYgiAIguhF+qB+MDcpKrmgvqnl1z+IQ6W+qcUBZ+XCuV5Xf/5GnfJHRsh++4PcrKtfvqOgq39sXFph84uWVuxmaGMIgiAIopusQtGA4IRTFbW/tBAMhh22jTX/SX7/kzz7rWX17sLeU3itOHeJNoYgCIIgOkjJLw1ckX7vadPzFoLBsKPTxn7/k7z4i/x4r37M4uSAqJSG502m72xoYwiCIAiiSWahKISX/ewFwWDYaTRmYy/+Ii1/kfxT4hEU3/QrydDGEARBEESNzEJRKC/72QvSgMGwYrqNtfxFymrqvLlJGt+moA+0MQRBEARRwahYYwthbOzn38lTTLvPz7+bbWN//EVu3a/35iaJJXVG9zq0MQRBEASRUyOVDZie8PjXFg0bq/+d1Ddj2mXaYGN/vCTVt2VuwQlGb7REG0MQBEEQOWMWJxecrn7eQrRt7EkzeYxpZ3nSZhv78yX54lDpvMQcwzse2hiCIAiCEEJI7vHLgSvSf2khBmzs0W+Y9hJL2difL4nf4mTDj71AG0MQBEEQ0vyipYt/bO2jRqM2JvuNPGzCuHJklrYxUWWtNzfJwO6HNoYgCIIgJKtQFBaX/esfxEQbu49x0VjDxv56SXpP4Rm4vxJtDEEQBEEINz477YjILBu79yupw7hQ7v1qRRvbtr84kp+nb/dDG0MQBEEQ0sU/9kZdvbk2dvcXcucXcucXIsU4bZjf4N1frGtj12/Lek/h6dv90MYQBEGQ9o70QX0X/9imP0jrbOz2c1KLcdrcfm4LG6u9X9/VP1bfHog2hiAIgrR3mLsp22hjdCPG+WIzG3va2PS6T6S+PRBtDEEQBGnvMJfwt93GJI1E0khuYhw+zG/Kljb210sCnpS+PRBtDEEQBGnvpOaXzlmfYxEbu/mM3HhGrmMcODeekZvPbG1jhh9ygTaGIAiCtHcOl4j9l6VYzMYaSHUDuYZxyFQ3kBsNdrAxXlphXFqhvj0QbQxBEARp73z13YVuE1ZZ1saqfiaVP5OrGIdJ5c+k6me72ZgPxS8pk+jbA9HGEARBkPaFrL4xq1AUyc8bQfG7+seCJzUgOOHVEUtvP2q0rI1dfUoqnpJyjAOk4im5+tRuNvbgSWNX/1gD3x2ONoYgCIK0C2qksu05xd7cpI6+0eFx2Vv3F5+4LJHU1Tf/SX77g8xZn5N8sNQaNlZWT67Uk8sYO+VKPSmrt7ONBcak5R6/bGDnRBtDEARBXJySMokPxe89hbdka97Zq7Utf8n/ajJ/QRkb+/6SZNhcvpVs7PITcvEJuYCxeS4+IZef2NnGFm7OfW3EEsO7KNoYgiAI4rKIJXUBUSkjKP4PVyR/vCR/KP5SattY0x8klGfe91Saa2PnH5NzGBvm/GP729iGzKKYnQWZR0Xc+GwDOyraGIIgCOKaRPLz3IITCk6JmbNFRm3M4lfxa9vY2Z/I6Z9IqY0iHD9QkNOWCrnCTTra6UUJQlu9hVbm9E/k7E/2t7GMo6KI+GzmKn7DQoY2hiAIgrgaDc+b/BYnb9tfzDx107Fs7BEpeUR+MBLhOAAAzoKLRnvqz0VBHwAAGPd1q1b/mgIACBNauKz1U/KInH5kfxvLOCoasziZ/fRXA0KGNoYgCIK4FDVSmTc3SXiu+i/FX0EHtLFiGTkpIyf0RjgWAIDaYKiPkWSv5QDAB2vpVlfYEAoAMDZHR1kIFZo4ARPRGKV1OSkjxTL721jd48Yxi5LD47J/+b2FbWN/vSTb9hdH8vO0d1q0MQRBEMR1kNU39p7CuyGVvWT9CXRMGzvxkHz/kAh1R/gJAAwUZOjtYDTCTwAAqLWGu4loQ0OIBL01izBlOZTI+BwyzLGxT/a3+p3K8/1DcuKh/W0s/aio1xTesXPV2t+M9NdL8vIlcQtOEEvqNPZbtDEEQRDEdfCh+KfKJC8JcQoby4g3w1fUCBUee0CU2dPqOp6CPaw6WqH3iNRb9lEA0Due1r+KffLdA1L0wM429uy3lgnLUsLjsh8/a9L5PZWMjVVI6tyCEzT2W7QxBEEQxEXYmFW0YmfBS0Jc3sZ6xdOH7xEDWRMCAJxZZw31MbiuGT6XYv4QFsyR+6TwvkPY2O9/kqpamYFvDWds7CUh8xJzUvNL2bsu2hiCIAjiCjQ8b+roG938osWJbKxoHwUAECI8co8U1JF8VYSjASBEmK/WSPLryM54DmNj2otU2Ssva6iP/qwKAQDOzDNa8/EU7GT3PCPopd1o2xTUkSP3HMjGDHwzEtvGHtZrPpofbQxBEARxBVLzS+cl5hBGxZzTxg7Vkby75MBdcuC0oCcAzBAeYH5kJTmOAwA942jtRYoIRwEAUCv0djCSFTMAgBNxWqumpyCZ3ZOZpEajrZJ3lxxyWht7STS/thJtDEEQBHEFlBdHO7uNfX2H7M+iAKAHj95/h2iEz+PoW7T/Dh3qIT9/ODKL7L8jHGnkLCMn9LR2EbJ8hvYi4UgA8BDw2T1PC3poN7ImaT6656Odr+84vY3FpRXGpRUq9160MQRBEMQVAE+KeeECNhYdDAAAHoLNUrJXPZsVNrZXa9FeKYliVgwW7pWSvVLhR8bsJ6RUfxET0T9J89E9H43sk7qCjTHf1qXae+30rwZBEARBLInr2BhzzEkhKNNLSMZtVRLXcACg+xqa3ShPJgUAAFSk9iJWIoN1V1bvoLFUOBwAPASJ7J4lgu7ajbojHK4+MWYOwzONrqiWzNsk21VsrPlFy+s+kcpLx9DGEARBEFfAVWyMDvMAAOjOozPldgXd1tBptYRJwhqORos8GZRC4KjFGouUOSXoplVQO4uDAYAz7RS7UTgMADwECdrVNBp1RzhMfWKLgwEAhmUYXVGePbUkvdalbIwQ0tU/VvqgXr732ulfDYIgCIJYkt5TeDVSGXFyG4udoTr9l3mbpCv8CYKFKbUkpZbEK2yM+ZHdCMDp5gEA1ELWIlXkpfQsZWVhMABwAk+xG4VDAcBDEK9dUKNRd4RD1YdeGAwAMDTD6IokpZak1pI0V7Qx5f8/ELQxBEEQxDWI5OdtzykmzmxjK+UP+uKElpJsxsZqSZpcZQCAmneL8FZzAOC/q+kdtwiTedPla035gXlNzVMsUo/wQwDwEPB0LyVaBU3DhII7fhD8V70nM8SHGcZWvEV23SIpt9DGEARBEMQZKBJV+y1OJs5qY/QsT7nefJxF9knZNkZSGJECGPIlWbmKAwBdV9HbaKLM3OmcgGLmBQBQc2l5N5OYLmSX0hPhEABwF6w03lNH5JNhDTR3uvztGFhrO02SabKTdk0bk9U3dvSNVu69aGMIgiCIixAQlXK4ROyMNpYaT/XyBAAYlU2+vqNtY2RnMb2GJtt+JCtWcQCgyyp6849EO7OCAICapWvR5h+F3gDgLojRvdRw2rIu7e8OAOD9pcY81Vo0svVHsu1HV7axC1W13twk5a6LNoYgCIK4CGJJnTc36TfmcfxOZWMaT7jQYWM0SabJth9JzEoOAHRZSSdKiHa4QQBAcXUtSpQIBwGAuyBK91KSmE5BkFD3IiPr0uPc9U4pMV1+pyd7VtwgAIBB6bpnkiQhWyQWtrGLj1rW5YpO1TY6iI0pT6wzoI0hCIIgrkNWoYgbn90ebCzhJlmnlbAgAKDCdC1ad1M4EADcBZG6l5J1e5R3ZbaGTitpvYNqLQ0LAgAYuEdzAp1W0htuWsvGQjbk/XtU9MdLUrYevlz5uMWONvbbi5au/rGy+kblfos2hiAIgrgUciFrBzYWX0PiagiPlRnTAICaod6oiNADANwFi3QvNZzWrUuPcQfQteKMaQAAHntULXE1ZOlKDgBAkNAaNqY8U5n8rXhsVPp/xsWuzCiuftJiFxsTKq5xVII2hiAIgrga23OK/RYnP3jS6Ho2NjsI2DbGu0FW3yCrFJk+DQCo6awWVoTuAOAumK97qeGYv+73gnflR810zGd+LAdYBdfcILzjgk4AADBoj1WOjWlcN3budmPExrz/jItdnVlsextjLnBk77FoYwiCIIgLUiSq7j2FV3BK7Mg2lhHPMc3G6CnuaqcFB+0hShtbdYPEXicx10nMdRIYCABUoOJHVqMCNwGlvtS0CN3MWFfophpPczLy7NZzVtRdsMw6Zyp1XsV/Xto4c2Oee1jSD9dlNrOxr49fnh6brrG7oo0hCIIgrknD86aAqBQfiv/duWontzGykxYqHlnBGX+CbLipZmMrrpPPr5Po62RyIABwPioiUddZKRK8rbCd/rvVF5kYpoKbYLYpnXcLJzOyFSg03HP5dfL5dRJ7g6y+QXg1ZO1NknCTWOm6MQP3VH5zsfaDoAReZrENbOz2/Xq34ISG500a+yraGIIgCOLKlJRJ/BYnuwUnbM89tSGz6OzVWsexsaIH5LsHpPA+Mf1M5RYJSZLotrGoavJZNVmqI8LhMbSudnvms2oS7Rg2dvs5kTxtmZ2UF7g6u7ahxao25kPxS8ok2nsp2hiCIAji+hwuEb82YunCTbmDuUmvDFnouyh5fWbRmau1LmZjkdVk8TWy6BpZ6MBZdI0scTAbY64b23ZI5BeZIm1osZKNxews2JhVpHP/RBtDEARBXJwLVbVuwQllN+uYM5XPm1uOnatevqPAKyIJPCnwpIbP5Q9jZcGWPKe2sYXXyPxrZJ5DZsE1stBRbezer2T/qWq/yJQ7z1osbmPc+Oy4tEJ9uyjaGIIgCOLKZBWKRlD8+sYmA9eNfX9JwqTokkR4UXLuep2z29i8KkJVkTmOlLlVhKoi8x3bxu43kaSvS8PX5VjQxn79vSUgKiWrUGRgL0UbQxAEQVyWGqnMLTjh199bHPMqfmvb2OwqMrOKcB0gs6rIHCexsYdNJHxdzqbcUovY2P0njSMovsbzLLRBG0MQBEFck+YXLW7BCddvyxz2CRe2sLFKElFJwuyX8EoSUUlmOpWN3XnW0ml8bPWDxrbY2C/NLRsyi3pP4V2oqjW6r6KNIQiCIK4JNz4786jIkZ83ZjMbC60kIVfJDJsnpJKEOaGNyX4jm3JLIxJyWm1jx85VuwUnrNhZoP0wC52gjSEIgiAuSMPzpo6+0U2/t6CNMTY24yqZfpVMs2GmXyUznNbGHv1GOoyOvv6g0Vwb+/Fe/ZjFyX6Lk2ukMtN3V7QxBEEQxAXJKhRFxGc7+jcj2dbGgq6SQDGZYv1MFZNA57exiIScLbmlJtrY3Z8adx4sHRCc0NU/tkhUbe7uijaGIAiCuCABUSnM1yKhjWnY2GQxmSQmAVbLJDGZ4hI2dvi85MM5fMM29rSpZa/w8oRlKR19o+cl5oglda3bXdHGEARBEBfEh+KfuiJBG9NpYwFiMkFM/K2QiWIS4Co2Vv2gscPoaJ02dv1ufW6xOCwuu6NvdFBsutFbJo2CNoYgCIK4IGhjRm1sfAUZV0HGWijjKsh4MZngQjb2uJmAJ1X/O3n4vKXwgiTxq+IFm/OGzeW/MmRhF//YiVEpWYUiEy/SNwraGIIgCOKCoI2ZYmNjK4hfBRnT5nxSQca6oo29P21tp7ExrwxZOGIuP5Kftz2nuKRM0vyixeK7K9oYgiAI4oKs2FmQmFmENmaKjflWkNEVZFSrMrqC+FYQPxe1sbd8o1t9KZhZoI0hCIIgLsiFqlpvbhLamIk2NqqcjCwnH5mZj8vJKNe1MfpJ02s+kbbZXdHGEARBENekq39s7f16tDHTbcynnIwoJ8NNyIhy4lNORrq0jRWV1Q6OSLLNvoo2hiAIgrgmJWUSH4qPNmaWjQ0vJ0PLyYf6M7ScDCsnw9uBja1OL1qxs8A2+yraGIIgCOKyRPLztu0vRhsz18Y45YRTToZohaMQMpe3sbvPWrqMj5XVN9pmR0UbQxAEQVyW5hctPhT/u3PVaGPm2tiQMuJdRgaz4l1GhrQbG0vILl7Kz7PZjoo2hiAIgrgyzS9a/BYnZxwVoY2Za2ODy4hXGRlURgaVEa8yMrjd2NidZy2dbXhgjKCNIQiCIO0Bbnz2En7ek2dNaGNm2digdmlj0V8U8tIKbbl/oo0hCIIg7YLtOcW9p/C+PCpCGzPdxjTSHmwstfDytBXpNt450cYQBEGQ9oKsvpEbnz0gOCH9qKixuQVtzLCN6Yir21jh5drhc/nWeNq+YdDGEARBkPaFWFLHjc/u6BtNbcg5c7W2dTYmvtfowjZm4AkXNrCxmHP1n52os72N7fuhethcvqW+etIs0MYQBEGQ9kjD86bU/FJvbhJ4UsPn8lemFn5/SXL+Rp1OG7sgkW3JLV2yvYAzh99pfCx4UmHrclzVxoYZy3Ar29jQ1XkTBMW2tDHJ05a5m/J8FyXbRcUI2hiCIAiClJRJ4tIKR1D8AcEJ4Em97hM5bC6fnR6TeDN4e1enFxWIJJdr6131TOVH5cTH5HxkNRvrPD1p0be1NrOxk9WyD+fwt+0vtuMeiDaGIAiCIGo0PG8qKZOwk1ko8opIKr9d78LXjX1sfkZZwcbWlDf9c2T0xuoWG9hYqaQ+cHV2z8m8C1W19t3l0MYQBEEQxDg1Uln/6QkFIonr2diYCuLbhoyxqI2N2148dHWeta/i/+Fm/dRV2Z3Hx2YViuy9ZxGCNoYgCIIgJtLwvMl3UfLm3FJXsrFPLJGxlrOxTtM2BuwqsZ6NbTl8efzydMfxMAa0MTVqampKSko2btwYx8I/INDTa5i+jBrjH6dOSUmJWCy291tBEARBLE/zixZqQw61Kc+hbCz6aksrbMy/goy3aPzbbGPUt7XvByV8tCD5b94LPRekTEouXn1aZhEb4x8TT1qZ/eqIyGkr0nOPX7b3fqRJ+7UxpXgt/zzG02tYp649AOCNju+9857XfzxmvuNJKdPt48Re49P0pbvvVnbndzypd97z6vDu+wDQ4e3Onl7DFixaioqGIAjiSmzbX9xjMu/LIrGD2Jh3XMHY3SKzbGyidRLQBhtbc62l29SEGqmMENL8ouVwiXjx1rxuk3gdx8aOjM1ZcED8+THJmuO1ptjYyXstO4olS9OKp8bleM3igyflvywlq1Bkr1smjdKObEwmk+Xm5nJnUd179VOK17ueM98dvKi3f1q/oPxBn5ZZNv1nFPb2T+vMWcZWtE5dewQFh2dlZdXU1Nh7kyAIgiCtpEYqm7AshTOHLxTX2d3Goq+2/Hdm8rR8iSk2NkVMJls5rbOxkQkFCZlF2pta+qA+Nb907GcpnDl8j/Ak8KTAk3p7XKzbTL77TP70LYUB6/I8ZvI9ZvI9Z/L7hSaBJ/X3IQuHzuEv4eel5peWlElsv3uYi4vbWE1NTWpqalBweIe3O//z9Tc79/2k67DYvlO/9vq0zF7pH5TfzSeuc/+Jb3R87/X/12HUGP/t27dfuHDB3psKQRAEMZuSMkn/6Qmh63Iu3mm073VjS680vR2UFH5SZtjGpolJoE0yzUwbm3Ws1i08yfQtL31Qz9zuGpdWuD2nWHn3q93vjmwdLmhjDQ0NWVlZo8b4/+N/X3uj43ud3QK7fRQ3IKTQa16Zo8U9/HiPMVs7eYR07Or2f/7296EjRqempspkMntvQgRBEMQMUvJLO4+PnboqO+9CrR2v4p9bUv/mpATqUpM+Gwu2eUy0sUWn691m8qUP6u39m7QbrmNjzc3Nubm5o8b4/9//ebVz/4k9x2wdOLPEe16Zs8Rr7vne43Z0cQv85+tvenoNQy1DEARxIppftGQVirwikjqNj12WWnS8pt4u91QO3XT8v3N2adtYWCUJvWqPmGBjs76v+yA0qT2rGHEBG2MkzD8g8B//82rnvp/0GrN1yLwyZ0+fCWlKLcvKympoaLD3ZkYQBEFMQvqgPmZnQefxscPnJ6/LFZ281WhtG4sqaxq3W+S2OP1/hkeOWJA8JjJl8Oo8to1xK0mEXcPVb2OhR2s9Z/Fl9Y32/r3ZGSe2saKiIkbCuvQb23N0ojd1gTO/3MXSZ+KeLgMm/t//eXXUGP+srCx7b3IEQRDEVIpE1eFx2R1GR787PtYvKv3z7NK9F+ssaGOzDkv8thd3n5H0vyMiZ/Cyc49fVt4wuHlfcfdwfujZxjlVZLbDRNvGxu0WDZptn2/pdjSc0saysrI6de3RqdewXqMTh1AXPpxf7vLp7cfvOmDiW2933rp1Gx4qQxAEcSKkD+pzj1+mNuT0m57w9yELB87iR2wrDOcXbjhWvem4ZOe5OqM2xjstW3JU4rexcHhszgcR/H+NigZPyns2f9HWPH0XrZeUSboFJvgflHxaRRwqjI2FnZR1C06avia7+UWLjX8djokz2VhDQ8P69Ymv/78OXQdM9Az+ZuiC8vaWgWHHug0K/fdbneYtWCKVSu39C0EQBEHMo/lFC3MbYFxa4aiFyR/O4fcNSmAe2dA1gOc2k+/G5TM/stNtEm/IHH5cWiHzvAYTz+vJ6hsHz+b3mp0cfEK24BpxkMyraBkSX9B1kv2/GtKhcA4bk0qlM2dRr/6rw3uDZ3nPPDF8YXl7DmdOac8R0f/697tBweH4RFkEQRDXoEYqY57RYNmyRaLqrpN4A2Ny5pxrXHKN2DELK1pGp4r+M5G3LkPHQ8XaOY5uY2KxePQY/3/9+90eI2KHzrtgdxNyqPT6OP6tTh8MHDyspKTE3r8oBEEQxHH54lBppwCex7Ls4CO1y6qJjTOnpJ4TX9BhbGwwL7ud3zupD8e1MZlMNiEg8K1OH/T5hD9iYTlGXwYE7Hm3++ChI0bjw/0RBEEQfTQ8b8oqFA0IS3pnIu+jTUULzzd+fp1YO4G51W6L098eF7shswhvnDSAI9pYQ0ND7CreGx3e7TMm8aNF5RhTMmDCzjfffi98JoVPKUMQBEEMUCOVRe8oeGNUdK9w/rD1hSHfSFZeJxbMp8Uyv52l/eel/M+ISJ8FyQ74Fd0OiMPZ2M5dKe906t6LM89n/oWRi8oxZqXPx6s6vts9dhWvubnZ3oo0xz8AACAASURBVL9JBEEQxKFh7ifwns0HT6p3OH/4hsLJmZfDv5F8dqFxzQ1ieuYXy8K/kYzdVTpoWXaHsbH/ncSbvT7ncIkYH11hOg5kY0VFRT169esxcNqw2Sc+XlyOaV1GUKW9PpzXoWMnfD4ZgiAIYiKMmU2KSfeezX9jVDR4Uv+ZyOsdzufE5PhsKNTO4Kjs3uHyZ238dxLPezZ/9vqcrEIRXhbWOhzCxmQy2dARo7v0HuYdnDt6SQWm7Rkx5+R7bgF9BwzCi8kQBEGQVsDc45maX8o8j0MjWYUi05+1gRjF/jZ2KL/g7Xe7e0zcZXeDcb14Tdv7TpcP1q7bYO9fMoIgCIIgerGnjTU0NAQGhb3Xb9TIead9l1ZgrJFRiy6+/+HsgYOH4dX9CIIgCOKY2M3GioqK/tOpu/sn6/wiKzDWjtfUPW+/2z09I9Nev24EQRAEQfRhBxtrbm6OXPZ51/eHjZx78pPICoxtMmr+6Z6ek8ZPDMSvuUQQBEEQh8LWNiYWi9/r2bffR0vHflaBsX0G+if9p1N3fHY/giAIgjgONrWxQ/kFnbu7+3ALxi+rwNgroz892bnnYMGOL2z5q0cQBEGciOYXLVmFosVb8zhz+OBJfRCUEMLL3p5TjDdRWgnb2dimzfzu/UaNW3LJf5kYY/f0GTydmrfYZr99BEEQxFm4UFX7flDCyOXZITuLY7+VfCUl60vq5maKxsbndQ3gZRwV2XuCLogtbKy5uXnqtLC+nPCJUWKM48TD9/Ohw0fjZWQIgiCIkugdBR+EJG0RyXLuEO2kX2/6+PPssZ+lNL9osfdMXQqr21hDQwNn2KghExICosUYR8vwaSkDPD+USqXW3g0QBEEQx+eLQ6WjPs/Ou0sMZ2G2aHJMur0n61JY18Zqamq69eg7bHr6pOVijGNmZMSBzt36XLhwwap7AoIgCOLgSB/Udw3gHaht+aaOGI1vTDaesrQgVrSxkpKSbj09Pvn0uymfizGOnAlLz3Tr7b1//9fW2xkQBEEQB+fDOfz130uO3CemJEfS1G0SDy/qtxTWsrFj3wp79B0+cemZqZ+LMY6fScsu9fYYtzstw0r7A4IgCOLISB/UvzMu9tsHxPRMWpe3PafY3hN3EaxiY8e+FX7g4Ts56lJgzFWME6Xv4MkoZAiCIO2QwyXi4YtTih4S07PsK1FYXLa9J+4iWN7GGBWbGn0paMVVjNOl3+DJu/egkCEIgrQvYnYWzN5RdFJGTM/u83V9gxLsPXEXwcI2VlJS0rPfiMDll6bHXsU4afoNnpyGQoYgCNKeCIvL/ny/6NQjYnoKbzW9OiLS3hN3ESxpY2KxuGefIVOXnZ2x8irGqdMfhQxBEKQ9sT2nOGh93umfiOlJLpYMncO398RdBIvZGKNigVHnQlZVYlwg/b1RyBAEQdoLJWWSQbP4osfE9CxJK17Cz7P3xF0Ey9iYWCzu1XdIUPS5sNWVGJfJABQyBEGQ9kHD86Y3R0efedhy8QkxMX5R6bnHL9t74i6CBWxMKpX2eN8zMPKH8NWVGFdKyIrL3d/3xgfDIgiCtAfW7C6cl1x4pZ6YksyztYMikuw9ZdehrTbW3Nzs6TV03Kx9XF4lxvUStOyH/3bvK5PJLLK3IQzPEcfA3jsCgjgWzS9aBoYn5V6uq3hKDOfio5YPghJqpPinwWK01caCpof5TE6YGVeJcdWMn73P02toc3OzRXY4hKCNOQz23hEQxOEQS+q6T+YdvFJX+TPRl3N1TYNn87/+Hs9RWpI22dimLfyBIyJmxVVhXDs+Abxw7lxL7XOIvSUEkWPvHQFBHJEaqWxQRNKy1KLqBqKd3Seqe0zmFYmq7T1NV6P1NlZSUvJeb++5a6sw7SEDvCd/mZFpwT2vPWNvCUHk2HtHQBAHpflFy+c7C14bEek9m79wR+HWw5cX7igcsSC5w+jo0YuS8bsprUErbUwqlXZ9rw83VkStrcK0h8xec6XnB3hFv2VgC8FxxH6UsLD3ToEgDkfD86aSMklcWuG0FelxaYVFomr0MOvRGhtrbm7uN2DQ1AWH5iVcw7SfhEQd793HE6/obztoYw4C2hiCIA5Ca2wsKDhsdOD6+euvYdpbJs7O9PIeZvG9sL2BNuYgoI0hCOIgmG1jRUVFvfoNX7D+GqZ9xnNo8K4vUqyxL7Yf0MYcBLQxBEEcBPNsrKGhoVOXHrNiSxYlXsO0z8xfV/ZOp+5SqdQ6O2S7QJ+NgSeFcYTYewdBEKTdYZ6NBQWH+QVtWLKxGtOeM3lu1mA8X9kG0MYcPPbeQRAEaXeYYWMlJSU9PvBemlSNwXhw8IEXrcewjRFCXmLsFLQxBGGjvK0y9/hlfPK+VTHVxpqbm7t07TE79vhnm6sxmAVrL7zbuQfeX9k60MYcNmhjCKIkMbPoLd/ooXP40V8UTopJ7zmZNwYfNmY1TLWxmbMo36m8ZZurMRgmk2fvHvHRaKvuna6KSTb2kvyFsWFevkQbQxA5zS9axixKXioouNfY8riZKHOgpLrnZJ5YUmfvCbogJtlYSUlJzw+8o7dcx2DYGfjhlAw8X2k+ptvYnxibBG0MQdjw0gpjUgrrm4l2LtyUDZie0Pyixd5zdDVMsrHe7/fnLvvmc/51DIadhfGnO77TGb9Q3FzMtbE//sJYK2hjCKKBWFLXf3rC09+JvvDSi1bsLLD3NF0N4zaWkZE5aOiUmG3XMRjtjBy/KHblGhvsqa5EK2ysBWOFoI0hiDbbc4rnb85reEH05Ux13YDgBHtP09UwYmPNzc1vv9N58bozK7bfwGC0E71F/FbHTng5v1m0zsZe/ImxZNDGEEQnE6NSck6Kn70g+vLol5ZXhiy09zRdDSM2xudv+3AUd5XgBgajL2OmxC5ctMQ2+6tr0Gob+/1P0oxpc35HG0MQ/UTEZ6ceFj1vIfpy72nT6z6R9p6mq2HIxpgDY5EJZ1Yn38Bg9GXFVjw8Zh5tsbHf/iRNf9grwlkAAJzNNaauUsXnzDpmxwnryG9oYwhikNT80jnrc35pIfoivCgZQfHtPU1Xw5CN8fnbho7mrtlRg8EYjt9UPDxmBm23MQMflG1PJZ8DADMLtRcJZwIAUAWmlmL6A8wRWnXCpgdtDEGMIqtv7DWF9+Dnpl//IDozZ0NOan6pvafpaui1MebAWHTi2fhdNRiM4azefhUPj5mORWzseQtptE7EfA4AcAu1F9EbhwAAlW9anfw5AABefJrVKOSCIdQ7WzLP0cYQxGSyCkWBK9J1Hl0+cqYaD4xZA702tnDRknGBsWu/qMFgTEkwtctvrL8t913nxVI29kz/TU9tScVWDgBwj2ovohO9AYA6aEqdoxQAgLegQq3diI0N2kpb4x09e4E2hiDmsWJnwWBu0sWaut/+JExkDU3ROwoGc5ManjfZe3YuiG4ba25u/t9/vha3ozIh9SYGY2I6dOwklUptuwM7JRa0sZ9/J/UWz1EKAMKPai+i13sDAHXAeBFhOAAAZ/11K0zPzPz8O9oYgrSGC1W1A4ITXhmycPhcfhf/2Nd9IhOziuw9KZdFt42lpqZ+OHLG+t03MRjT4zc5Knp5jI33YGfE4jbG/uoSC+QIBQDhR5QtjFrphJNQrV1B3n/gFtrCEzM/aGMI0kaaX7SUlEmkD+rtPREXR7eNvf9B/8WrDyem3cRgTE/slnNv46P5TcAaNvboNyJrakvotd66dGuWUNYkDNVvY2urNEvlzFKuKC8beriNc2tNHv2GNoYgiNOgw8bEYvF/3+uTtEeCwZgbDy/fw4cP234/di6sZGMPmsj9X1sdOt5Lt41p9aH2/Uru/0rObeIAcOKrdJXapFirgGLKeG6i2zA3s/MAbQxBEKdCh43NmUNNCo3flC7BYMzNrKVffjRytO33Y+fCejZ271dy95c2p4ACgBkF2ouEMwDAS3D6F3L3F3J6EweAE1dpoJRwBoCqlMLMjGG4pvHcQxuzObSAQwntPQkEcWY0bYy5fn9j6rUtX/6IwbQib+G1/Mawto3dfk5utSX5FABMz9deJJwOAF6CH56TW8/JD0kcACpDf50M5mljM4XssqbY2GpxK2d++zm50x5sTEgBAEdA61sE0Fo1ogUcvaWNTagNwyIIomljWVlZHJ+p/MwfMZjWxS9g8RpenD12ZqfBBjZGNxLJs9bmEAUAQYfIiY0c94205BmRVAjTK4jkmTAIALhCptuJjRwAKt1gEQDOygqDY1UI3Fk12xK6sX3ZmE7zUWiR2T4lp1U2xgyqvpLQsHq3dn4I4rJo2pi7h9fS1Qe3Zf2IwbQuawWif//7Lbvszc6CbWzs5jNyo4FUtyIHWX9JucLqBmEg83oQx03eQqobiDCRA0Cl6qxQIXBT/NmNqTA4FtNTUbN1udFAbqKNKRdwOBzjh6kY7TITnQ6ly8XQxlyGhudN8xJzfCh+QFRKjRSf721F1GxMLBZ3695HkE1jMG3JQO8xeC2/AWxmY9cbSOXP5OpTU7Mrgv0Xk9qlWiScqmjtv4FmGo9t4Kj30dEZgLO8zOCgZYL+ABAhNH2SGqn8mVxHG1M1AyU0eCrTMGYfG9PtYohr0PyixZublHKo9NQVScEpsVtwQkmZxN6TclnUbIzHixs7ecmOr2gMpi0JmbspJCTcXvu042NjG6uoJ2VPyBUjEU5WP3ox+YBmn+RwtUWH13MAOMsu6akTLkwOB10d1HNJ0A8AwoXGpqcjZU9IRX17sjE9x5vkWqbuRSozMwvzbEw+IXQxV2VjVlHMzoK/XhIm12/Lek/h2XtSLouajbl7eEXF5e/cdwuDaUs27LqAJysNYHsbu/yEXHhMRAaTl8CBgYK8x0SUSwHAhFyNDvTSgSoD6JtA5yVwADhLL2mVyqWYOvxw0N2BnUuCvgAQLjQ8N+1ceEwuo42pbEz7GJX+K+tbdZZSw/2I5g0DtIDjlBfx93Hr3/qNgSAm0Metvym7osrGGhoa/vefr+3afwuDaXu6de8jFout9hHq3NjFxs4/Jmd/Iqd/IqVGk0sBwPhc9caLgj4AMFCQk0sBcMbn0qW5FABn0UW9dTaFgeEOqrJhQuOzYuXsT+R8O7QxBVrHveR6pXWMSqVvaouY7q08bsZejRYIFD+19fYBuwEAe0gZBmO9AOj9QnC1XVH5Kjc3lzN8QurXtRhM2zN20vwNGxKt9hHq3NjLxs78REoekWIZOWk4ORQAjMthN9LzB4Jmo45uatkQCgCc+ecNjnVe8AEAhAqNTEmRYhk5JSNn2rWNaTzEwsD18hwBzToOphQlPTZm7OEYBiROfVUjV/Czp2eJ7dE2ACCdlGMw1gsASKVSqVRq+ItqVDYWEhoeMW/z7txaZ832Nd00/7V7TNtu31llDHOUmdg6y9Z8PYQz3PqfpU6JHW3s1CNy4iERPjCYfRQAfLJP1ZIRzwEA8BRksLuJBL0BIFSor87aUADgUCKDYxkropETD9u9jamdgWQdktJx/pF9ERlLfXRolWJljoAWCljWxhYmvdeUaWqcs9nYl6Qcg7FeACApKSkxMTE7O9vQrqh89Z93O2/cdXpPXq0TRik9OgleYv+JeQQl230r2TRf7L/xz3++ht9ZqRP72tjxh+TbB+TofXJEX/ZRAOC7T+1HAM7scxo96dmeAEDx7hNeCPSKpzXq8EJ0rqWec4JeABAiNNTnPjlynxy9T759QI63extTqo5KfgRmWo2Gjem8Fp/tdoatycRL+Vt5etTqAEAmqcBgrBcAiI+Pj4+P3717t6FdkfmPWCx+r0ff9IO3nS87tA+JaeMRtMMu08scbucJ2DODOX74nAudOIKNHblHvqkjB3VmLwUAo/aqXqt+VM+OeA4A9IwXjAIAoFaqL10ZAgAc7hk9ozA5I+gJACFCQ33qyDd15Mg9tDEdF+Br6A0t4Bg7DGagmCbG3UlVwoltLIuIMRjrxTwb2759u5//rIxDt50tJdN7sj48eq5JNGmRzaKysek77b6tbJ3p3NWLlyy1ySeqk+EgNpZfRw7cJTl3yH5Fls9Q/oPhhJ6mQz3kP/Tg0ftZ3VgRjgS9fZbPYOoYWREAYIZQT32Sc4ccuEvy0cYIIcrniAkoAKAEijOHLAXTvLXS8IErrXOPSrlitQkpvQrFPiXpxDa2l4gxGOvFPBsb+bHvstXZWd9InSyrg1WfBqOztDssG61aPmK1vHHTTPkfme4zS5WvATxm7NLsoL2uekpn9FLr1n1mqXqHrBFaxbUWAQBAL94mu29MSydxR/F77/W0ySeqk+E4NpZ7l+y7Q7Juk0wmmYo/r8HCzNsk8zYd7KF8rSfMKh6CJK1FnwUDACe4RPeKSWtUB2ZGZOruk3WbfHWH5KKNMSiFRvH0V7acKUxH7YZL0x8fpvQwnZeT6X/WLAAlNOlZsw5sY/tJJQZjvZhnY/989bWUryqzv5E6V1iyFbxMd5+sj1i6xjRuVtpYL7Z1ySuwBU4NxerysEVQ3as26xjdY8Yu1bqbtWyP4aPV9t+kls0///laQ0ODTT5UnQlHs7HM2yS9lqTVkt0WzaJgAIBhGXo6nKLX6V83rZak15JMtDEVLLPSehY/W8FYr00xINXxLZ39WGczdd2EqZqOE9vY16QKg7FezLAxmUz2xhsdviqQOltKQ5SHpnyz9HWL9lV50pYC6VcF0i2zdMkQU0HpWDo6e4R8oSzLkjx9pdS6sdbVp3GaQ7hC3u/jeeHCBVt9rjoNDmhje2pJyi2ygybJDpAdNEm5RfagjbGhhRRHTbh0HMRin62khAYFqHVPgNVdy9ltLI9cs3ro75ItXzZlFCfGCmVbmWT6OxMbbRc6picAQGCsXbcMmG5jRUVFAwd/tP/IHWdLluqaldmn9XXjz1bq1Izlmi0AvlnszssV6jaSp2hM5fUAzUZWBY/QVKbxdKjqrKV8INYMdXXrxeNrvRGN+Th7xowLS01NtdXnqtPgmDb2xS0ioMnWH8lmu2brj0RAky/Qxgyg43sq1XVM9fQLvZKk5ySmvm9UYh61T9O6qjm7jeWTaqtHGAgAwInZacGadAzzx2S00KqTTx0NABC4itW4itIYVDiTAwBuM2mNdZl2YzMUBgJAL4HQ8pOXbyK1yds+ZtjY9u3bxwXMzjl6x9nCsrE5p/V12zZHZWOfa7Z4hO02Y5SRcUzL6bDeusbdzeuhOROVjckH2q10O/Wh4xSXT/fmbbP/hrVYwmbz8EJ+bRzZxrZIyMabZMNNst7m2XCTbLxJtkjQxoyh61vDNe+mNPWbw4WUWh9NGxNSxhXK2W3sMLlh7ayhAAB8hTcOkxuH6Vj16401kXczlhSBOwD0Enxv6jSE0wwOCwAAVJrWimm+AMCJTVG2KOev3chu0deoHTq2l/obWWPsiXUmv+s0XwCAaWus/ys2EDDdxubO/XTW/A1fF951tmR/rPjd9JhzWl+37XM8Fb1mfK7R0jtuu97iKuVS8nG85riKFqMz9AxLu/t14d2v42doFtVEPknXSEz83pEf+9rqc9VpcHAbS7xJ1tWQuBrCs2Hiasi6GpKINmYKumys1X0AtG/C1PGcfwOlnN3GjpEaK2ePHwBwYvcwP9KxvQF6C45r99wjcAcAP6HJNWFavOFu9PE9ytcm2dgeI5OX5/hc+Zlu1QTiKQBwn0trvh2d71R9kpobJN6YjRmvadZWsnLAdBvz9PRK2HrkwLd3nS2nI5TC5Jetr9sKP+UvMC7527sHvr2bPNdTo0V3TS1GxTN9skdptuiLsqdnRPrdA9/ePWDcxhQ9XSK795W9+SZ+fbgmjm9ja2vImhsk9jpZYZPEXidrbpC1aGMmojItMy7/0nVmE7QsSteZSh3Spj0dJ7YxIZFYNRkCdwD4RKhooVf2BugtOGG8p3p7a+CszNA5K2EQs1x7LCE5QXEAwJ2imR/TP9FTZy2l7KMzTB1tgtZq9NS/Qdqc9E90jmjbgOk29uqrr2UdrD74XZ3TZaXStCBkpe4+e5XmBH57mcYdlNLG4neodT7D1VAxv73sCqPWatZUtOiLsqcn98u6g9/VHVwbYmzCrha8rVIbZ7GxFddJdDVZZuVEV5MVaGNm0TYb0/nEVrVC+r/9SKd0GbQx9a9JckgbO0loa6Z4PgcApm9QttCrPgD4QFCs3XmvwB0AxgmNl91AAYD7fLotU1LNYQOlNqh68S/HAQBn1V6dpehVH+jc2zir9jKLqC+Nz0f/BjE1+qZhhFZvQPMCJtqYTCZ7498dDgnrnDIquQH4ZK92h5WfqJaPXitv3MmysZ3s/hnxPbU6HxLuHa3ZqJK2ntQZ1nB7R2vWVK7ryc0wMIQrp08/vK1SEyeysahqsvQaWXyNLLJCFl8jS6+RKLQxczHxkjCDFfR9abiBykKhbpcy5XYBBseTMQIAJaTWihEyN9EHJylb6DV9APoITml33i/wAIDxQtNqUhmtmxIzinJ1+Y+sGSZR7B8zxgMAZ81+AzV1vaMkCgA8FtL61jq1UN//SLTifdFr+hiyLn2wfinWDJhoY0VFRV7eI7/5/p5z5uxMNSUOWa1v0QfxuxSLdn3qqd34zff3vkkI0VEnI155xeXoBK0KrMbVbPOTN36ltLGZGdqzUo7CavzkK3tvUgtn7IRwvK1SA6ezsQXXyKdVhLJoPq0iC9DGXAJ992HK0X0jpqMAAGeJ1GopXSJ3juAtykaa19egI0wQGq6ZNUGjoFlhTI7DO8Bq3CJ/fnAW60dl/awJGv1pXl/11Zl31FdQangUjS2zRVjKHl1tdXPDbFIdw+nbVm3bhmbGVBvbvn37xClzC47fc9Zkxhu+P4WRoVmZqlW+mKeysS/0lOo172zB8XsFx7/yZVXxTVB2VmvXRFVW2Y01gYQQ/WuqzdM1Mmte3BK8rVIdm9iY4sIQ3XBmn1W3sVOC/wIAULP12NjcKjKrknArSYQ8wp4A4CaYrGohEccEb2oORI1id6gkEZWEW0lmVZK5chujP3LTmtyXemxMJPgAAIDagjaGWAgAuEDuWikHBap7yLYp2+m4fob+bUKAUF/B05Ecdp/sAIN1ADwjabUK2yitycgjL8UMvY1i98kOAABO3EH1ngDQT3Ca/Y5UP8rn6RlAeRqdkvJNKVffZuwSfjlU9gWNTaqapMb70vd+tdutEjDRxuLi4oLCPjt84p4zx6AbQcga9f4p81U2lqK+aM1YQ4V6zT+r6rxBn1R5zsrWnhi7kTUBA/VdJYujt4WGhdvss9UpcAAbY/5lCM2ysZmVJOwqCblKZlwlM44J/g3w7+X0DObHq7Rnf/0DTRUqupGQqyTsKplZSeZWkXGBhmY3LANtDLE6AHCF3LNK6Ph+AMCJX0YBQEiy7m5fTQYATvxh02omyw9ifaVa1xCey2it+Rj7UEiWj6KcsK4ZKksx7ZqV1cdl19FepFi3n+Cs2ns0inwjqG1qrc3IDKq98fW1WyVgoo3FxKwInxNbWHzf6bM3XutuSM85e3X0TFugkKE+8WkGlgIAhMQX3y9MDNHT/9wcjZPV4/apV9s3Rt9MNGcbEm/3DWidLF/1xdSpQTb7bHUKbGhj1Bc6z1Tuk3/g9YyjzbWx6VfJNDH5ZDkHgONWSALFJFBMhk5h6qlamHyyXP7/8m8spwPFZJqYTJfbGD1EeUgsUKh2pvKEoKtiSfc1NNoYYlUA4Cp5YIXsmwoA4LmcfrCLAoDQXQa6ceKPmVJTGApgoJQ8u+T/uD2X0xqLRIp/jtBfIDom8GResJf2F+w7pjlhvTPcRSmGkE9M9ZdX39BThZpFjgnUjk1od5Cva3gT0fH9dU+S+S1obzF97VYJmGhjoWERkZ9vO/bDfQzGGkncdujDocNt9tnqFNjfxh6Q1HgOAICnYKv5NjZVTPfrD9BfMEpMAsQkoFDwBgAAp18hCRBrRf7HgeKIyVSFjY2eynz2UgF6rhuLX8383eCEnEYbQ6wIAFQTmeVDn4+hwE1wvprIUikACE0lMqFgbapmz5xAAOCsFWq3UzlqLSrjCdUqohx0LfP/OMy4hiMUDNTXUzlhgzPUnFugUFl2YAzN7nA+hgPKDuqRLwIANyrUTfe7Ox/DMTYB5o3r3Iy6a+prt0pMtbGwsIjPYrZ/V/IAg7FGkrbno41p4Ag2duSsoBcAABXdChsrFLwB8K9oelwFGVdBxh0V/AsA+gs+Yn7UjLCLwtXkNia/vIwz9DtDV/EvYe5FmyFEG0MsglQq1W4EgBryk1WzhwKAsD3kp+OCgWA6VK6ygmLFge4ceSkdA9EJ7qB/qVaYmu6CiwYmXEN+qiG50wCAk3DcQDVhGABMEyrLDoyl2R30VxCGAQBwBroDuAsu6pnSxVgOa3X6oo468vduLqZuqzbGVBv7eJRvwub9wtIHGIw1kvbV6e49elnr89U5cXYb81vOAeD0OUr8KohvOfE9IngdAIDT6wjxLdcRvwoyvoIEKI6NBShOWhi5p/KUoDsAACf8NNoYYgHi4uK6du2alZXFbgSAW+SJVZNBAUB4hmb7genqajBdaGB1ABi0mtZXilWQs/4HvTM5MJ01yg+CQQDgIbjEWiqvrD6KnrLCcOW6TCmm8g+CQcxUmUZdDFpNM0UureYAwKDVwvUezEzo9R7ysZhFTM1Lqzlqjaw5K8KsaDb6tqSFY6qNfTh0+CZBflHpQwzGGsk+cKlTpy5W/ZB1Oh4/fkzTtNOeqaTd+gMA5VVB/CrIqHIyspz0V11OTPUvJx8pMrKcjNK0MXpgfwCA3ilGn3BBB3sAAHycjTaGWIC4uDhmH2U7GQBIyVOrJosCgIgsHY0QLMwLBgBORDBHRx9W50E8Wq1UqV7X0YLKU9TJCzbSVT4B9QkzM9xQqnv+T6XyychnqHytf4bsngBUnpTe4AHgIShT1ac3eKgGLeNxFK+FEewKevqzw7xl7Q2rr90qARNt2iEukQAAIABJREFUbOBAL0HqseNnHmIw1siBI1ff7IBfjqRGdXX1K6+8smDBApqm7WJj6fHyizU+zjb7nsrpxwRvAMAU4XiFjfmUk+HldDcd91RyehzRtjFhDwAAzpBvjT9v7LNgAICecTTaGNJ2lDbGwDgZANwjDVbNVxQAcL9iNwq5AACcxLPkYAjzgk70BADqoNmlVFGUMm1WZwWDAMBTUGFsFJ1lK+I5qj7s/mcFgwAGxdPGJsZsAaYnneipPhP1uVXEc1SrfyW/DNXIhlIbWu8Ws1FMtbFOnbrsO3TpxNmHGIyVAgA2+8B1Cqqrq5m/B6+88sqkSZMOHDhglydc9IqnW/GEi+m7KADououwbWxYOeGUkSFlwrd0jjRF6Ew29rbuB9AgrsqZmisPSaP1sp8CAO5+VUt+KACA11pa8ZqzUSTvBkDlm1OKHVUpU2YlEngBwECBWGuReC1HOT09ZemNA1VTFa/lqDqIBF6sdQ1NbD8FoUJVNdZMmO2jfJtq9RVLFesaiUYp+wRMt7H9hy6fPCfDYKwUQBtTR2ljDH/7298YJ7OhjVG8e2Y//ZWxseFTAYAaItZhY95lxKuMeJUR7zLCOSx4lT1gf8EoZ7ExPDbmomgcGwOAgIAAAPiJ/GLV5FIAMDNX/mNlAgcAIEzI/FgQBgCcTRdZixQ/Gi2lEXYp47kot7FKYz11lGXWlb8FetNAAKAKWIu8EmhzJkZvGsiaCVNcWVC+WViryzuY9E4LwsDAFrNRTLWxNzu8dehY1Q/nH2EwVgoA+LgoHTt2NOQ85vC3v/0NOg2x3VX8rbQxYXcAmCIM0GVjg8uIVxkZVEYGlxFOGRlWTnzKyagd8ouQ31hO43VjiB1h21hAQIBYLCaEAEA9+dWqOUABwKwD5Nd6UhAOAACDBFWKpQXhAMDZdJn9IwNVYLCUdjRKGcllxmk00LG6dtmq9RzVNA5QAADhQnZZr/W0OROjNw1SbRNmC7ArVK3nqK/O9Kc2HaD1FNQYWu8Ws1HA9GNjuQVXSi48wmCsFAAocVF03jNvFI1jYwDw1ltvRUVF2fSeytbZ2C4KAP67i7BsTPg2AADnv4fJkDLiXUa8y8gQto2Vk+HRHACAKUK8pxKxI4yNKT2MAQAayG9WzUEKAGYdpDfLL2unjrCWHuECAGdzharlWiIHAIBLHTmor5TugbRLaa9rBK5Qa0Vm2uyyTAvzLrSWHqQAwDuRNmNiTJFBgmsN5LcG+loFvXmQkU1keo5wwcAWs1FMtbG+/QZ8+VVx6cVHGI1smgQw6Wu7T8PZ8+1Jyauvvmb9T1pngm1jjIfZ4QkXrbKxj6cCADVUzLYxukd/AIBXo+ih5USZYeVkuMLG/JjDYwob0/u8seOCLgDe6fi8McQqFBUVsT2MAQCek2arJp8CgNn5pPk5qc4XVqsvPTITADhbxGaX0mhUYKCUcLaaeVFHDI1Fb/HS05kZbqZQMXn5a9Y0FHPIp2bnk+okjkkT8xJobJlmscDb1NnqDTNDzS1m45hqY0OHDk9OPXzm0k+umIuLDXwvV7+EXEPr5vore07KNWvcLZN0D9j3s4tnBGH6ptP3s4v23lxWycEjZfiECw0YG+vcuXNqaqrdnjfWGhsT9gCA/gI/NRsjQ6LkH7c9jqiebcF6wgXduz+A6kwlCbtKpn4uX2X4dyobC52m/NfAGTodn8WP2AIA+JX8btUUUAAwu0D30qOzAICztcqMUt6baPV2eqvSnGYJLTtt7bJHZ4FiDsKjsygA6ih7Gl6C62ZPTG5j1zXblasrhzA38gr6Nr6NAqba2LDhO1IPn738k9Mmd4JuvQnbcvniEgM2NinXQFmVURnsZnDdsC3qM+y77OLZZLmNTUhW9C9I6Ktcav+NafkcOoo2pglN06mpqXZ++msrbOyY4E2Afy+np7JszLec+JYL31X+s5osVH/0q3IRNYT1zUgGvqcyZiVHWQy/pxKxNgDQRF44eY5uFtywfFn6RlVbi9yoou2+cewfU20sLCxiZdyOc1ceO20UNtYv4cCVx+euXFIYWPhW5Wv5osfnrjw+d1huPzA5V29NZR+j6CqydbJyAmoz7Lvs0rnkcIWNaY7Vd9kle29Jq2Tn7sNDh42w1Uerc+AQz+LXbWN66Z3CHNDieBwjjI356/j6I31w+h5VPYs/7CqZWUnmVpFxgUb/gek8NqaX4Hy0McQ8AKCZ/IHBWC9gqo2FR6yK33G+/LHTJjeA+STun3Cw/PH58ktL5U+hDOcrX8sXPT5f/vj8EZWNGSkIAAB9oy5pdOArHzuup4KiQzhfvWDfqEvnd8htLGCH5ny0B3KN7NqDNqaJc9oY7eUG0F8w7iqZKiaTtL8dXPX14Wp03SVfOknLxpir+CdrO5m7IP6WcJjqZ2oV2hhiHQDgBfkDg7FewEQbW7I0MjI64ULFY6fNpUilcrF/hPBtmoseX6h4fEHhQ/2iL+mqpnS7gcqTnAE7VB0ORiu/9jV8m54pbZui+09Fv+hLytF1L7X/xrR8NvH3+vtPtNlnq1NgExsjN5+R6w2k0kQbqyVf3CICmmwx4Xsqp4lJYKsyTZeNGXjeWGaJoAf7eWMPyPGH5JSMnMEzlYiFAIAW8icGY72YamNxcXFzPl1+SfzEaXPpM7lyrf+G/SOEC9QWHdC4tn7SLq1SheuVBtZv+SXWj4M+K3xySfzkm+XKL94KF9j/jTtH1qzdGRYeYauPVufAqW0s5CqZ0YaEmGVjt4nadWNoY4ilAYA/yF8YjPViqo1t3LiRO3vp5atPnDaXlun4gjwACE9WLuq/vuDqk4LlrC8x7b++QLOOStf6Lb8kb9ylOJQ19UDyVHZls+epGl19MqqxXDQrVm2hqE9t9tnqFDipjc2qJNxKEtHmcCvJLLQxxDEAgD/JXxiM9WKqjR0+fPjjUeMuV9Y7bS4vY27OcltfwP4RwpM1F7UqX6ifW2xtKaXMTfpCvaUtc3OGzAibt337dpt9tjoFzmhjn1YRyqL5FG0McQAA4C/yEoOxXky1sZqamvfe61l2rd5pc2CywpMOX6svu3Y5Smljqtd6CDxgpHiK9mVeg6K+M2EyrSQ82f7b08IZNnxUUVGRzT5bnQKns7HF18giK2Qx2hhibwCA+eVjMFaKqTZGCPn731+5UPaw/NpT50yeXIAC88qvPS2/VqYwsIgdqte66R9TpqugjrX6x5SVp0ToKOG24YgJkzwSM0h9tYgd9t9uNsqbHd6SyWS2+mh1DpzIxqKryTIrJxptDLEfAGDvKSAujhk21q/fgNz80orqp86ZvCkKG6uoflpRXRattDHF6/5ujAwNihY+rah+elThRlNS5UWOatoSS5tSI1Sv2cNpadlRw9OTz5D1o95VXCenL9x+7TX8WiRNnMXGYq+TFTZJLNoYYidef/11PR/+CGIZ/vGPf5hqY9OmBSVt/fLqjZ+dMwen6t4CEbtulC93BwDoH5vI9OkfW371xs+7pik7KIvIezJMTWPVT1PY2LSD2qPrKvXz1Rs/H4vV1Dt2zV3TQC+6RnHefJV7YtCgwbb6XHUaHN/G1tWQuBrCs2Hiasg6tDHETkil0qSkpHgEsSbGbWzjxo2z50ZW3vjZKfN9op6zkRFf3Cj/3B0AwC32IPMCph2sVNqbe+IxE+orvcotttxYZ/lwWtMwUpnFoM+/t/f2tGhWx/HxhkptHNzGNt4kG26S9TbPhptkI9oYYg+kUmliYqK9/1g7Kz4+PvaegnNg3MYOHz482nd8Vc3PTpnjchtziy2vqvm5qkapRBEpNUobK/9Wrj4RKXsiQK0/O/oOs+nHPfFbHRUiUuy+WRwj4dz5eEOlNo5sY1t/JJuVOSnoEiTczG6xSE4KugA1S8/SrT+ijSG2pqGhYc+ePbuRVgEA9p6Cc3D27FkDOyEQQmpqarp371ktaXDKpHMZLwpMZ1oqYuQ2xk1VvHZbWVF9QuMQ2qCYE6bUV1ZT76+s5p4o1ForNUi3uemahvpSu29MS2eEz2i8oVIbx7SxlFtkB02SaXqy+iFezpckmSbzphv+3xLBGpokmxQhh1VWZ3bQJAVtDEGcBMA7ISyBfCP+/e+vlF97VP1jg9NFuEp+hX7MSaaFZWOK126rKqp/VJekoIMm1f+Sq7v/SZaNaa2lGIibKm85yHwRn9uqCuWKgV9qlmIm6WLpgDdU6sIBbSy9lqRlUBqK1W0NvbuWLMoQ7q4li4IN2piHYF0t2W1a1q3hAAAECw30Sasl6WhjCOIMoI1ZBPlGHOQ1+OuDJ6//2OBsqVihcK/dOlrkr91WVVz/seG6wooABq04aUpx/f1Zlqa94u4gjSmpbOw6y8bk/Vk2Zu+NaeGcFkk6vPWWffdvx8TRbCzrNslUCx3sAQDUZ6zGpDUcAE5wiUZPklki6A4AHoIkHRVaQ/c1tLJOFtoYgjg8aGMWQb4R4+LiFi1ZUXPrmZPlh41y9fLYeFzeWBEr/zPA3aN47b66oubWsz1qp1q8Yn8wXPyQ6sbH6Yc0l2Zw9S5SDcTdo17KfXWFcsLTMjTfAjNJV0rippRw/IZKXTiOjR24S/bf0Q4d6gEA1HJWI5/HAeCEntbqfFrQAwA8BHwdFXT1N5wsqgeP1mg8gDaGIA4M2phFkG/EkpKSIUOG3bz1zLlyfLUXKFRG0XgoSOVnFSsVNqbqOZ2rvCqGtRY78rWA5XkafZRip7PCHj1X2Livrrip1EedS+29PS2bKYEhWVlZdt29HRQHsbFv6shB3aG5ngBArWQ17ojnAHC4Z7Q6nxH0BABPwQ4dFXT1b1W+QRtDEEcFbcwiyDdic3Nzhw5vXRHXSWobnSf5iivBvFaeYv8IAADB+ZJa8UqN0yXB+ZLaRskplhIxLbWNOjoDuK8Rq4Y7pS1SzLiaSZdfYcNNV5+n+xqxskhQhmZZtbFcInjRmD4cwcaO3idH9Iae7QkAFI/VyAsBAM7sc1qdzwl6AYCnIFW9nd2fF6Lnf0HU8d1nYErk6H20MQRxRNDGLIJqI06YMDElLedHaaNz5ctggOB8+Y9ZXLlF8cQ/Sht/lIpXqR/lOqlaMT9IrUW9J0BQlp6xWCq2qlT/lAAAuF+yx2JmVaqwMWV9RYtizi6So9+d699/gB33bEfGvjZ24iERPtCVfZpX8cvxFGQ8IGtDDZqUpyBDvdraUADgUCLla+N8sk/PxFg5gTaGIA4GoI1ZAtVGTE1NDQmdTUsb220YsbP7NFwj0THxMTEr7LhnOzL2tbHih+SkzuzXY2MDBXv1raI/G0IBgDNfpL1IuGG/6vU4+RjUBtPKFqONIYiDgTZmEVQbUSqVdurcpfbucwym7eFwhpeUlNhvx3Zo7Ghjpx+RUqO5KOgDAEBtMqWznmwKAwDOoos6KwOECTeF/f/27jVKivpO4/jvpSdvwquFV6FfhTlrhFYZ6O1zsszuWWWycWWOR2VMCAy4W3BOjMyaC2iAHo8wQIzQrq6D4DBKwEHCgq7ZnphERldxghomQS5rSm2VSysIzb1FLr99UXPpe1fXVHd193w/53kxU1397+r/1DnznKrqauunjHVshDYGVA7amCtSJvEb3xj/+u79nv8jJ9Weg389/vWvj0kkEl7t1hXOkzbWd1x328sLj1j3ZzUes/2UzDw2W0SCC/dkPLQn/K2ho26zI47H76ONAZWBNuaKlElcuLB1SWjVR5+eJWQkWbfh+dtvn+HVPl35yt/G3j2h79hN5I7Bs4eP7wnfIMbjJ/SdPeEbCl31dcfW5EHMB+pFJPjAnkIvUcSGpedd2hhQAWhjrkiZxJ6enn/4x1uih88RMpLMmv2vHR0dXu3Tla/MbezPJ4vIyyuCg/3KuHOOiMjEFWbWde58Ic845k/rRcR48qQ+OadQj0uVd9gsoY0B3qKNuSJ9Er8xfvybfQc+PnKOEGd5/8MTnKbMr2xt7GBc9xeVvWG/iNQbd9WLiNERNxfVi0hw0d6U1SLtQRG5a1ueoSJ3iTWCdrQU08Xqw5FitzmuB2ljgHdoY65In8T29pU/vO/Hnxw5R4izrFgZnj9/gSd7c7UoTxt7/3SxMR+aIiIy89fWD8aG0/r+rw0RuXGlmbzm71YGRWTmr3MPtTd8o4hMCf8uxwobWkQk+NDe9DHTXqio0MYAT9DGXJE+ibFY7G/Gjv306HlCnOXmyVP6+vo82ZurRRna2AfFp3OuiIhMCb961lwyRUSMzqRHX10VzHIoa8jcSMpo240sC9NfK7ikf2hJpFnSljgJbQwoP9qYK7JM4u23z3hmY/fhY+cJKTa//f1b3PS1oFK3sY+dJPI9EZHgsr/ox+fMZVNExOhKWuH11QXa2McZK9+02sz1cl1zh17L/dDGgHKijbkiyyTu3LnzO//8L0di5wkpNv9m3Ldmzdry78fVpaRtbAQxN+0wrR/apoiIsSnHmm+sDorI93fkHKdtiuRdQTfNE5Fg274RbnDO0MaAsqGNuSL7JI4dO65/30dHP7tAiP189MnJsWPHxePxMu/EVadEbSx2wa2YDwdExNiSY4W3fhEUkVk7czx9X3iy5Ht67IJumSciwYf3ubjN6aGNAeVBG3NF9kkMhUI//slDnv93J9WVtY8/PWdOS5n34GpUijbmasxHAiJidOdYYc+jQRGZ/WK+R+XeSJ6X6L5XRIKP7Hd9y9NDGwNKjTbmiuyTGIvFxo4de+zzC4TYz2Su37fH9TbmdszlARExtlq/vpTj+yvTBZcf0C++jMwWEZHZL2UZ+e1fBjPWL3loY0BJ0cZckXMSb58xo+u5F2LHLxJiJ3/Y9ceJk7h+3xYX21i8JDHbAyJibLN+td3G2g8WGvlguH5w7fpfmqXZ+CyhjQGlQxtzRc5JjEaj3/zmhE+OnPrsxEVCCmZy/VQOjNnkVhs7U6qYK/9ORIztJXyJcoc2BpQIbcwV+SZx4cLWR1Y8+vkXCULy59lN22bM4Isp7XKljREHoY0BrqONuSLfJMZisfHjxx8+Gj/+RYKQPLlh4qT+/v6y7bXVbuRtjDgObQxwF23MFQUmceHC1uUrHj1+MkFIrjz3Kw6MFWckbSxBRhzaGOAi2pgrCkyidXjsSCx+4lSCkKyZyIGxEehNUrCNERdDGwNcQRtzReFJXLRo8dLQ8i9OfUlIZjZ0bpo5s7kMe2qtst/GiOuhjQEjRxtzReFJTCQS48f7Dv7fJ57/4yeVlqOx0+PH+2KxWBn21Fpls42REoU2BowQbcwVtibxqac65s4zTsa/JCQ5y0LLFy1aXOp9tLbZaWOk1KGNAY7RxlxhdxKnTZv237/53anTXxJiZc/bf5k0aVIikSjpDjqqZLYxUrbQxgBnaGOusDuJhw4dmjhxUuyz056XAFIh+fa3p/X29pZy5xx1UtoY8SK0MaBYI2hjZjgoIkYk2+Jg2BzhhlWXIiaxvX3lvz/ws/iZS4SsWfvE/PkLSrdfjk5WFSCex+sdAagmttqY1bvSi5cZMbLVMTMczNLRalxxlXbq1MDv//C/p89cIqM5+97764QJdZyjdJ3nLYRY8XpHAKqJvWNjESNLGxtcnl7SaGOFWOcrPzt+5vTZS2TU5tt/zzlKAICq3TY2cHDMsZo/cVn06d5QKPTgQ0vPnLtERmeeWrdhzpyWUuyLAICqY/e6MevoGG0sh6LbWCKRmDo18Obud86e+4qMtpgffDphQl08Hi/FvggAqDp221hOGRftc6bSpkOHDk2ZMvXwkeOelwNSzhw/cfaWW6dzjhIAMMRmG4sYuQtWxEg5+kUbs6+np+eWW6efO/8VGT25777716xZ6+7+BwCoarba2OBpyjwdyzRT2ljNn5pM4/wAY3t7+49/8jPPKwIpT9ate4bLxQAAaYq/biy9kmX7XOWoM6LTvTNmNHVv3X7+wmVS29nV++a0adO4pQUAIE0x141lXskfDJtJbSzXlf6j4EDZiNqYdUX/W33vel4XSOny4UeHp04NRKNRl3Y5AEDtKOoq/vQbXQTDptXBrL5FG3MsGo1OmuQ/Fjtx4eJlUns5eercrVy5DwDIoYg2ZnWxjGqV2sbSfhotF5G58GWfvb29t946/eSpc55XB+J67rtvIVfuAwBysd3GcnQx2piqutLGVHXjxq4fzJ5zMXGZ1FL+44n/nL+AL6MEAORkt43l+IpwpY2pqlttTClkNZf1Gzr5ECUAID+bbazAVyPRxlwca83atT/60cLEl1dItWfDhs45LVQxAEAB9u/+ShvLw802pqqhUGjJkmWelwkyklDFAAA2FdPGhlvVcO/iTKWqut7GlEJW5aGKAQDso425wv02plYhW7rsy0tXSHVlw4bOFqoYAMA2t9sY9xtzFYWs6kIVAwAUy1EbSzniRRvT0rUxVW1tbTWM+afPnPe8Z5CCWbJ0GVUMAFAsZ8fGMh7ieypLqaOjY/r0xs+Pn7z01VVSmTlz9sLdM5tDoVBJ9wQAQE2yfffXiJGjc9HGtNRtTFV7e3sn+f373jvgee0gmfn006NTpwa6u7tLvRsAAGpSEd+MhNzKMYnRaHRqIPDyyxHPywdJztvv/GnSJH9/f38Z9gEAQE2ijbmiTJMYj8cbGxt/+diary5fJZWQzZufDwQCsVisPDsAAKAmFd3GTLPmL8l3oKyVtrW11Zg//+y5C553kVGepUuXNTc3JxKJcv71AQC1p5g2NvCZySKuETPDwdFxTVm5DzB2dHT4/f4339x9+fJVUv7s339g6tQA1+wDAFxR1LGxAt9WmQNtrCQOHToUCARWrGj3vJqMtnR2bgwEAn19feX/owMAalJxZyod1THaWAktXrx4aiCwf/+By1euklLn8JGj06c3trS0xONxr/7iAIDaU+x1Y8l34R/8fbhvpZ+Z5ExlGfT19fn9/sceW3P5yjVSuvzmfyJ+v7+np8fDvzUAoCYVfRV/Wh2jjamqt21MVROJRGtr6/TpjUeOHLty5RpxN198cWrOnJbGxkY+OwkAKIXiP1OZWrBoY6rqeRuz9PT01NXVrVjRfv78Rc8bTM1ky5bn6+rqurq6vP7zAgBqVvH3GzPDwbTvD6eNVUYbU9V4PL548eK6urr/2rHjytVrZCR5ddcuv9/f3NzMITEAQEnZaWO5vg2cq/iHVEobs0Sj0aampmkNDbt3v+V5p6nGfPDhRzOamhoaGrjDPgCgDGhjrqisNmbp7e0NBAIzZzYfPXrs6tVrxE5Onjy1cGFrXV3dzp07vf4DAgBGi+LPVBZz/pEzlZ7r7u72+XzLloVOnjzledep5Fy4cHHNmjU+n2/t2rXcXh8AUE6225gZDg7VqtSLxfI/iTbmuUQiEQqFfD7fwoWtH374kee9p9Jy9OixZctCPp+vtbWVG4kBAMrPXhsbvOvrYLFKv+tYdvbWqgkV3cYs8Xh87dq1Pp9v5szmXbt2ed6BKiEHDhycM6fF5/OFQiEu1QcAeMX2sbHBi8dy1Ktcd+mnjVWc7u7uhoYGv9+/cePGa6NVJBJpbGy0bl3BeUkAgLeKuW5s6Gr+oYpV+Pp+2liF6u/vb2lpGTduXHt7+7Fjx7xuR2Vy6tSpjRs31tXVNTY2cld9AECFKPYq/qz9K8eVYZyprHixWGzx4sXjxo1raGh46qmOY8di165p7eXixcTGjV1NTU1jxoxpaWk5dOiQ1xMPAMAwJ5+pTGpkea/Qp41Vj97e3gULFgzVslOn4p5XKFdK2PPPdzc3N1sljJtWAAAqkyvHxnJ0LtpYFbJq2ZgxY5qamjZu7KrGWpZcwpqbm7u7u7kyDABQyYppY4NX6qd/aXiuE5e0sWq2c+fOlpaWMWPG+P3+BQsWPN/d/VE0ek21MnMqHt+xc+fixYsDgcB1111HCQMAVBHbbSxLFcvyKFfx157+/v6Ojo7m5mafz+fz+Zqbmzs6Oirh0qtoNNrV1bVgwYK6ujrrYN7KlSv7+vq83i4AAIpjs42l33DM9hNoYzUlGo12d3cPFaCGhoYFCxaEQqGenp5S16D+/v7e3t5QKNTa2trQ0DBu3Difz9fS0lIh1RAAAMfsn6mMGKPirvrOjJY2liwej/f29nZ0dIRCocbGxkAgICLW5wCGKlpvkvy3V7VGSzZUvHw+n4j4/f6GhoZQKLR27dqCowEAUEWcfKYSGZjEAbFYLLmiNSQZN25cnhvTWUfakg0Vr2g06vXbAgCghGhjrmASAQCAQyNqY2Y4mO3sZSQ8Oi4WS0IbAwAADo2gjQ3d3SKlkA0uHV3XmNHGAACAQyM8U5m1kRX4gvFaRBsDAAAO2WljOW8mluOur6q5DpzVLNoYAABwyM02lt6+hm/UX/OVjDYGAAAccu8zlcmdbbh9DSyt9TpGGwMAAA65fIcLMxzMqF6RSI1XMaWNAQAAx9y/35hpjppr94fRxgAAgEPc/dUVTCIAAHDItTZmXSBW69eH5UIbAwAADrl3bCxiZLSxLItqFG0MAAA4RBtzBW0MAAA4RBtzBW0MAAA4ZLON5fh+8GS0MQAAgOLZvxd/oW+dpI0BAAAUz9axMesrjgrUMdoYAABA8eydqRz+xskivjicNgYAAFCQ3av4bfYx2hgAAEBR+EylK2hjAADAIdqYK2hjAADAodK3sUKfxawJtDEAAOAQ31PpCtoYAABwyL1jY6MakwgAAByijbmCSQQAAA7RxlzBJAIAAIdoY65gEgEAgEO0MVcwiQAAwCHamCuYRAAA4BBtzBVMIgAAcIg25gomEQAAOEQbcwWTCAAAHKKNuYJJBAAADtHGXMEkAgAAh2hjrmASAQCAQ7QxVzCJAADAIdqYK5hEAADgEG3MFUwiAABwiDbmCiYRAAA4RBtzBZMIAAAcoo25gkkEAAAO0cZcwSQCAACHaGOuYBIBAIBDtDFXMIkAAMAh2pgrmEQAAOAQbcwVTCIAAHCINuYKJhEAADjCwfYdAAAJEUlEQVREG3MFkwgAAByijbmCSQQAAA7RxlzBJAIAAIdoY65gEgEAgEO0MVcwiQAAwCHamCuYRAAA4BBtzBVMIgAAcIg25gomEQAAOEQbcwWTCAAAitDX1xcaJCJDP/f09Hi9adWKNgYAAIoQi8Wuu+46ydDf3+/1plUr2hgAAChOa2trWhVramryeqOqGG0MAAAUJ/PwGAfGRoI2BgAAipZ8eIwDYyNEGwMAAEVLPjzGgbERoo0BAAAnrMNjHBgbOdoYAABwwjo8xoGxkaONAQAAh3p7e73ehFpAGwMAAPASbQwAAMBLtDEAAAAv0cYAAKPX9f6Jmd/wA5TB9f6JQ/shbQwAMHqJyHp9l5DyR2S4g9HGAACjl4hs0D8RUv6ISDQajUajiUSCNgYAGL1E5Bn9EyHlj4isWrWqvb392WefpY0BAEYvEdmoewkpf0Skra2tra1t3bp1tDEAwOglIl3aT0j5QxsDAEBVVUSe035Cyh/aGAAAqqoisln/Qkj5QxsDAEBVVUSe132ElD+0MQAAVFVF5AV9j9RkHg/7/yni/WbkCm0MAABVVRHZrvtrJk+E/SIiRkdxTzQXTRAR8c81Mx/tuEVEgoue8PqtFZ+OW6x73hc7G+UKbQwAAFVVEdmpB6stT99qPJ1t+W/nBUXkxnlmcQM+Fb5RRCT7mE/fKiLBB58qdiPNBycU/G4gB8PazlJDRGRC+Lfp7yW31JVLHtoYAACqqiLysh6qqqxvFBGRuvAr6Q+ZD9aJiLG+2DHbDBGRxkjulws+uD7rc61XzFaz1qdtTPq25R125IncLVnGH5i6XLJMaSlDGwMAQFVVRCL6fpXFfKhORORGw0xZ3hm+UUS+Eyl2wA3fERGZ+XCeR4MPdebbksw29lCn9URjQ8qaQ7/mH3aksd5R+vxUWmhjAACoqorI79WsujxnnVuU5hXDC5/5bt4DPyLyt+E/ZBnN/PnfZm9UP39uaNiBn/Pkme+KiPFMziXWqwyvYHNYBxmYh+xvtpJCGwMAQFVVRHr1w2rMKkNERIxO69fN4ZtE5Prwrmwrd94mInLPqtzj3BZJWmguvX545M7bRCS4dLN+uCq8dHPO7em8LWljsixJGTNl2FJOy64fBlPfWiWFNgYAgKqqiLyh0epM1+0iIjfdbw79fM+jWdc0l31LRILLtuYaJO2hyD0i8q3wa8kr3G+1nOyDDK5mdGVsXl45RxtJXrs/PLgZkXus1xl8L5UV2hgAAKqqItKnn1R7toVvFpEbwq/36Sd9+nprUJoiuR7N8kQJhrZlLBwc4dmmwRXWDBx2ejbbNjzblP5Q6hIzdEPKCsPDlmxanm0SGX4jke8VLIciInJzq1mmvxptDAAAVVUReUcPV3ci3xcRCbbtHFzyuCEickfE+vWNB4IicvMDZuZzN90xWEGSH33cSF6y6Y7hwa2hRIxN2YdKWZ66xGy7IWWF5GFLkseN1E21ZslGG8s2USUJbQwAAFVVEfmzHi1DnjTslYFcjF/lGvllc/efI7PujKS91s0/Na1fd79sHn0y3PZyjk26M9w2UWRiePfg8l/dKSLBofVTfzXbJorI8Pq7fxrMsrF3RgafOLTZ1hOH30Xaq7g9P5FZIsmTkCPpW1XWCG0MAABVFZH9GitDOkbaNrZkGdbc0mFmvtZbi4IiMnlRloeSYvWV4MORgfVndQyM+bA/5eW23DWwWuYTkwfcclfaRlrj5Jc0iJvzM/zShSYh/c2WNUIbAwBAVUXkkH5epVk/cDKuO3V5990iInJ3JM9zU9Z5JTw568/DawYfeSXp6a+Yf8w+YPKWmI/cWLiNpQzrUgbemtXGHjTzrmxtZPoElim0MQAAVFVF5AM9UZUxl98kIjK7M/tyEWOr7dG2Ng8MtWdJMG3Mrc0iElz+qp0R8ryitVVFbJKzWG9ExNjaaYhI/RLTxhyWfKuyhzYGAICqqohE9WQ1pssQEbknkr78tXD94JGhOV22R0t6lojxQtJDL9wjIsEVrxUY4YV70p+YGnPFTflXcCuROdbWdhkiUr/MzLty2bYqW2hjAACoqorIYY1XX8z2m0Uk2P5G+kPbvi8i0rIp0iIiN4f32h5zb9vA9fj1bWbGgFleKNvrGtsKbHCeFdzOJiPzvXi/VcmhjQEAoKoqIsf0TLWl/+GgiEx52Ex/aHd4iohMDvcPriOzInaH3TxwHX3L5pTl22eJSHDl7gJP3z5LRIztx/TMsUiLBFfujrQUvGws61twK5sNG+ObKycPbXbZQxsDAEBVVUQ+13PVle6Bi/d3pD8UmSsiElz9R+tXc/VkERH5QcT2mIOSnrLjB8lj5syOH6QMMLc7bQVrYzK3ubSzNOURM+9qZd+q5NDGAABQVRWRL/R8NSUyT0RE5m1NXf52eIp1tGm5mbmy1If35R5z3/KBe7ruSH5K5kvkyI7ZyTXMGiQz5ur6PI+WIFuNjNmogK1KDm0MAABVVRGJ68XqyXvtQatdvZe5UCTQbmY8JaldbcsYcG84MNiiXkxa/mLqWcZsw6avmWedi3G9GDd/UZ/+KqXNNqMStyo5tDEAAFRVReSsJqor28OP9g/9PHSGMTi8MD3mo1OGq9W92zVxVhP9Qz1MZG4k27Mi90o+A+OcjTy6ykx/bvLghQyO4/osGSISyNy2s5o4qy/OTd4E40VP/o60MQAAVFVF5Lx+Wa0ZLExTwgcKrXxgdVBE7t0x8OtLq4MBERHjJRsvZD03WWC1me8p+4ppYzsKb4CT7DDybWfyFs6LePPno40BAKCqKiIX9BKpvew0rKaVYwXz4D6vt5A2BgCAqqqIJPQyIeUPbQwAAFVVEbmklwkpf2hjAACoqorIV3qFkPKHNgYAgKqqiFzWq4SUP7QxAABUVUXkil4lpPyhjQEAoKoqIlf1GiHlD20MAABVVRG5ptcIKX9oYwAAqKqK8H8Q3qCNAQCgqjpmzBjbd40H3PS1r32NNgYAwIBoNLpq1ao2wAu0MQAANBqNtre3e/1PGaMUbQwAAI3H4+vXr18HeOGNN96gjQEAAHiJNgYAAOAl2hgAAICXaGMAAABeoo0BAAB4iTYGAADgpf8HEk0VSLD7LegAAAAASUVORK5CYII=" alt="" width="488" height="238" />

逐行处理查询结果,以编程的方式访问数据。
 

游标的定义

游标作为一种数据类型,首先必须进行定义,其语法如下:

cursor 游标名 is select 语句;

cursor是定义游标的关键词,select是建立游标的数据表查询命令。

Oracle 游标
declare
  cursor c1 is
    select ename, sal from emp where rownum<11; --定义游标
  v_ename varchar2(10);
  v_sal number(7,2);
begin
open c1; --打开游标
fetch c1 into v_ename, v_sal; --fetch游标,读取数据
while c1%found
loop
dbms_output.put_line(v_ename||to_char(v_sal) );
fetch c1 into v_ename, v_sal;
end loop;
close c1; --关闭游标
end;
Oracle 游标

游标的类型

aaarticlea/png;base64,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" alt="" width="440" height="128" />

隐式游标

在PL/SQL中使用DML语句时自动创建隐式游标,即:所有的SQL 语句在上下文区内部都是可执行的,因此都有一个游标指向上下文区,此游标就是所谓的SQL游标(SQL cursor),与显式游标不同,SQL游标不被程序打开和关闭,通过检查隐式游标的属性可以获得最近执行的DML 语句的信息。
隐式游标的属性有:SQL+属性
  1.%FOUND – SQL 语句影响了一行或多行时为 TRUE
  2.%NOTFOUND – SQL 语句没有影响任何行时为TRUE
  3.%ROWCOUNT – SQL 语句影响的行数
  4.%ISOPEN  - 游标是否打开,始终为FALSE
Oracle 游标
SET SERVEROUTPUT ON
BEGIN
UPDATE toys SET toyprice=270
WHERE toyid= 'P005';
IF SQL%FOUND THEN --只有在 DML 语句影响一行或多行时,才返回 True
DBMS_OUTPUT.PUT_LINE('表已更新');
END IF;
END;
Oracle 游标
Oracle 游标
SET SERVEROUTPUT ON
DECLARE
v_TOYID TOYS.ID%type := '&TOYID';
v_TOYNAME TOYS.NAME%Type := '&TOYNAME';
BEGIN
UPDATE TOYS SET NAME = v_TOYNAME
WHERE toyid=v_TOYID;
IF SQL%NOTFOUND THEN --如果 DML 语句不影响任何行,则返回 True
DBMS_OUTPUT.PUT_LINE('编号未找到。');
ELSE
DBMS_OUTPUT.PUT_LINE('表已更新');
END IF;
END;
Oracle 游标
Oracle 游标
SET SERVEROUTPUT ON
BEGIN
UPDATE vendor_master
SET venname= 'Rob Mathew'
WHERE vencode='V004';
DBMS_OUTPUT.PUT_LINE (SQL%ROWCOUNT); --返回 DML 语句影响的行数
END;
Oracle 游标
Oracle 游标
BEGIN
UPDATE rooms SET number_seats = 100
WHERE room_id = 99980;
-- 如果更新没有匹配则插入一新行
IF SQL%ROWCOUNT = 0 THEN
INSERT INTO rooms ( room_id, number_seats )
VALUES ( 99980, 100 ) ;
END IF;
END;
Oracle 游标

SELECT INTO 语句

Oracle 游标
SET SERVEROUTPUT ON
DECLARE
empid VARCHAR2(10);
desig VARCHAR2(10);
BEGIN
empid:= '&Employeeid';
SELECT designation INTO desig
FROM employee WHERE empno=empid;
EXCEPTION
WHEN NO_DATA_FOUND THEN --如果没有与SELECT INTO语句中的条件匹配的行,将引发NO_DATA_FOUND异常
DBMS_OUTPUT.PUT_LINE('职员未找到');
END;
Oracle 游标
Oracle 游标
SET SERVEROUTPUT ON
DECLARE
  empid VARCHAR2(10);
BEGIN
  SELECT empno INTO empid FROM employee;--给变量多个值
  EXCEPTION
    WHEN TOO_MANY_ROWS THEN --如果 SELECT INTO 语句返回多个值,将引发TOO_MANY_ROWS异常
      DBMS_OUTPUT.PUT_LINE('该查询提取多行');
END;
Oracle 游标

显式游标

显式游标在 PL/SQL 块的声明部分定义查询,该查询可以返回多行。
 
显式游标的操作过程:

aaarticlea/png;base64,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" alt="" width="443" height="233" />

如何使用?

游标的打开操作

  如果要使用创建好的游标,需要先打开游标,语法结构如下:

  open 游标名;

  打开游标的过程有以下两个步骤:

    (1)将符合条件的记录送入内存。

    (2)将指针指向第一条记录的前面。

游标打开了要关闭:CLOSE 游标名;

游标提取数据的操作(每次只能提取一行);

  如果要提取游标中的数据,需要使用fetch命令,语法形式如下。

  fetch 游标名 into 变量名1, 变量名2,……;

  或fetch 游标名 into 记录型变量名;

示例代码:

Oracle 游标
set serveroutput on
declare
tempsal scott.emp.sal%type; --定义cursorrecord变量是游标mycursor的记录行变量
cursor mycursor is
select * from scott.emp
where sal>tempsal; --在游标mycursor的结果中找到sal字段大于800的第一个记录
cursorrecord mycursor%rowtype;
begin
tempsal:=800;
open mycursor;
fetch mycursor into cursorrecord;
dbms_output.put_line(cursorrecord.deptno); --显示deptno字段的内容
end;
Oracle 游标
Oracle 游标
set serveroutput on
declare tempsal scott.emp.sal%type;
cursor mycursor is
select * from scott.emp
where sal>tempsal;
cursorrecord mycursor%rowtype;
begin tempsal:=800;
if mycursor%isopen then
fetch mycursor into cursorrecord; dbms_output.put_line(to_char(cursorrecord.deptno));
else dbms_output.put_line('游标没有打开!');
end if;
end;
Oracle 游标
Oracle 游标
SET SERVER OUTPUT ON
DECLARE
  my_toy_price toys.toyprice%TYPE;
  CURSOR toy_cur IS
    SELECT toyprice FROM toys
      WHERE toyprice<250; --声明游标
BEGIN
  OPEN toy_cur; --打开游标
  LOOP
    FETCH toy_cur INTO my_toy_price; --提取行
    EXIT WHEN toy_cur%NOTFOUND;
    DBMS_OUTPUT.PUT_LINE('TOYPRICE=:玩具单价=:'||my_toy_price);
  END LOOP;
  CLOSE toy_cur; --关闭游标
END;
Oracle 游标

带参数的显式游标

声明显式游标时可以带参数以提高灵活性。
声明带参数的显式游标的语法如下:

CURSOR <cursor_name>(<param_name> <param_type>)

IS select_statement;

要注意的是:参数定义时,数据类型只能写名字,而不能定义长度!还有,当定义了参数游标后一定要在游标子查询的where子句中引用参数不然就没有意义。

Oracle 游标
SET SERVEROUTPUT ON
DECLARE
  desig VARCHAR2(20);
  emp_code VARCHAR2(5);
  empnm VARCHAR2(20);
  CURSOR emp_cur(desigparam VARCHAR2) IS
    SELECT empno, ename FROM employee
      WHERE designation=desigparam;
BEGIN
  desig:= '&desig';
  OPEN emp_cur(desig);
  LOOP
    FETCH emp_cur INTO emp_code,empnm;
    EXIT WHEN emp_cur%NOTFOUND;
      DBMS_OUTPUT.PUT_LINE(emp_code||' '||empnm);
  END LOOP;
  CLOSE emp_cur;
END;
Oracle 游标

使用显式游标更新行

允许使用游标删除或更新活动集中的行。
声明游标时必须使用 SELECT … FOR UPDATE OF 列名 [nowait]语句. For update用于结果集上加锁,nowait 不等待锁。
  CURSOR <cursor_name> IS

    SELECT statement FOR UPDATE;

更新的语法

  UPDATE <table_name>

    SET <set_clause>

      WHERE CURRENT OF <cursor_name>

删除的语法

DELETE FROM <table_name>

  WHERE CURRENT OF <cursor_name>
Oracle 游标
SET SERVEROUTPUT ONDECLARE
  new_price NUMBER;
  CURSOR cur_toy IS
    SELECT toyprice FROM toys WHERE toyprice<100
      FOR UPDATE OF toyprice;
BEGIN
  OPEN cur_toy;
  LOOP
    FETCH cur_toy INTO new_price;
    EXIT WHEN cur_toy%NOTFOUND;
    UPDATE toys
      SET toyprice = 1.1*new_price
        WHERE CURRENT OF cur_toy;
  END LOOP;
  CLOSE cur_toy;
  COMMIT;
END;
Oracle 游标

循环游标

循环游标用于简化游标处理代码,当用户需要从游标中提取所有记录时使用,不需要显示打开和关闭游标。
 
循环游标的语法如下:
FOR <record_index> IN <cursor_name>
LOOP
<executable statements>
END LOOP;

注意: <record_index> 名字可以不需要定义,直接使用,因为是Oracle隐含定义的变量名

Oracle 游标
SET SERVER OUTPUT ON
DECLARE
  CURSOR mytoy_cur IS
    SELECT toyid, toyname, toyprice
      FROM toys;
BEGIN
  FOR toy_rec IN mytoy_cur
  LOOP
    DBMS_OUTPUT.PUT_LINE('玩具编号:'||' ' ||toy_rec.toyid||' '
||'玩具名称:'||' '||toy_rec.toyname||' '
||'玩具单价:'||' '||toy_rec.toyprice);
  END LOOP;
END;
Oracle 游标

REF 游标和游标变量

REF 游标和游标变量用于处理运行时动态执行的 SQL 查询。
创建游标变量需要两个步骤:
  1.声明 REF 游标类型
Type newer_cur is ref cursor; --定义了一个newer_cur的游标类型(弱类型)
Type newer_cur is ref cursor return emp%rowtype; --强游标类型,表示这个游标的结果返回的一定是empty类型
  2.声明 REF 游标类型的变量
Mycur newer_cur;  --定义变量mycur,它是引用游标类型
 
用于声明 REF 游标类型的语法为:
TYPE <ref_cursor_name> IS REF CURSOR [RETURN <return_type>];
打开游标变量的语法如下:
OPEN cursor_name FOR select_statement;

声明强类型的 REF 游标

TYPE my_curtype IS REF CURSOR
RETURN stud_det%ROWTYPE;
order_cur my_curtype;

声明弱类型的 REF 游标

TYPE my_ctype IS REF CURSOR;
stud_cur my_ctype;
Oracle 游标
DECLARE
  TYPE toys_curtype IS REF CURSOR
    RETURN toys%ROWTYPE;
  toys_curvar toys_curtype;
  toys_rec toys%ROWTYPE;
BEGIN
  OPEN toys_curvar FOR
    SELECT * FROM toys;
  FETCH toys_curvar INTO toys_rec;
  ...
  CLOSE toys_curvar;
END;
Oracle 游标

游标变量的优点和限制

游标变量的功能强大,可以简化数据处理。
游标变量的优点有:
  1.可从不同的 SELECT 语句中提取结果集
  2.可以作为过程的参数进行传递
  3.可以引用游标的所有属性
  4.可以进行赋值运算
使用游标变量的限制:
  1.不能在程序包中声明游标变量
  2.FOR UPDATE子句不能与游标变量一起使用
  3.不能使用比较运算符
 
可以使用游标变量执行动态构造的 SQL 语句。
打开执行动态 SQL 的游标变量的语如下:
OPEN cursor_name FOR dynamic_sqlstring [USING bind_argument_list];
Oracle 游标
DECLARE
  r_emp emp%ROWTYPE;
  TYPE c_type IS REF CURSOR;
  cur c_type;
  p_salary NUMBER;
BEGIN
  p_salary := 2500;
  OPEN cur FOR 'select * from emp where sal>:1 order by sal desc' USING p_salary;
  DBMS_OUTPUT.PUT_LINE('薪水大于'|| p_salary ||'的员工有:');
  LOOP
    FETCH cur INTO r_emp;
  EXIT WHEN cur%NOTFOUND;
    DBMS_OUTPUT.PUT_LINE('编号:'|| r_emp.empno
      || ' 姓名:' || r_emp.ename|| ' 薪水:' || r_emp.sal );
  END LOOP;
  CLOSE cur;
END;
Oracle 游标

其他笔记

显示游标

--更新员工的奖金,如果成功了,则提示成功的信息,失败了则提示失败的信息。

Oracle 游标
begin
update emp set comm = 1 where empno = 8499; --DML语句
if SQL%found then
dbms_output.put_line('数据已经成功更新了');
else
dbms_output.put_line('数据更新失败');
end if;
end;
Oracle 游标

--记录用户登录情况的信息(更新用户的登录信息)

Begin
Update login set ltime = sysdate where name = 'zs';
If sql%notfound then
Insert into login values('zs', sysdate);
End if;
End;

--在PL/SQL中显示所有工资大于2000的员工信息

Oracle 游标
Declare
--定义一个游标,里面保存的是工资大于2000的数据
Cursor mycursor is select * from emp where sal > 2000;
mydata emp%rowtype;
Begin
Open mycursor; --打开游标
Fetch mycursor into mydata; --提取一行数据
Dbms_output.put_line(mydata.empno || ' ' || mydata.ename);
Close mycursor; --关闭游标
End;
Oracle 游标

--循环输出

Oracle 游标
Declare
--定义一个游标,里面保存的是工资大于2000的数据
Cursor mycursor is select * from emp where sal > 2000;
mydata emp%rowtype;
Begin
Open mycursor; --打开游标
loop
Fetch mycursor into mydata; --提取一行数据
If mycursor%notfound then
Exit;
End if;
Dbms_output.put_line(mydata.empno || ' ' || mydata.ename || ' ' || mydate.sal);
End loop;
Close mycursor; --关闭游标
End;
Oracle 游标

--使用for循环来操作

Oracle 游标
Declare
--定义一个游标,里面保存的是工资大于2000的数据
Cursor mycursor is select * from emp where sal > 2000;
mydata emp%rowtype;
Begin
For myname in mycursor loop --无需打开关闭和,表示提取一行到myname里面
Dbms_ouptup.put_line(myname.empno || ' ' || myname.ename);
End loop;
End;
Oracle 游标

--使用游标2:列数和顺序要一致

Oracle 游标
Declare
Cursor mycur is select ename, sal from emp;
Var_row emp%rowtype;
Var_name emp.ename%type;
Var_sal emp.sal%type;
Begin
Open mycur;
Loop
--fetch mycur into var_row; --错误 PLS-00394: 在FETCH语句的INTO列表中值数量出现错误
Fetch mycur into var_name, var_sal; -- 使用变量来接收结果
Exit when mycur%notfound;
Dbms_output.put_line(var_name || ' ' || var_sal);
End loop;
Close mycur;
End;
Oracle 游标

--参数游标:在定义游标的时候通过定义参数提高灵活性。

--指定工资参数的游标:

Oracle 游标
Declare
Cursor cur_sal(vsal number) is select * from emp where sal > vsal;
Begin
For row in cur_sal(2000) loop
Dbms_output.put_line(row.ename || ' ' || row.sal);
End loop;
End;
Oracle 游标

--可更新游标

Oracle 游标
--更新
Declare
Cursor cur is select * from emp where sal > 2500 for update;
Begin
For row in cur loop
Dbms_output.put_line(row.ename || ' ' || row.sal || ' ' || row.comm);
--update emp set comm = 9 where empno = row.empno;
Update emp set comm = 9 where current of cur;
--delete emp where current of cur; --删除游标数据
End loop;
End;
Oracle 游标

REF游标

--使用

Oracle 游标
Declare
Type newer_cur is ref cursor;
Var_row emp%rowtype;
Var_cur newer_cur;
Begin
Open var_cur for select * from emp where sal > 2500;
Loop
Fetch var_cur into var_row;
Exit when var_cur%notfound;
Dbms_output.put_line(var_row.empno || ' ' || var_row.ename || ' ' || var_row.sal);
End loop;
End;
Oracle 游标

--根据员工所在的部门信息来查询数据,如果员工是10部门则查询前5个员工,如果是20部门则查询6-10号,如果是30部门则查询10号以后的员工

Oracle 游标
Declare
Type mycur is ref cursor;
Cur mycur;
Var_dept int;
Var_n varchar2(20);
Var_sal int;
Var_rn int;
Begin
Var_dept := &n;
If var_dept = 10 then
Open cur for select * from (select rownum rn, d.* from (select ename,sal from emp order by sal desc) d ) where rn <=5;
Else if var_dept = 20 then
Open cur for select * from (select rownum rn, d.* from (select ename,sal from emp order by sal desc) d ) where rn > 5 and rn <=10;
Else
Open cur for select * from (select rownum rn, d.* from (select ename,sal from emp order by sal desc) d ) where rn > 10;
End if;
End if; Loop
Fetch cur into var_rn, var_n, var_sal;
Exit when cur%notfound;
Dbms_output.put_line(var_n || ' ' || var_sal || ' ' || var_rn);
End loop;
End;
Oracle 游标