Advertisement
Guest User

Untitled

a guest
Jan 14th, 2020
228
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.22 KB | None | 0 0
  1. a)
  2. DECLARE
  3. v_inf NUMBER(4);
  4. v_sup NUMBER(4);
  5. v_codprom NUMBER(4);
  6. v_nomprod varchAr2(60);
  7. v_codprodrel NUMBER(3);
  8. BEGIN
  9. select max(codproducto) into v_inf from promocion;
  10. select max(codproducto) into v_sup from producto;
  11. select max(codpromocion) into v_codprom from promocion;
  12. FOR I IN v_inf..v_sup LOOP
  13. SELECT DESCRIPCION, CODPRODUCTO_REL INTO v_nomprod, v_codprodrel
  14. FROM producto
  15. WHERE codproducto = I;
  16. INSERT INTO PROMOCION VALUES
  17. (
  18. v_codprom,v_nomprod,TO_DATE('01-04-2018'),TO_DATE('30-06-2018'),I,0.05,v_codprodrel
  19. );
  20. END LOOP;
  21. END;
  22.  
  23. b)
  24. DECLARE
  25. v_inf NUMBER(4);
  26. v_sup NUMBER(4);
  27. v_codprom NUMBER(4);
  28. v_nomprod varchAr2(60);
  29. v_codprodrel NUMBER(3);
  30. BEGIN
  31. select max(codproducto) into v_inf from promocion;
  32. select max(codproducto) into v_sup from producto;
  33. select max(codpromocion) into v_codprom from promocion;
  34. FOR I IN v_inf..v_sup LOOP
  35. SELECT DESCRIPCION, CODPRODUCTO_REL INTO v_nomprod, v_codprodrel
  36. FROM producto
  37. WHERE codproducto = I;
  38. v_codprom:= v_codprom +1;
  39. INSERT INTO PROMOCION VALUES
  40. (
  41. v_codprom, v_nomprod,TO_DATE('01-04-2018'),TO_DATE('30-06-2018'),I,0.05,v_codprodrel
  42. );
  43. END LOOP;
  44. END;
  45. c)
  46. DECLARE
  47. v_inf NUMBER(4);
  48. v_sup NUMBER(4);
  49. v_codprom NUMBER(4);
  50. v_nomprod varchAr2(60);
  51. v_codprodrel NUMBER(3);
  52. BEGIN
  53. select max(codproducto) into v_inf from promocion;
  54. select max(codproducto) into v_sup from producto;
  55. select max(codpromocion) into v_codprom from promocion;
  56. v_inf:= v_inf +1;
  57. FOR I IN v_inf..v_sup LOOP
  58. SELECT DESCRIPCION, CODPRODUCTO_REL INTO v_nomprod, v_codprodrel
  59. FROM producto
  60. WHERE codproducto = I;
  61. v_codprom:= v_codprom +1;
  62. INSERT INTO PROMOCION VALUES
  63. (
  64. v_codprom, v_nomprod,TO_DATE('01-04-2018'),TO_DATE('30-06-2018'),I,0.05,v_codprodrel
  65. );
  66. END LOOP;
  67. END;
  68.  
  69. d) respuesta a) y b)
  70.  
  71. RESP c):
  72. Desarrollo a), no considera incrementar los codigos de promociones por cada iteración del ciclo for, provondo error de primary key.
  73. Desarrollo c), considera el ultimo código de producto de la tabla promoción, lo cual sería incorrecto, debido a que se estaría repitiendo el ultimo código de producto de la tabla promoción, y el requerimiento especifica que las nuevas promociones, sean aquellas que no habían estado en promoción.
  74.  
  75.  
  76. Pregunta N° 2:
  77. La sentencia CASE y la expresión CASE permiten:
  78.  
  79. a) Evaluar solo una condición en una sentencia SQL o PL/SQL.
  80. b) Evaluar más de una condición una sentencia en PL/SQL.
  81. c) Evaluar solo una condición en una sentencia SQL.
  82. d) Evaluar solo una condición en una sentencia PL/SQL.
  83.  
  84. RESP b):
  85. Tanto las expresiones CASE como sentencia CASE permiten evaluar mas de una condición tanto en SQL como PL/SQL. Las expresiones CASE es válida en bloque PL/SQL
  86.  
  87. Pregunta N° 3:
  88. La estructura de control PL/SQL IF, permite realizar acciones de forma selectiva considerando su estructura, cual de las siguientes alternativas cumple la sintaxis al momento de ser aplicado en un bloque PL/SQL.
  89.  
  90. a) IF ELSE END;
  91.  
  92. b) IF THEN END IF;
  93.  
  94. c) IF THEN ELSEIF ELSE END IF;
  95.  
  96. d) IF THEN ELSIF END IF;
  97.  
  98. e) IF THEN ELSIF THEN ELSE END IF;
  99.  
  100. RESP e):
  101. La estructura de control IF, considera la siguiente sintaxis para su aplicación, los símbolos de corchetes, indican opcionalidad en su aplicación.
  102. IF condición THEN
  103. Sentencia;
  104. [ELSIF condición THEN
  105. Sentencia;]
  106. [ELSE
  107. Sentencia;]
  108. END IF;
  109.  
  110.  
  111. Pregunta N° 4:
  112. Con la implementación de un nuevo Sistema ERP, se requiere revisar la información de facturas emitidas, que permita analizar información relacionada con pagos de IVA mensuales, requerimiento del jefe de Contabilidad, el cual requiere el contar con un reporte para análisis respectivo.
  113. Dado lo anterior, se requiere generar dicha información, a través de un Bloque PL/SQL, utilizando ciclo iterativo LOOP END LOOP, que muestre los siguientes resultados parciales en la tabla RESUMEN_VENTA_MES, desde donde se obtendrá la información para el reporte que requiere el jefe de contabilidad
  114.  
  115.  
  116.  
  117. a)
  118. DECLARE
  119. v_inf FACTURA.NUMFACTURA%TYPE;
  120. v_sup FACTURA.NUMFACTURA%TYPE;
  121. V_NUM FACTURA.NUMFACTURA%TYPE;
  122. V_FECHA FACTURA.FECHA%TYPE;
  123. V_NOMCLI CLIENTE.NOMBRE%TYPE;
  124. V_NETO FACTURA.NETO%TYPE;
  125. V_IVA FACTURA.IVA%TYPE;
  126. V_TOTAL FACTURA.TOTAL%TYPE;
  127. BEGIN
  128. select min(numFACTURA) into v_inf from FACTURA;
  129. select max(numFACTURA) into v_sup from FACTURA;
  130. LOOP
  131. SELECT NUMFACTURA, FECHA, CL.NOMBRE, NETO, IVA, TOTAL
  132. INTO V_NUM, V_FECHA,V_NOMCLI,V_NETO, V_IVA,V_TOTAL
  133. FROM FACTURA FA JOIN CLIENTE CL ON (FA.RUTCLIENTE=CL.RUTCLIENTE)
  134. WHERE NUMFACTURA = v_inf;
  135.  
  136. INSERT INTO DETALLE_VENTA_MES VALUES
  137. (
  138. 'FAC',V_NUM, V_FECHA,V_NOMCLI,V_NETO, V_IVA,V_TOTAL
  139. );
  140. EXIT WHEN v_inf > v_sup;
  141.  
  142. END LOOP;
  143. END;
  144.  
  145.  
  146.  
  147. b)
  148. DECLARE
  149. v_inf FACTURA.NUMFACTURA%TYPE;
  150. v_sup FACTURA.NUMFACTURA%TYPE;
  151. V_NUM FACTURA.NUMFACTURA%TYPE;
  152. V_FECHA FACTURA.FECHA%TYPE;
  153. V_NOMCLI CLIENTE.NOMBRE%TYPE;
  154. V_NETO FACTURA.NETO%TYPE;
  155. V_IVA FACTURA.IVA%TYPE;
  156. V_TOTAL FACTURA.TOTAL%TYPE;
  157. BEGIN
  158. select min(numFACTURA) into v_inf from FACTURA;
  159. select max(numFACTURA) into v_sup from FACTURA;
  160. LOOP
  161. SELECT NUMFACTURA, FECHA, CL.NOMBRE, NETO, IVA, TOTAL
  162. INTO V_NUM, V_FECHA,V_NOMCLI,V_NETO, V_IVA,V_TOTAL
  163. FROM FACTURA FA JOIN CLIENTE CL ON (FA.RUTCLIENTE=CL.RUTCLIENTE)
  164. WHERE NUMFACTURA = v_inf;
  165.  
  166. INSERT INTO DETALLE_VENTA_MES VALUES
  167. (
  168. 'FAC',V_NUM, V_FECHA,V_NOMCLI,V_NETO, V_IVA,V_TOTAL
  169. );
  170. v_inf:= v_inf + 1;
  171. EXIT WHEN v_inf > v_sup;
  172.  
  173. END LOOP;
  174. END;
  175.  
  176. c)
  177. DECLARE
  178. v_inf FACTURA.NUMFACTURA%TYPE;
  179. v_sup FACTURA.NUMFACTURA%TYPE;
  180. V_NUM FACTURA.NUMFACTURA%TYPE;
  181. V_FECHA FACTURA.FECHA%TYPE;
  182. V_NOMCLI CLIENTE.NOMBRE%TYPE;
  183. V_NETO FACTURA.NETO%TYPE;
  184. V_IVA FACTURA.IVA%TYPE;
  185. V_TOTAL FACTURA.TOTAL%TYPE;
  186. BEGIN
  187. select min(numFACTURA) into v_inf from FACTURA;
  188. select max(numFACTURA) into v_sup from FACTURA;
  189. LOOP
  190. SELECT NUMFACTURA, FECHA, CL.NOMBRE, NETO, IVA, TOTAL
  191. INTO V_NUM, V_FECHA,V_NOMCLI,V_NETO, V_IVA,V_TOTAL
  192. FROM FACTURA FA JOIN CLIENTE CL ON (FA.RUTCLIENTE=CL.RUTCLIENTE)
  193. WHERE NUMFACTURA = v_inf;
  194.  
  195. INSERT INTO DETALLE_VENTA_MES VALUES
  196. (
  197. 'FAC',V_NUM, V_FECHA,V_NOMCLI,V_NETO, V_IVA,V_TOTAL
  198. );
  199. v_inf:= v_inf + 1;
  200.  
  201. END LOOP;
  202. END;
  203.  
  204. d)
  205. DECLARE
  206. v_inf FACTURA.NUMFACTURA%TYPE;
  207. v_sup FACTURA.NUMFACTURA%TYPE;
  208. V_NUM FACTURA.NUMFACTURA%TYPE;
  209. V_FECHA FACTURA.FECHA%TYPE;
  210. V_NOMCLI CLIENTE.NOMBRE%TYPE;
  211. V_NETO FACTURA.NETO%TYPE;
  212. V_IVA FACTURA.IVA%TYPE;
  213. V_TOTAL FACTURA.TOTAL%TYPE;
  214. BEGIN
  215. select min(numFACTURA) into v_inf from FACTURA;
  216. select max(numFACTURA) into v_sup from FACTURA;
  217. LOOP
  218. SELECT NUMFACTURA, FECHA, CL.NOMBRE, NETO, IVA, TOTAL
  219. INTO V_NUM, V_FECHA,V_NOMCLI,V_NETO, V_IVA,V_TOTAL
  220. FROM FACTURA FA JOIN CLIENTE CL ON (FA.RUTCLIENTE=CL.RUTCLIENTE)
  221. WHERE NUMFACTURA = v_inf;
  222.  
  223. INSERT INTO DETALLE_VENTA_MES VALUES
  224. (
  225. 'FAC',V_NUM, V_FECHA,V_NOMCLI,V_NETO, V_IVA,V_TOTAL
  226. );
  227.  
  228. END LOOP;
  229. END;
  230.  
  231. RESP b):
  232. Respuesta a) no incrementa contador, por tanto, no saldrá del loop
  233. Respuesta c) no considera condición de salida EXIT WHEN
  234. Respuesta d) no considera condición de salida EXIT WHEN y tampoco incremento de contador.
  235. Todo ciclo loop, debe considerar formato
  236.  
  237.  
  238.  
  239. Pregunta N° 5:
  240.  
  241. Al momento de evaluar una condición con una variable NULL el resultado es:
  242.  
  243. a) SI aplica operador AND, la primera expresión entrega TRUE, la segunda expresión entrega NULL el resultado TRUE
  244.  
  245. b) SI aplica operador AND, la primera expresión entrega TRUE, la segunda expresión entrega NULL el resultado FALSE
  246.  
  247. c) SI aplica operador AND, la primera expresión entrega TRUE, la segunda expresión entrega NULL el resultado NULL
  248.  
  249. RESP c):
  250.  
  251. Toda expresión que es evaluada al compararse con NULL, su resultado será NULL, de acuerdo a siguiente tabla lógica
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement