рдкреАрдПрд▓ / рдПрд╕рдХреНрдпреВрдПрд▓ рдореЗрдВ рдЕрдЪреНрдЫреА рдЖрджрддреЗрдВ

рдЕрдЧрд▓рд╛, рд╣рдо Oracle рдбреЗрдЯрд╛рдмреЗрд╕ 11g рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ, рдЙрди рдЖрджрддреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреЛ рд╣рдордиреЗ рд╕рдордп рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд╕рд┐рдд рдХреА рд╣реИрдВред

рдорд╛рдирдХ


рдЯреАрдо рдХреЗ рдЕрдВрджрд░, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдорд╛рдирдХреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдФрд░ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЧреНрд░рд╛рд╣рдХ рдорд╛рдирдХреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП)ред
рдорд╛рдирдХ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо:

рдЖрдк рдпрд╣рд╛рдВ рдЕрдкрдиреА рдЗрдЪреНрдЫрд╛рдиреБрд╕рд╛рд░ рдХреБрдЫ рднреА рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд╣рд░ рдХреЛрдИ рдорд╛рдирдХ рдХреЗ рд╕рд╛рде рд╕рд╣рдордд рд╣реЛ рдФрд░ рд╕рдмрд╕реНрдХреНрд░рд╛рдЗрдм рдХрд░реЗ (рдЕрдВрдЧреБрд▓рд┐рдпреЛрдВ рдХреЛ рдЪрдЯрдХрд╛рдиреЗ рдХреЗ рджрд░реНрдж рдХреЗ рддрд╣рдд)ред

рдХреЛрдб рдкреНрд░рдмрдВрдзрди


рдбреЗрдЯрд╛рдмреЗрд╕ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдФрд░ рд╡рд░реНрдЬрдирд┐рдВрдЧ рдХреЗ рд╡рд┐рд╖рдп рдкрд░ рдХрдИ рд▓реЗрдЦ рдереЗред рд▓реЗрдЦ рдирд┐рд░реНрд╡рд┐рд╡рд╛рдж рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рджрд░реНрдЬрдиреЛрдВ рдЯреИрдЧ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреАрдПрд▓ / рдПрд╕рдХреНрдпреВрдПрд▓ рдХреЛрдб рдХреА 200k рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВ (рдЕрдиреНрдп рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЗрд╕рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ) рдФрд░ 10 рд▓реЛрдЧреЛрдВ рдХреА рдПрдХ рдЯреАрдо рд╣реИред
рдкрд╣рд▓реЗ рддреЛ рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕рдм рдХреБрдЫ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдВрдбрд▓ RequesitePro + ClearQuest + ClearCase рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдереЛрдбрд╝реЗ рд╕рдордп рдХреЗ рдмрд╛рдж рдПрд╕рдПрд╕ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдЧреАрдЯрд░рд┐рдпрд╕ рдкрд░ рд╕реНрдерд╛рдиреАрдп рднрдВрдбрд╛рд░рдг рдХреЗ рд╕рд╛рде рдЧрд┐рдЯреНрдЯреА рдХреЗ рд╕рд╛рде рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ред
рдЖрд╡реЗрджрди рдХреЗ рд╡рд┐рднрд┐рдиреНрди рднрд╛рдЧреЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдмрдирд╛рдПред
рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рджреГрд╖реНрдЯрд┐рдХреЛрдг рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИ: рдПрдХ рдЖрдзрд╛рд░ рд░реЗрдЦрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреИрдЪ рд╣реИрдВ, рд╕рдордп рдХреЗ рд╕рд╛рде, рджреЛрдиреЛрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

рдХреЛрдб рд▓реЗрдЦрди


рдПрдХ рд╕рд░рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ (рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ):
CREATE OR REPLACE PROCEDURE upd_for_dept ( dept_in IN employee.department_id%TYPE ,newsal_in IN employee.salary%TYPE) IS CURSOR emp_cur IS SELECT employee_id,salary,hire_date FROM employee WHERE department_id = dept_in; BEGIN FOR rec IN emp_cur LOOP UPDATE employee SET salary = NVL(newsal_in, 1000) WHERE employee_id = rec.employee_id; END LOOP; END upd_for_dept; * This source code was highlighted with Source Code Highlighter .
  1. CREATE OR REPLACE PROCEDURE upd_for_dept ( dept_in IN employee.department_id%TYPE ,newsal_in IN employee.salary%TYPE) IS CURSOR emp_cur IS SELECT employee_id,salary,hire_date FROM employee WHERE department_id = dept_in; BEGIN FOR rec IN emp_cur LOOP UPDATE employee SET salary = NVL(newsal_in, 1000) WHERE employee_id = rec.employee_id; END LOOP; END upd_for_dept; * This source code was highlighted with Source Code Highlighter .
  2. CREATE OR REPLACE PROCEDURE upd_for_dept ( dept_in IN employee.department_id%TYPE ,newsal_in IN employee.salary%TYPE) IS CURSOR emp_cur IS SELECT employee_id,salary,hire_date FROM employee WHERE department_id = dept_in; BEGIN FOR rec IN emp_cur LOOP UPDATE employee SET salary = NVL(newsal_in, 1000) WHERE employee_id = rec.employee_id; END LOOP; END upd_for_dept; * This source code was highlighted with Source Code Highlighter .
  3. CREATE OR REPLACE PROCEDURE upd_for_dept ( dept_in IN employee.department_id%TYPE ,newsal_in IN employee.salary%TYPE) IS CURSOR emp_cur IS SELECT employee_id,salary,hire_date FROM employee WHERE department_id = dept_in; BEGIN FOR rec IN emp_cur LOOP UPDATE employee SET salary = NVL(newsal_in, 1000) WHERE employee_id = rec.employee_id; END LOOP; END upd_for_dept; * This source code was highlighted with Source Code Highlighter .
  4. CREATE OR REPLACE PROCEDURE upd_for_dept ( dept_in IN employee.department_id%TYPE ,newsal_in IN employee.salary%TYPE) IS CURSOR emp_cur IS SELECT employee_id,salary,hire_date FROM employee WHERE department_id = dept_in; BEGIN FOR rec IN emp_cur LOOP UPDATE employee SET salary = NVL(newsal_in, 1000) WHERE employee_id = rec.employee_id; END LOOP; END upd_for_dept; * This source code was highlighted with Source Code Highlighter .
  5. CREATE OR REPLACE PROCEDURE upd_for_dept ( dept_in IN employee.department_id%TYPE ,newsal_in IN employee.salary%TYPE) IS CURSOR emp_cur IS SELECT employee_id,salary,hire_date FROM employee WHERE department_id = dept_in; BEGIN FOR rec IN emp_cur LOOP UPDATE employee SET salary = NVL(newsal_in, 1000) WHERE employee_id = rec.employee_id; END LOOP; END upd_for_dept; * This source code was highlighted with Source Code Highlighter .
  6. CREATE OR REPLACE PROCEDURE upd_for_dept ( dept_in IN employee.department_id%TYPE ,newsal_in IN employee.salary%TYPE) IS CURSOR emp_cur IS SELECT employee_id,salary,hire_date FROM employee WHERE department_id = dept_in; BEGIN FOR rec IN emp_cur LOOP UPDATE employee SET salary = NVL(newsal_in, 1000) WHERE employee_id = rec.employee_id; END LOOP; END upd_for_dept; * This source code was highlighted with Source Code Highlighter .
  7. CREATE OR REPLACE PROCEDURE upd_for_dept ( dept_in IN employee.department_id%TYPE ,newsal_in IN employee.salary%TYPE) IS CURSOR emp_cur IS SELECT employee_id,salary,hire_date FROM employee WHERE department_id = dept_in; BEGIN FOR rec IN emp_cur LOOP UPDATE employee SET salary = NVL(newsal_in, 1000) WHERE employee_id = rec.employee_id; END LOOP; END upd_for_dept; * This source code was highlighted with Source Code Highlighter .
  8. CREATE OR REPLACE PROCEDURE upd_for_dept ( dept_in IN employee.department_id%TYPE ,newsal_in IN employee.salary%TYPE) IS CURSOR emp_cur IS SELECT employee_id,salary,hire_date FROM employee WHERE department_id = dept_in; BEGIN FOR rec IN emp_cur LOOP UPDATE employee SET salary = NVL(newsal_in, 1000) WHERE employee_id = rec.employee_id; END LOOP; END upd_for_dept; * This source code was highlighted with Source Code Highlighter .
  9. CREATE OR REPLACE PROCEDURE upd_for_dept ( dept_in IN employee.department_id%TYPE ,newsal_in IN employee.salary%TYPE) IS CURSOR emp_cur IS SELECT employee_id,salary,hire_date FROM employee WHERE department_id = dept_in; BEGIN FOR rec IN emp_cur LOOP UPDATE employee SET salary = NVL(newsal_in, 1000) WHERE employee_id = rec.employee_id; END LOOP; END upd_for_dept; * This source code was highlighted with Source Code Highlighter .
  10. CREATE OR REPLACE PROCEDURE upd_for_dept ( dept_in IN employee.department_id%TYPE ,newsal_in IN employee.salary%TYPE) IS CURSOR emp_cur IS SELECT employee_id,salary,hire_date FROM employee WHERE department_id = dept_in; BEGIN FOR rec IN emp_cur LOOP UPDATE employee SET salary = NVL(newsal_in, 1000) WHERE employee_id = rec.employee_id; END LOOP; END upd_for_dept; * This source code was highlighted with Source Code Highlighter .
  11. CREATE OR REPLACE PROCEDURE upd_for_dept ( dept_in IN employee.department_id%TYPE ,newsal_in IN employee.salary%TYPE) IS CURSOR emp_cur IS SELECT employee_id,salary,hire_date FROM employee WHERE department_id = dept_in; BEGIN FOR rec IN emp_cur LOOP UPDATE employee SET salary = NVL(newsal_in, 1000) WHERE employee_id = rec.employee_id; END LOOP; END upd_for_dept; * This source code was highlighted with Source Code Highlighter .
  12. CREATE OR REPLACE PROCEDURE upd_for_dept ( dept_in IN employee.department_id%TYPE ,newsal_in IN employee.salary%TYPE) IS CURSOR emp_cur IS SELECT employee_id,salary,hire_date FROM employee WHERE department_id = dept_in; BEGIN FOR rec IN emp_cur LOOP UPDATE employee SET salary = NVL(newsal_in, 1000) WHERE employee_id = rec.employee_id; END LOOP; END upd_for_dept; * This source code was highlighted with Source Code Highlighter .
  13. CREATE OR REPLACE PROCEDURE upd_for_dept ( dept_in IN employee.department_id%TYPE ,newsal_in IN employee.salary%TYPE) IS CURSOR emp_cur IS SELECT employee_id,salary,hire_date FROM employee WHERE department_id = dept_in; BEGIN FOR rec IN emp_cur LOOP UPDATE employee SET salary = NVL(newsal_in, 1000) WHERE employee_id = rec.employee_id; END LOOP; END upd_for_dept; * This source code was highlighted with Source Code Highlighter .
CREATE OR REPLACE PROCEDURE upd_for_dept ( dept_in IN employee.department_id%TYPE ,newsal_in IN employee.salary%TYPE) IS CURSOR emp_cur IS SELECT employee_id,salary,hire_date FROM employee WHERE department_id = dept_in; BEGIN FOR rec IN emp_cur LOOP UPDATE employee SET salary = NVL(newsal_in, 1000) WHERE employee_id = rec.employee_id; END LOOP; END upd_for_dept; * This source code was highlighted with Source Code Highlighter .

рдпрд╣рд╛рдБ рдпрд╣% TYPE рдкрд░ рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИред рдЬрдм рднреА рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЪрд░ рд╕реНрддрдВрдн рдпрд╛ рдлрд╝реАрд▓реНрдб рдХрд╛ рдкреНрд░рдХрд╛рд░ рд╣реЛрддрд╛ рд╣реИ, рддреЛ% TYPE рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдлрд╝реЙрд░ рд▓реВрдк рдореЗрдВ, рдХрдИ рдЕрджреНрдпрддрди рдХрдерди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ (рдФрд░ рд╣рд╛рдБ рдкреВрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдПрдХ рдЕрджреНрдпрддрди рдореЗрдВ рдХреНрд░рдорд╛рдЧрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред Oracle DB pl / sql рдФрд░ sql рдореЗрдВ, рд╡рд┐рднрд┐рдиреНрди рдЗрдВрдЬрди рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рддрджрдиреБрд╕рд╛рд░ рдЗрди рдЗрдВрдЬрдиреЛрдВ рдХреЗ рдмреАрдЪ рдХрдИ рд╕рдВрджрд░реНрдн рд╕реНрд╡рд┐рдЪ рд╣реЛрдВрдЧреЗ, рдЬрд┐рд╕рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЕрдкрдиреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
  1. рдмрдирд╛рдПрдБ рдпрд╛ рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВ upd_for_dept рдкреНрд░рдХреНрд░рд┐рдпрд╛
  2. dept_in рдХрд░реНрдордЪрд╛рд░реА рдореЗрдВ .epep_id% TYPE
  3. , newsal_in рдХрд░реНрдордЪрд╛рд░реА рдореЗрдВред%% TYPE)
  4. IS
  5. deptlist id_list;
  6. рд╢реБрд░реВ
  7. рдХрд░реНрдордЪрд╛рд░реА рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ
  8. рдмрд▓реНрдХ рд╕рдВрдХрд▓рди рдЗрдиреНрдЯреЙрдкреНрдЯрд▓рд┐рд╕реНрдЯ
  9. рдХрд░реНрдордЪрд╛рд░реА рд╕реЗ, рдЬрд╣рд╛рдБ рд╡рд┐рднрд╛рдЧ_рдк = рд╡рд┐рднрд╛рдЧ;
  10. Deptlist рдореЗрдВ FORAL indxред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ ред рдкрд┐рдЫрд▓реЗ
  11. рдЕрджреНрдпрддрди рдХрд░реНрдордЪрд╛рд░реА
  12. рд╕реИрдЯ рд╡реЗрддрди = рдПрдирд╡реАрдПрд▓ (newsal_in, 1000)
  13. рдЬрд╣рд╛рдВ рдХрд░реНрдордЪрд╛рд░реА_рдкрдж = рд╡рд┐рднрд╛рдЧ (рдЗрдВрдбреЗрдХреНрд╕);
  14. END upd_for_dept;
* рдЗрд╕ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

FORALL рдХрдерди рд╕рдВрджрд░реНрдн рд╕реНрд╡рд┐рдЪ рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рдмрдиреЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдФрд░ рдХреНрдпрд╛ рдмреБрд░рд╛ рд╣реИред рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдпрд╣ рдПрдирд╡реАрдПрд▓ рд╣реИред NVL рдПрдХ рдкреАрдПрд▓ / рдПрд╕рдХреНрдпреВрдПрд▓ рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рдЗрд╕рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдПрдХ рд╕рдВрджрд░реНрдн рд╕реНрд╡рд┐рдЪ рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдЗрд╕реЗ COALESCE рдпрд╛ CASE рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрд╣рд╛рдВ рдирд┐рдпрдо рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ SQL рдЗрдВрдЬрди рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрдарддрд╛ рд╣реИред
рд╕рдВрдЧреНрд░рд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдбрд┐рдЬрд╝рд╛рдЗрди рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдмрджрд▓рддрд╛ рд╣реИред рдЕрдВрддрд┐рдо рд╡рд┐рдХрд▓реНрдк рдПрдХ рдРрд╕реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реЛрдЧреА:
  1. рдмрдирд╛рдПрдБ рдпрд╛ рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВ upd_for_dept рдкреНрд░рдХреНрд░рд┐рдпрд╛
  2. id_list рдореЗрдВ id_list,
  3. , newsal_in рдХрд░реНрдордЪрд╛рд░реА рдореЗрдВред%% TYPE)
  4. IS
  5. рд╢реБрд░реВ
  6. Deptlist рдореЗрдВ FORAL indxред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ ред рдкрд┐рдЫрд▓реЗ
  7. рдЕрджреНрдпрддрди рдХрд░реНрдордЪрд╛рд░реА
  8. SET рд╡реЗрддрди = COALESCE (newsal_in, 1000)
  9. рдЬрд╣рд╛рдВ рдХрд░реНрдордЪрд╛рд░реА_рдкрдж = рд╡рд┐рднрд╛рдЧ (рдЗрдВрдбреЗрдХреНрд╕);
  10. END upd_for_dept;
* рдЗрд╕ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рд╕рдВрдЧреНрд░рд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:
  1. рдмрдирд╛рдПрдБ рдкреНрд░рдХрд╛рд░ id_list INTEGER рдХреА рддрд╛рд▓рд┐рдХрд╛ рд╣реИ ;
* рдЗрд╕ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдпрд╣ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдПрд╕рдХреНрдпреВрдПрд▓ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдпрдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рд╕рд╛рд░реНрдердХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкреАрдПрд▓ / рдПрд╕рдХреНрдпреВрдПрд▓ рдореЗрдВ рдПрд╕рдХреНрдпреВрдПрд▓ рдПрдХ рд╣рд╛рд░реНрдбрдХреЛрдб рд╣реИред
рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рд╕рдВрдЧреНрд░рд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:

рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ (рдореИрдВрдиреЗ рдЗрд╕реЗ рдХрднреА рдЧрд▓рдд рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ) рд╕рдВрдЧреНрд░рд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдЧрддрд┐ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╕реЗ 6 рдЧреБрдирд╛ рдЕрдзрд┐рдХ рд╣реИред
рдЗрд╕ рдкрд░ рдореИрдВ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдФрд░ рд▓реЙрдЧрд┐рдВрдЧ, рд╕реАрдмреАрдУ рдХреНрд╡реЗрд░реА рдЕрдиреБрдХреВрд▓рди рдЬреИрд╕реЗ рд╡рд┐рд╖рдпреЛрдВ рдХреЛ рдЬрд╛рдирдмреВрдЭрдХрд░ рдХрд╡рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЕрдЧрд░ рдЗрди рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдХрд╡рд░ рдХрд░рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ред


Source: https://habr.com/ru/post/In124948/


All Articles