42.11. ÐонÑигÑÑаÑÐ¸Ñ PL/Tcl
Ð ÑÑом Ñазделе опиÑÑваÑÑÑÑ Ð¿Ð°ÑамеÑÑÑ ÐºÐ¾Ð½ÑигÑÑаÑии, влиÑÑÑие на ÑабоÑÑ PL/Tcl.
pltcl.start_proc(string)Ð ÑÑом паÑамеÑÑе, еÑли он не пÑÑÑ, задаÑÑÑÑ Ð¸Ð¼Ñ (возможно, дополненное ÑÑ ÐµÐ¼Ð¾Ð¹) ÑÑнкÑии на ÑзÑке PL/Tcl без паÑамеÑÑов, коÑоÑÐ°Ñ Ð±ÑÐ´ÐµÑ Ð²ÑполнÑÑÑÑÑ, когда Ð´Ð»Ñ PL/Tcl бÑÐ´ÐµÑ ÑоздаваÑÑÑÑ Ð½Ð¾Ð²Ñй ÑкземплÑÑ Tcl. Ð¢Ð°ÐºÐ°Ñ ÑÑнкÑÐ¸Ñ Ð¼Ð¾Ð¶ÐµÑ Ð²ÑполнÑÑÑ Ð¸Ð½Ð¸ÑиализаÑÐ¸Ñ Ð² ÑÐ°Ð¼ÐºÐ°Ñ ÑеанÑа, напÑимеÑ, загÑÑжаÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑй код Tcl. ÐовÑй инÑеÑпÑеÑаÑÐ¾Ñ Tcl ÑоздаÑÑÑÑ Ð¿Ñи пеÑвом вÑполнении какой-либо ÑÑнкÑии PL/Tcl в ÑеанÑе Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¸Ð»Ð¸ когда ÑÑебÑеÑÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑй инÑеÑпÑеÑаÑÐ¾Ñ Ð¸Ð·-за Ñого, ÑÑо ÑÑнкÑÐ¸Ñ PL/Tcl бÑла вÑзвана новой ÑолÑÑ SQL.
Ð£ÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ ÑÑнкÑÐ¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ð° бÑÑÑ Ð½Ð°Ð¿Ð¸Ñана на ÑзÑке
pltclи не должна имеÑÑ ÑвойÑÑвоSECURITY DEFINER. (ÐлагодаÑÑ ÑÑим огÑаниÑениÑм ÑÑа ÑÑнкÑÐ¸Ñ Ð±ÑÐ´ÐµÑ Ð·Ð°Ð¿ÑÑкаÑÑÑÑ Ð² инÑеÑпÑеÑаÑоÑе, коÑоÑÑй она должна иниÑиализиÑоваÑÑ.) ТекÑÑий полÑзоваÑÐµÐ»Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ имеÑÑ Ð¿Ñаво и на ÐµÑ Ð²Ñполнение Ñоже.ÐÑли ÑÑа ÑÑнкÑÐ¸Ñ Ð·Ð°Ð²ÐµÑÑиÑÑÑ Ð¾Ñибкой, ÑÑа оÑибка пÑеÑвÑÑ Ð²Ñзов ÑÑнкÑии, коÑоÑой поÑÑебовалÑÑ Ð½Ð¾Ð²Ñй инÑеÑпÑеÑаÑоÑ, и ÑаÑпÑоÑÑÑаниÑÑÑ Ð² вÑзÑваÑÑий запÑоÑ, пÑÐ¸Ð²Ð¾Ð´Ñ Ðº пÑеÑÑÐ²Ð°Ð½Ð¸Ñ ÑекÑÑей ÑÑанзакÑии или подÑÑанзакÑии. ÐÑбÑе дейÑÑвиÑ, Ñже пÑоизведÑннÑе в ÑÑеде Tcl, оÑÐ¼ÐµÐ½ÐµÐ½Ñ Ð½Ðµ бÑдÑÑ; однако ÑÑÐ¾Ñ Ð¸Ð½ÑеÑпÑеÑаÑÐ¾Ñ Ð±Ð¾Ð»ÐµÐµ не бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ. ÐÑи ÑледÑÑÑей попÑÑке иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑÑого ÑзÑка поÑледÑÐµÑ Ð¿Ð¾Ð²ÑоÑÐ½Ð°Ñ Ð¿Ð¾Ð¿ÑÑка иниÑиализаÑии Ñо Ñвежим инÑеÑпÑеÑаÑоÑом Tcl.
ÐзменÑÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ ÑазÑеÑено ÑолÑко ÑÑпеÑполÑзоваÑелÑм. ХоÑÑ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑ ÐµÐ³Ð¾ можно в ÑÐ°Ð¼ÐºÐ°Ñ ÑеанÑа, Ñакие Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ðµ повлиÑÑÑ Ð½Ð° ÑабоÑÑ Ð¸Ð½ÑеÑпÑеÑаÑоÑов Tcl, ÑозданнÑÑ Ñанее.
pltclu.start_proc(string)ÐÑо паÑамеÑÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ð°Ð½Ð°Ð»Ð¾Ð³Ð¸Ñен
pltcl.start_proc, но пÑименÑеÑÑÑ Ðº PL/TclU. Ð£ÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ ÑÑнкÑÐ¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ð° бÑÑÑ Ð½Ð°Ð¿Ð¸Ñана на ÑзÑкеpltclu.