рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░ред
рдУрд░реЗрдХрд▓ 12 рд╕реА рдХреА рдирдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддреЗ рд╣реБрдП, рдпрд╣рд╛рдВ рдФрд░ рд╡рд╣рд╛рдВ рдореБрдЭреЗ рдиреБрдХрд╕рд╛рди рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд╕рдм рдХреБрдЫ рдЕрдкреЗрдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдХреНрд░реИрд╢ рдпрд╛ рдмрд╕ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИред рдмреЗрд╢рдХ, рдпрд╣ рдПрдХ рдорд╛рдирдХ рд╕реНрдерд┐рддрд┐ рд╣реИ рдЬрдм рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреА рдкрд╣рд▓реА рд░рд┐рд▓реАрдЬ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХрдЪреНрдЪреЗ рд╣реЛрддреЗ рд╣реИрдВ ... рд▓реЗрдХрд┐рди, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЪреЗрддрд╛рд╡рдиреА рджреА рд╣реИ - рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рд╕рд╢рд╕реНрддреНрд░ред рд╢рд╛рдпрдж рдХреЛрдИ рдореЗрд░реЗ рдХрд╛рдо рдЖрдПрдЧрд╛ рддрд╛рдХрд┐ рдореЗрд░реА рд░реЗрдХ рдХреЛ рдирд╛ рджреЛрд╣рд░рд╛рдПред
рдореИрдВ рдЙрди рдкрд░ рд╣рдорд▓реЗ рдХреЗ рдХреНрд░рдо рдореЗрдВ рдПрдХ рд░реЗрдХ рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдВред
рдкреБрдирд╢реНрдЪ: рд╕рдВрдкрд╛рджрд┐рдд: рдЕрдВрдд рдореЗрдВ рдПрдХ рдмрдЧ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рддреБрд░рдВрдд рд▓рд┐рдЦрдирд╛ рднреВрд▓ рдЧрдпрд╛ (рдкреАрдПрд▓ / рдПрд╕рдХреНрдпреВрдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, SQL рдирд┐рд░реНрдорд╛рдг рдЬрд┐рд╕рдореЗрдВ рдкреАрдПрд▓ / рдПрд╕рдХреНрдпреВрдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред
рдкреЗрд╢ рд╣реИ рд╕реНрдерд╛рдиреАрдп рд╢реНрд░реЛрддрд╛ рдХреЗ рд╕рд╛рде PMON
рдЖрдЗрдП рдПрдХ рд╕рд░рд▓ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ, рдЬреЛ рдХрд╛рдлреА рдмрдЧ рднреА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рдорд╕реНрдпрд╛ рд╣реИред
рдУрд░реЗрдХрд▓ 12 рд╕реА рдХреЗ рдПрдХ рдорд╛рдирдХ рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд (рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ - рдУрд░реЗрдХрд▓ рд▓рд┐рдирдХреНрд╕ рдкрд░, рд▓реЗрдХрд┐рди, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ)ред
- рдПрдХ рд╕реАрдбреАрдмреА рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рдПрдБред
- рд╣рдо рдкреАрдбреАрдмреА-рдЖрдзрд╛рд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ / рдмрдирд╛рддреЗ рд╣реИрдВред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЬреЛрдбрд╝реЗ рдЧрдП рдбреЗрдЯрд╛рдмреЗрд╕ рд╢реНрд░реЛрддрд╛ рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВ рджреЗрдЦреЗ рдЬрд╛рддреЗ рд╣реИрдВред "рдЖрдЙрдЯ рдСрдл рдж рдмреЙрдХреНрд╕" PMON рдиреЗ рдПрдХ рд╣реА рд╕рд░реНрд╡рд░ рдкрд░ рд░рд╣рдиреЗ рд╡рд╛рд▓реЗ рд╢реНрд░реЛрддрд╛ рд╕реЗ рджреЛрд╕реНрддреА рдирд╣реАрдВ рдХреА рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрдВрдЬреАрдХрд░рдг рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рддреНрд░рд╛рд╕рджреА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рд╢реНрд░реЛрддрд╛.рдУрд░рд╛ рд╕реЗ рд╣рд╛рде рдЬреЛрдбрд╝рдирд╛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдирдП рдмрд╣реБрд╕рд╛рдВрд╕реНрдХреГрддрд┐рдХ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИред
рдЖрдЗрдП PMON рдФрд░ рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ рд░рд╣рдиреЗ рд╡рд╛рд▓реЗ рд╢реНрд░реЛрддрд╛ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрдВ:
ALTER SYSTEM SET local_listener='(ADDRESS = (PROTOCOL=TCP)(HOST=192.168.56.101)(PORT=1521))' scope=both; ALTER SYSTEM REGISTER;
рдЖрдзрд╛рд░ рдкрдВрдЬреАрдХреГрдд, рд╢реНрд░реЛрддрд╛ рдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдЖрдирдВрдж рдЖрдпрд╛ рд╣реИред рдпрд╣ рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдареАрдХ 12-ki рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдпрд╣ рдерд╛ рдХрд┐ рдЬрд╛рдиреЗ рдкрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рдирд╛ / рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЧрдпрд╛, рдФрд░ рдорд▓реНрдЯреАрдЯреЗрдиреЗрдВрдЯ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░, рдПрдХ рд╢реНрд░реЛрддрд╛ рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрдВрдЬреАрдХрд░рдг рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИред рдкрд╣рд▓реЗ, рдПрдХ рдирдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рдирд╛ рдПрдХ рдмрд╣реБрдд рдмрдбрд╝рд╛ "рдЗрд╡реЗрдВрдЯ" рдерд╛ рдФрд░ рд╢реНрд░реЛрддрд╛.рдУрд░рд╛ рдХреЛ рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдореБрдЭреЗ рдХреЛрдИ рдкреВрд░реНрд╡рд╛рдЧреНрд░рд╣ рдирд╣реАрдВ рд╣реБрдЖред
рд░рд┐рдмреВрдЯ рдХреЗ рдмрд╛рдж рдСрдЯреЛрд╕реНрдЯрд╛рд░реНрдЯ рдкреАрдбреАрдмреА
рд╣рдо рд╕рд░реНрд╡рд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рддреЗ рд╣реИрдВред рд╕реАрдбреАрдмреА рдореЗрдВ рддреЗрдЬреА рдЖрдИ рд╣реИред рдкреАрдбреАрдмреА - рдЦреБрд▓рд╛ рдирд╣реАрдВ (рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдиреЗрдХреНрд╢рди рдкреНрд░рдЧрддрд┐ рдореЗрдВ рд╢рдЯрдбрд╛рдЙрди рдпрд╛ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╡рд┐рдлрд▓ рд░рд╣рд╛)ред
рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛, рд╢рд╛рдпрдж рдпрд╣ рд╕рд╣реА рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд░ рд░рд┐рдмреВрдЯ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдкреНрд░рд╢рд╛рд╕рдХ рдХреЛ рд╕реАрдбреАрдмреА рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдХрд╣рдирд╛ рдЪрд╛рд╣рд┐рдП
alter pluggable database all open;
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдзрд╛рд░ рдмрд╕ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдирд╣реАрдВ) ... рд▓реЗрдХрд┐рди рдХреБрдЫ рдореБрдЭреЗ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣, рдЗрд╕реЗ рд╣рд▓реНрдХреЗ рдврдВрдЧ рд╕реЗ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИред рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рджрд░реНрдЬрдиреЛрдВ рдФрд░ рд╕реИрдХрдбрд╝реЛрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдбреАрдмреАрдП рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдзрдиреНрдпрд╡рд╛рдж рдирд╣реАрдВ рдХрд╣реЗрдВрдЧреЗред
рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдпрд╛ рдХрдорд╛рдВрдб рдЬреЛ рдУрд░реЗрдХрд▓ рдХреЛ рд╕рдордЭрд╛рдПрдВрдЧреЗ рдХрд┐ рдкреАрдбреАрдмреА-рд╢рдХреА рдХреЛ рд╕рднреА рдХреЛ рдПрдХ рд╕рдорд╛рди рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ (рд╢рд╛рдпрдж рдореБрдЭреЗ рдмреБрд░реА рддрд░рд╣ рд╕реЗ рджреЗрдЦрд╛ рдЧрдпрд╛ рд╣реИред рдЕрдЧрд░ рдХреЛрдИ рдорд┐рд▓рд╛ рддреЛ рдореБрдЭреЗ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдмрддрд╛рдПрдВ)ред
рд╕рд░реНрд╡рдЬреНрдЮ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░, рдпрд╣ рдХреНрд╖рдг рдЕрдм рд╕рдорд╛рдЪрд╛рд░ рдФрд░ рд╕рдмрд╕реЗ рдЖрдо рд╕рд┐рдлрд╛рд░рд┐рд╢ рдирд╣реАрдВ рд╣реИ:
create or replace trigger open_all_pdb after startup on database BEGIN execute immediate 'alter pluggable database all open'; END open_all_pdbs;
рдореЗрд░реЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╡рд┐рд╢реНрд╡рд╛рд╕реЛрдВ рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЯреНрд░рд┐рдЧрд░реНрд╕ рдХреЛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд╕рдмрд╕реЗ рдЫреЛрдЯреА рдмреБрд░рд╛рдЗрдпреЛрдВ рдХреЛ рдЙрдкрд▓рдмреНрдз рд▓рдЧрддрд╛ рд╣реИред
рдЕрджреГрд╢реНрдп рд╕реНрддрдВрдн
рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ Oracle рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди PL / SQL рдбреЗрд╡рд▓рдкрд░ (рд╕рдВрд╕реНрдХрд░рдг 10.0.1.1694 - рдЕрднреА рд╣рд╛рд▓ рд╣реА рдореЗрдВ PL / SQL рдбреЗрд╡рд▓рдкрд░ рд╕рд╛рдЗрдЯ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ рд╣реИ), рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреАред
рдЕрджреГрд╢реНрдп sqlplus рдХреЙрд▓рдо рдкрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ (рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣реЛрддрд╛ рд╣реИ):
SQL> descr test_invisible; Name Null? Type
рдФрд░ PL / QSL рдбреЗрд╡рд▓рдкрд░ рдХрдорд╛рдВрдб рд╡рд┐рдВрдбреЛ:
SQL> descr test_invisible; Name Type Nullable Default Comments
рдЕрдм рддрдХ, Pl / Sql рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдирдИ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдкрддрд╛ рд╣реИ, рдЬреЛ рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рд╣рд░ рдХреЛрдИ рдпрд╣ рдорд╣рд╕реВрд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкреАрдПрд▓ / рдПрд╕рдХреНрдпреВрдПрд▓ рдбреЗрд╡рд▓рдкрд░ рдХрдорд╛рдВрдб рд╡рд┐рдВрдбреЛ рдХреБрдЫ рдкрд╛рдЗрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдИрдорд╛рдирджрд╛рд░ рдПрд╕рдХреНрдпреВрдПрд▓ * рдкреНрд▓рд╕ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл рдПрдХ рдЫрджреНрдо рдЬреИрд╕рд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЬрд▓реНрдж рд╣реА рдЕрдкрдиреЗ рд╣реЛрд╢ рдореЗрдВ рдЖрдПрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдкрд╣рд▓реА рдмрд╛рд░ рдореЗрдВ рдореИрдВ рдХреБрдЫ рд╣реИрд░рд╛рди рдФрд░ рд╡рд┐рдЪрд╛рд░рд╢реАрд▓ рдерд╛ред
рдкреАрдПрд▓ / рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде
рдУрд░реЗрдХрд▓ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдИ рдЧрдИ рдереА (рд╣рдо рдмреНрд░реИрдХреЗрдЯ рдХреЗ рдмрд╛рд╣рд░ рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рдЪрд╛рд░ рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдкреЛрд╕реНрдЯ рдХреЗ рд╡рд┐рд╖рдп рдХреЛ рдСрдлрд╝реЙрдкрд┐рдХ рдХрд░рддреЗ рд╣реИрдВ), рд╕рд╛рде рд╣реА рд╕рд╛рде рдпрд╣ рднреА рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдЗрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░реИрдЧреНрдорд╛ рдпреВрдбреАрдПрдл рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди ...
"BUT" рдПрдХ рдмрдЧ рд╣реИ рдЬрд┐рд╕реЗ рдЬреЙрдирд╛рдерди рд▓реЗрд╡рд┐рд╕ рдиреЗ рдЦреЛрдЬрд╛ рдФрд░ рдЕрдкрдиреЗ рдмреНрд▓реЙрдЧ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ред
рдкреЛрд▓рд╛рдорд▓реА рдХрд╛ рдПрдХ рдкреНрд░рджрд░реНрд╢рди "рдлреАрдЪрд░" (рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ) рдЬреЛрдбрд╝реЗрдВ - рджреВрд╕рд░рд╛ - рдбреАрдЯреЗрд▓рд┐рдпрдоред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдирд┐рд╖реНрдкрдХреНрд╖рддрд╛ рдореЗрдВ, рдпрд╣ рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдкреНрд░рдХрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ:
WITH FUNCTION slow_function(p_id IN NUMBER) RETURN NUMBER DETERMINISTIC IS BEGIN DBMS_LOCK.sleep(1); RETURN p_id; END; SELECT slow_function(1) FROM all_ones WHERE ROWNUM <= 10; / 10 rows selected. Elapsed: 00:00:01.01 WITH FUNCTION slow_function(p_id IN NUMBER) RETURN NUMBER DETERMINISTIC IS BEGIN DBMS_LOCK.sleep(1); RETURN p_id; END; SELECT (SELECT slow_function(id) FROM dual) FROM all_ones WHERE ROWNUM <= 10; / Elapsed: 00:00:01.02
SQL рдкрд╛рда рд╡рд┐рд╕реНрддрд╛рд░
рдПрдХ рдФрд░ рдЕрдЪреНрдЫрд╛ рдирд╡рд╛рдЪрд╛рд░ рдирдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ DBMS_UTILITY.EXPAND_SQL_TEXT рд╣реИ - рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА
рд╣рдм рдкрд░ рдЗрд╕рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рд╣реИред
рдЬрдм рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛, рддреЛ рдЗрд╕рдиреЗ рд╡реАрдкреАрдбреА рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░ рдФрд░ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рджреЛрдиреЛрдВ рдкрд░ рдЕрджреНрднреБрдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ ... рдФрд░, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, all_users рдкрд░ ... рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕реЗ all_objects рдкрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕ рд╕реЗ dbms_utor рдкреИрдХреЗрдЬ рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╣реБрдИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдбреАрдмреАрдП рдХреА рднреВрдорд┐рдХрд╛ рд╡рд╛рд▓реЗ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдХреБрдЫ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЖрдВрддрд░рд┐рдХ рд╕рд┐рд╕реНрдЯрдо рдСрдмреНрдЬреЗрдХреНрдЯ рддрдХ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рджрд┐рдЦрд╛рдИ ... рдпрд╛ рд╢рд╛рдпрдж рдХреЛрдб рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдмрдЧред
DECLARE x CLOB; BEGIN dbms_utility.expand_sql_text(input_sql_text => 'select * from all_objects', output_sql_text => x ); dbms_output.put_line(x); END; ORA-00904: : invalid identifier ORA-06512: at "SYS.DBMS_UTILITY", line 1581 ORA-06512: at line 3
рдФрд░ рдпрд╣рд╛рдБ рдХреБрдЫ рдЪреАрдЬреЗрдВ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдореИрдВрдиреЗ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рджреВрд╕рд░реЛрдВ рд╕реЗ рдкрдврд╝рдирд╛ рднреА рджрд┐рд▓рдЪрд╕реНрдк рдерд╛:
DBMS_METADATA рдФрд░ рд╕рддреНрд░ рдЕрдиреБрдХреНрд░рдо
Sql.ru рдкрд░ рдПрдХ рд╡рд┐рд╖рдп рдореЗрдВ рдорд┐рд▓рд╛ред
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ DBMS_METADATA рдХреЛ рдЕрднреА рдирдИ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ:
рднреНрд░реВрдг рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛, рд╕рд░рдгрд┐рдпрд╛рдБ рдФрд░ рд░рди-рдЯрд╛рдЗрдо рдЧрдгрдирд╛
рдмреНрд▓реЙрдЧ рдкрд░ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рдорд┐рд▓рд╛
SQL> declare 2 type table_tt is table of employees%rowtype; 3 v_tt table_tt; 4 5 v_limit_nr number:=10; 6 v_counter_nr number:=0; 7 begin 8 select * 9 bulk collect into v_tt 10 from employees 11 offset v_counter_nr*v_limit_nr rows 12 fetch next v_limit_nr rows only;
рдкреБрдирд╢реНрдЪ: рд╕реНрд░реЛрдд рдХреЗ рд▓рд┐рдП рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЙрдиреНрд╣реЛрдВрдиреЗ рд▓рд┐рдЦрд╛ рд╣реИ рдХрд┐ рдУрд░реЗрдХрд▓ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдореЗрдЯрд▓рд╡реЗрдпрд░ рдмрдЧ # 17404511 рдкрд░ рдЬрд╛рдирддрд╛ рд╣реИ
PPS: рдмрд╛рдж рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ (рдЕрдзрд┐рдХ рдпрд╛рдж рдХрд┐рдпрд╛ рдЧрдпрд╛)
PL / SQL рдХреЗ рд╕рд╛рде SQL рдореЗрдВ PL / SQL рд╕рдкреЛрд░реНрдЯ
рдирд╛рдо рд╣реИ рдордХреНрдЦрдиред рдЪрд▓рд┐рдП рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВред
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ PL / SQL рдХреЛ рдЕрднреА рддрдХ SQL рднрд╛рд╖рд╛ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╡рд╣ рдЕрднреА рднреА рдРрд╕реЗ SQL рдирд┐рд░реНрдорд╛рдгреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ:
SQL> DECLARE dummy NUMBER; BEGIN WITH FUNCTION test_with (n_id IN NUMBER) RETURN NUMBER IS BEGIN dbms_output.put_line(n_id); RETURN n_id; END; SELECT test_with(ID) INTO dummy FROM t1 WHERE ROWNUM < 2; dbms_output.put_line(dummy); END; / WITH FUNCTION test_with (n_id IN NUMBER) RETURN NUMBER IS * ERROR at line 4: ORA-06550: line 4, column 17: PL/SQL: ORA-00905: missing keyword ORA-06550: line 4, column 3: PL/SQL: SQL Statement ignored ORA-06550: line 6, column 4: PLS-00103: Encountered the symbol "SELECT"
рдЙрд╕реА рд╕рдордп, рдпрд╣ рдЧрддрд┐рд╢реАрд▓ SQL рдореЗрдВ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рднреА):
DECLARE dummy NUMBER; BEGIN EXECUTE IMMEDIATE 'WITH FUNCTION test_with (n_id IN NUMBER) RETURN NUMBER IS BEGIN dbms_output.put_line(n_id); RETURN n_id; END; SELECT test_with(ID) FROM t1 WHERE ROWNUM < 2' INTO dummy; END;
рдЕрднреА рдХреЗ рд▓рд┐рдП рдмрд╕ рдЗрддрдирд╛ рд╣реАред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рдерд╛ред