Resumão de PL/SQL, parte 2: criar e rodar código PL/SQL

Como a PL/SQL é uma embedded language, ela não roda por si só, precisa ser executada dentro de um ambiente Oracle (Oracle Database, SQL*Plus, Oracle Forms, etc.). Em geral o código PL/SQL precisa estar carregado no banco de dados Oracle para ser compilado e executado.

Para escrever código PL/SQL você pode usar uma IDE gráfica ou rodar scripts na linha de comando. Existem várias escolhas para a IDE e poucas para a linha de comando:

Eu uso o Oracle SQL Developer que me permite, além da IDE, utilizar comandos do SQL*Plus “simulando” o ambiente de linha de comandos.

 Algumas dicas de SQL*Plus:

Toda vez que você conecta no SQL*Plus, ele roda um arquivo de startup onde você configurar várias preferências. Na verdade, ele checa a existência de 3 arquivos:

  1. $ORACLE_HOME/sqlplus/admin/glogin.sql: utilizado para executar comandos comuns para todos os usuários;
  2. <diretório de trabalho>/login.sql: utilizado para executar comandos para seu usário;
  3. login.sql encontrado via SQLPATH: utilizado para executar comandos para seu usuário.

Crie um arquivo de startup para o SQL*Plus, com as seguintes configurações:

SET SERVEROUTPUT ON SIZE UNLIMITED FORMAT WRAPPED
SET ECHO ON
SET LINESIZE 150
SET AUTOCOMMIT OFF
SET EXITCOMMIT OFF
SET PAGESIZE 999
SET SQLPROMPT "_USER'@'_CONNECT_IDENTIFIER > "
DEFINE _EDITOR = /bin/vi

Atenção: sempre que você se disconecta normalmente do SQL*Plus, se houver transações pendentes, ele dá um COMMIT. Cuidado com isso! Não se esqueça de dar commit ou rollback por conta própria!

Para avisar ao SQL*Plus que você já acabou de digitar seu PL/SQL, deve incluir uma barra na próxima linha, sem mais nenhum outro caractere). Essa barra diz ao SQL*Plus para executar o statement mais recente digitado.

Para rodar um script que está em seu diretório de trabalho (ou que possa ser encontrado pela variávevl SQLPATH) use o comando @ ou o START. Se esse script chamar outros scripts, a chamada deve ser feita com o comando @@ para que o SQL*Plus entenda que a chamada está sendo feita a partir do diretório onde o script pai foi rodado.

Existem 2 tipos de variáveis no SQL*Plus: DEFINE e BIND.

Uma variável define é nada mais que a definição de um valor através do comando DEFINE, por exemplo:

DEFINE x = 'teste';
DEFINE y = 50;

Para usar uma variável define, utilize o operador &:

SELECT '&x' FROM DUAL;
SELECT &y FROM DUAL;

Para usar uma variável bind, ela tem que ser declarada primeiro, e depois um valor é atribuído à ela, por exemplo:

VARIABLE x VARCHAR2(15);
VARIABLE Y NUMBER;

Note que agora há 2 variáveis “x” e 2 variáveis “y”, uma define e uma bind. Execute a seqüência abaixo para entender a diferença:

define x = 'teste define';
define y = 10;

SELECT '&x' FROM dual;
SELECT &y FROM dual;

variable x VARCHAR2(15);
variable y NUMBER;

print :x;
print :y;

BEGIN
 :x := 'teste bind';
 :y := 2;
END;

print :x;
print :y;

SELECT '&x' "x define",
       :x   "x bind",
       &y   "y define",
       :y   "y bind"
FROM dual;

Para salvar o output do SQL*Plus em um arquivo, use o comando SPOOL:

SET SPOOL /path/arquivo.txt
<comandos ...>
SPOOL OFF

Se estamos executando um script e queremos que o SQL*Plus pare se houver algum erro, devemos usar o comando (o rollback é opcional):

WHENEVER SQLERROR EXIT SQL.SQLCODE [ROLLBACK]

Se estamos criando algum PL/SQL e ocorreram erros de compilação, podemos usar o comando abaixo para ver os erros (as categorias opcionais são: dimension, function, java source, java class, package, package body, procedure, trigger, type, type body e view):

SHOW ERRORS [CATEGORY [SCHEMA.] OBJECT]

Tarefas PL/SQL essenciais: criar/compilar, executar e exibir o código

Para criar código em PL/SQL, temos que usar algum CREATE statement, por exemplo, create function, create procedure, etc., quando queremos que o código fique armazenado no banco de dados.

Ao criar algum código PL/SQL, ele é “compilado” pelo banco de dados, ou seja, é checado, validado e armazenado no banco. Se ocorreram erros de compilação, podemos usar o comando abaixo para ver os erros (as categorias opcionais são: dimension, function, java source, java class, package, package body, procedure, trigger, type, type body e view):

SHOW ERRORS [CATEGORY [SCHEMA.] OBJECT]

É muito importante colocar o SHOW ERRORS após cada comando create de um PL/SQL!

Para executar um código PL/SQL, é a coisa mais fácil do mundo: chame o nome do código criado e pronto. Podemos também código que não fica armazenado no banco de dados, usanto um bloco simples (begin … end;); também podemos usar o comando EXECUTE do SQL*Plus.

Para exibir código PL/SQL, podemos consultar a view USER_OBJECTS, para ver o que temos armazenado, e depois usar o comando DESCRIBE (sim, describe funciona com tabelas, views, object types, procedures e packages). Aliás, o DESCRIBE é muito útil para uma rápida visualização dos parâmetros dos procedures.

Para exibir o código fonte, consulte a view USER_SOURCE ou view TRIGGER_SOURCE.

Gerenciar grants e sinônimos para PL/SQL armazenado

Quando você cria um PL/SQL só você e um DBA podem executá-lo. Para permitir que outros usuários possam aproveitar a funcionalidade que você desenvolveu, precisa dar um grant:

GRANT EXECUTE ON <schema>.<código> TO {user|role|public};
REVOKE EXECUTE ON <schema>.<código> FROM {user|role|public};

Para ver uma lista dos privilégios que você concedeu a outros usuários ou papéis, consulte a view USER_TAB_PRIVS_MADE.

Para faciliar o uso dos códigos, você pode criar um sinônimo (privado ou público) para o PL/SQL.

CREATE OR REPLACE [PUBLIC] SYNONYM <sinônimo> FOR <schema>.<object>
DROP SYNONYM <sinônimo>

Apagar um código armazenado

Basta usar um DROP statement.

Esconder a fonte PL/SQL

Você pode “criptografar” o código fonte PL/SQL com o utilitário wrap do Oracle, mas isso não é uma criptografia verdadeira: seu código fonte ainda pode ser recuperado!

819 thoughts on “Resumão de PL/SQL, parte 2: criar e rodar código PL/SQL”

  1. Pingback: adameve promo code
  2. Pingback: adam and eve deals
  3. Pingback: hac.fcps
  4. Pingback: Brazilian Hair
  5. Pingback: porn movie
  6. Pingback: porn movie
  7. Pingback: mujer latina
  8. Pingback: prediksi bola
  9. Pingback: Anal Sex Beads
  10. Pingback: sex toy bullet
  11. Pingback: sex toys
  12. Pingback: هایک ویژن
  13. Pingback: suterh
  14. Pingback: click here
  15. Pingback: dome tent
  16. Pingback: Cloud Archiving
  17. Pingback: silicone sex toy
  18. Pingback: best kona coffee
  19. Pingback: lion coffee
  20. Pingback: vibrators
  21. Pingback: best blowjob
  22. Pingback: male masturbator
  23. Pingback: entrepreneur
  24. Pingback: adidas nmd
  25. Pingback: penis pump
  26. Pingback: کفسابی
  27. Pingback: Xvideo
  28. Pingback: هایک ویژن
  29. Pingback: coisas de bebe
  30. Pingback: cheap web hosting
  31. Pingback: butt plug
  32. Pingback: adam and eve
  33. Pingback: gay sex toy
  34. Pingback: کفسابی
  35. Pingback: kona coffee
  36. Pingback: vibrator as gift
  37. Pingback: digital marketing
  38. Pingback: neodymium magnets
  39. Pingback: wild vibrator
  40. Pingback: favorite sex toys
  41. Pingback: toys adam and eve
  42. Pingback: sexy adult toys
  43. Pingback: adam n eve online
  44. Pingback: cheap sex toys
  45. Pingback: Sripatum
  46. Pingback: ترمیم مو
  47. Pingback: discounted dildo
  48. Pingback: Cosmetic tube box
  49. Pingback: هایک ویژن
  50. Pingback: adult whips
  51. Pingback: Laser-Therapy US
  52. Pingback: morgan and morgan
  53. Pingback: new big dildo
  54. Pingback: anal sex kit
  55. Pingback: buy and sell time
  56. Pingback: sex movie
  57. Pingback: strap on toys
  58. Pingback: prostate vibrator
  59. Pingback: vacancy in haryana
  60. Pingback: anal stimulation
  61. Pingback: clitoral orgasm
  62. Pingback: best kona coffee
  63. Pingback: buy womanizer pro
  64. Pingback: Cracked iPhone
  65. Pingback: Pocket Pussy
  66. Pingback: خرید apple id
  67. Pingback: top rated dildo
  68. Pingback: خرید vpn
  69. Pingback: خرید کریو
  70. Pingback: خرید kerio
  71. Pingback: finger banger
  72. Pingback: خرید vpn
  73. Pingback: خرید کریو
  74. Pingback: clitoral vibrators
  75. Pingback: first time strapon
  76. Pingback: Page
  77. Pingback: Powerful vibrator
  78. Pingback: penis pump price
  79. Pingback: mp3 song
  80. Pingback: Less Of Tour
  81. Pingback: هاست
  82. Pingback: 卡巴熊
  83. Pingback: 美容外科
  84. Pingback: projector screen
  85. Pingback: نماشویی
  86. Pingback: online shopping
  87. Pingback: Kasdi Merbah
  88. Pingback: see page
  89. Pingback: amateur porn
  90. Pingback: tampa beach hotels
  91. Pingback: Desi Rock Band
  92. Pingback: Fotógrafo
  93. Pingback: R&B music
  94. Pingback: 80's R&B
  95. Pingback: xnxx.com
  96. Pingback: وکیل
  97. Pingback: Online Boutique
  98. Pingback: bracelet for her
  99. Pingback: خرید vpn
  100. Pingback: buy coffee beans
  101. Pingback: Kona Co
  102. Pingback: خرید vpn
  103. Pingback: خرید vpn
  104. Pingback: Ko coffee
  105. Pingback: خرید vpn
  106. Pingback: vegas packages
  107. Pingback: helpful resources
  108. Pingback: سئو
  109. Pingback: best coffee beans
  110. Pingback: خرید vpn
  111. Pingback: 100 kona coffee
  112. Pingback: خرید vpn مک
  113. Pingback: how to make coffee
  114. Pingback: خرید kerio
  115. Pingback: خرید vpn
  116. Pingback: خرید vpn
  117. Pingback: sites
  118. Pingback: خرید vpn
  119. Pingback: raman kathpalia
  120. Pingback: خرید vpn
  121. Pingback: tam
  122. Pingback: خرید vpn
  123. Pingback: Rbx exchange
  124. Pingback: malmö
  125. Pingback: termeh
  126. Pingback: web hosting
  127. Pingback: خرید vpn
  128. Pingback: گوگل adwords
  129. Pingback: خرید vpn
  130. Pingback: خرید vpn
  131. Pingback: گوگل adwords
  132. Pingback: گوگل adwords
  133. Pingback: Logo Mauritius
  134. Pingback: 脱毛
  135. Pingback: vpn
  136. Pingback: tommy hilfiger
  137. Pingback: گوگل adwords
  138. Pingback: novinmarketing
  139. Pingback: persian tar
  140. Pingback: resume builder
  141. Pingback: کولر مسجد
  142. Pingback: buying sites on
  143. Pingback: سیستم cctv
  144. Pingback: خرید vpn
  145. Pingback: خرید vpn
  146. Pingback: خرید vpn
  147. Pingback: سیستم cctv
  148. Pingback: خرید vpn
  149. Pingback: خرید vpn
  150. Pingback: سیستم cctv
  151. Pingback: خرید طلا
  152. Pingback: zand game
  153. Pingback: IPhone Wholesale
  154. Pingback: butterfly vibrator
  155. Pingback: سیستم cctv
  156. Pingback: work at home 2018
  157. Pingback: خرید طلا
  158. Pingback: خرید vpn
  159. Pingback: travel abroad
  160. Pingback: gratis inserieren
  161. Pingback: خرید vpn
  162. Pingback: p spot stimulation
  163. Pingback: سیستم cctv
  164. Pingback: خرید vpn
  165. Pingback: hp printer drivers
  166. Pingback: sex toys orgasm
  167. Pingback: hiky vaccum clit
  168. Pingback: pulsating vibrator
  169. Pingback: sheet
  170. Pingback: sex toy haul
  171. Pingback: beauty
  172. Pingback: خرید طلا
  173. Pingback: nipple fetish
  174. Pingback: خرید طلا
  175. Pingback: small penis
  176. Pingback: adult board games
  177. Pingback: خرید vpn
  178. Pingback: خرید vpn
  179. Pingback: خرید طلا
  180. Pingback: سیستم cctv
  181. Pingback: dildo review
  182. Pingback: using a penis pump
  183. Pingback: olcsó tanfolyam
  184. Pingback: why not try here
  185. Pingback: TripAdvisor
  186. Pingback: vibrator
  187. Pingback: anal
  188. Pingback: electronic toys
  189. Pingback: lube sex
  190. Pingback: uber lube review
  191. Pingback: سیستم cctv
  192. Pingback: vibator sale
  193. Pingback: hp drivers
  194. Pingback: hydroquinone
  195. Pingback: mailers
  196. Pingback: iphone repair
  197. Pingback: male vacuum device
  198. Pingback: organic herb
  199. Pingback: clitoral orgasm
  200. Pingback: moving
  201. Pingback: Simeon-Geova
  202. Pingback: biohealth protein
  203. Pingback: bahis siteleri
  204. Pingback: kona coffee beans
  205. Pingback: bahis siteleri
  206. Pingback: flying shark
  207. Pingback: açık sözlü
  208. Pingback: bahis siteleri
  209. Pingback: bahis siteleri
  210. Pingback: bahis siteleri
  211. Pingback: bahis siteleri
  212. Pingback: goldenbah's
  213. Pingback: penis size
  214. Pingback: Waterproof Jackets
  215. Pingback: cleave gagged
  216. Pingback: Morgellons Cure
  217. Pingback: clitorus gel
  218. Pingback: g spot stimulator
  219. Pingback: apartamenti varna
  220. Pingback: clash royale hack
  221. Pingback: Free php scriptp
  222. Pingback: Wild G-Spot
  223. Pingback: Bronshög
  224. Pingback: pegging strap ons
  225. Pingback: solgar
  226. Pingback: Top Compras
  227. Pingback: matka result
  228. Pingback: jageze
  229. Pingback: online chat rooms
  230. Pingback: Free SEO Submitter
  231. Pingback: separation spells
  232. Pingback: Loan
  233. Pingback: Sales
  234. Pingback: Agen poker online
  235. Pingback: Tatuaje Chile
  236. Pingback: p3d coin
  237. Pingback: Audio HiFI Repairs
  238. Pingback: fredericario
  239. Pingback: Instagram unfollow
  240. Pingback: psychic
  241. Pingback: psychic
  242. Pingback: Miami Escorts
  243. Pingback: alpinemining
  244. Pingback: gps tracker
  245. Pingback: drivers
  246. Pingback: Cactus toronto
  247. Pingback: first time sex toy
  248. Pingback: prayer
  249. Pingback: golf store
  250. Pingback: brazilian hair
  251. Pingback: remy hair
  252. Pingback: sex education
  253. Pingback: Indian hair
  254. Pingback: eve sex toys shop
  255. Pingback: malaysian hair
  256. Pingback: peruvian hair
  257. Pingback: sexier heat up
  258. Pingback: Facebook
  259. Pingback: Sex Toy Bullet
  260. Pingback: pozvoni me pozvoni
  261. Pingback: Trendy Dress
  262. Pingback: fantasy novel
  263. Pingback: butterfly vibrator
  264. Pingback: first dildo
  265. Pingback: travel news
  266. Pingback: vse prazdniki
  267. Pingback: univconstantine
  268. Pingback: mnogo video
  269. Pingback: pubg t-shirt
  270. Pingback: abc
  271. Pingback: first time sex toy
  272. Pingback: faith movies
  273. Pingback: Atorvastatin
  274. Pingback: Hydroquinone
  275. Pingback: sportotobet
  276. Pingback: Hydroquinone
  277. Pingback: خرید vpn
  278. Pingback: PCB board design
  279. Pingback: unicorn cake
  280. Pingback: web design dundee
  281. Pingback: vibrator 12 inch
  282. Pingback: clit sex toys
  283. Pingback: reliable
  284. Pingback: slovari skacahat
  285. Pingback: Americab.net
  286. Pingback: Buy cialis
  287. Pingback: Viagra tablets
  288. Pingback: Cialis tablets
  289. Pingback: Buy cialis
  290. Pingback: Cialis generika
  291. Pingback: Viagra 20mg
  292. Pingback: thressone couples
  293. Pingback: EMERALD
  294. Pingback: phones
  295. Pingback: prazdniki 2088
  296. Pingback: trah_net_621
  297. Pingback: holiday segodnya
  298. Pingback: digital marketing
  299. Pingback: Best Butt Plug
  300. Pingback: Access Denined
  301. Pingback: huge dildo
  302. Pingback: vaginal tightening
  303. Pingback: Rabbit Vibrators
  304. Pingback: pump penis
  305. Pingback: anal butt plug
  306. Pingback: taken from here
  307. Pingback: wand massager
  308. Pingback: Subscription Box
  309. Pingback: hd film izle
  310. Pingback: g spot vibrator
  311. Pingback: vibrator review
  312. Pingback: Wet Wabbit
  313. Pingback: read
  314. Pingback: best kinky bondage
  315. Pingback: sex toy
  316. Pingback: Adult Toys
  317. Pingback: strapon sex men
  318. Pingback: fitness trends
  319. Pingback: photos
  320. Pingback: Viagra or cialis
  321. Pingback: soccer bet
  322. Pingback: 3 iyunya 4293
  323. Pingback: DraftKings DFS
  324. Pingback: Tire Pressure
  325. Pingback: forum
  326. Pingback: friv
  327. Pingback: Useful gadgets
  328. Pingback: Brisbane painters
  329. Pingback: pain relief
  330. Pingback: NFL DFS
  331. Pingback: College Basketball
  332. Pingback: College Basketball
  333. Pingback: Milf porn
  334. Pingback: سكس
  335. Pingback: quizhow
  336. Pingback: Sexy live show
  337. Pingback: aflamsex
  338. Pingback: frases de risa
  339. Pingback: Curency conveter
  340. Pingback: german rottweiler
  341. Pingback: Live cams
  342. Pingback: Hip hop leaks
  343. Pingback: Live sex
  344. Pingback: Car lockout
  345. Pingback: Sexy live girls
  346. Pingback: Freexxx
  347. Pingback: Porno videos
  348. Pingback: Tranny cams
  349. Pingback: Iphone deal
  350. Pingback: Hot babes
  351. Pingback: Cheap iphone case
  352. Pingback: Iphone cover
  353. Pingback: سكس
  354. Pingback: سكس مترجم
  355. Pingback: mobile marketing
  356. Pingback: fingo vibrator
  357. Pingback: best vibrater
  358. Pingback: wand vibrator
  359. Pingback: butt plug video
  360. Pingback: Generic cialis
  361. Pingback: سكس
  362. Pingback: سكس مترجم
  363. Pingback: Free MILF Porn
  364. Pingback: 2018 NFL Schedule
  365. Pingback: see through thong
  366. Pingback: custompc
  367. Pingback: Dr Kassabian
  368. Pingback: nyc renters
  369. Pingback: criminal lawyer
  370. Pingback: servizi hacker
  371. Pingback: best ben wa balls
  372. Pingback: best vibrator
  373. Pingback: lesbian sex
  374. Pingback: mp3 songs
  375. Pingback: djpunjab mp4
  376. Pingback: aflampornhd
  377. Pingback: Pet Portraits
  378. Pingback: go to the page
  379. Pingback: this web page
  380. Pingback: female sex toys
  381. Pingback: more info
  382. Pingback: a source
  383. Pingback: vibrating tongue
  384. Pingback: butterfly vibrator
  385. Pingback: more info
  386. Pingback: click to continue
  387. Pingback: how to use lube
  388. Pingback: women masturbating
  389. Pingback: sex fail stories
  390. Pingback: tech house dj
  391. Pingback: home inspections
  392. Pingback: Rabbit Vibrator
  393. Pingback: Anal Dildo
  394. Pingback: Best Anal Vibrator
  395. Pingback: Bullet Vibrator
  396. Pingback: Best Anal Lube
  397. Pingback: poker88
  398. Pingback: light up vibrator
  399. Pingback: glass dildo review
  400. Pingback: real feel vibrator
  401. Pingback: MILF Porn
  402. Pingback: mp3juices
  403. Pingback: tubidy mp3
  404. Pingback: pocket pussy porn
  405. Pingback: Generic cialis
  406. Pingback: dildo review video
  407. Pingback: super head honcho

Leave a Reply