Dashboard sipadu mbip
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

plpgsql.expect.txt 5.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <span class="hljs-comment">-- PL/pgSQL</span>
  2. <span class="hljs-symbol">&lt;&lt; outerblock &gt;&gt;</span>
  3. <span class="hljs-keyword">DECLARE</span>
  4. quantity <span class="hljs-type">integer</span> := <span class="hljs-number">30</span>;
  5. subtotal <span class="hljs-keyword">ALIAS</span> <span class="hljs-keyword">FOR</span> <span class="hljs-meta">$1</span>;
  6. prior <span class="hljs-keyword">ALIAS</span> <span class="hljs-keyword">FOR</span> <span class="hljs-built_in">old</span>;
  7. arow <span class="hljs-type">record</span>;
  8. curs1 <span class="hljs-type">refcursor</span>;
  9. curs2 <span class="hljs-keyword">CURSOR</span> <span class="hljs-keyword">FOR</span> <span class="hljs-keyword">SELECT</span> * <span class="hljs-keyword">FROM</span> tenk1;
  10. <span class="hljs-keyword">BEGIN</span>
  11. <span class="hljs-keyword">DECLARE</span>
  12. quantity <span class="hljs-keyword">CONSTANT</span> <span class="hljs-type">integer</span> := <span class="hljs-number">80</span>;
  13. myrow tablename<span class="hljs-meta">%ROWTYPE</span>;
  14. myfield tablename.columnname<span class="hljs-meta">%TYPE</span>;
  15. <span class="hljs-keyword">BEGIN</span>
  16. <span class="hljs-keyword">PERFORM</span> pg_sleep(<span class="hljs-number">1</span>);
  17. <span class="hljs-keyword">RAISE</span> <span class="hljs-keyword">NOTICE</span> <span class="hljs-string">'Quantity here is %'</span>, quantity;
  18. <span class="hljs-keyword">END</span>;
  19. <span class="hljs-keyword">SELECT</span> * <span class="hljs-keyword">INTO</span> myrec <span class="hljs-keyword">FROM</span> emp <span class="hljs-keyword">WHERE</span> empname = myname;
  20. <span class="hljs-keyword">IF</span> <span class="hljs-keyword">NOT</span> <span class="hljs-built_in">FOUND</span> <span class="hljs-keyword">THEN</span>
  21. <span class="hljs-keyword">EXIT</span> <span class="hljs-symbol">&lt;&lt;outer_block&gt;&gt;</span>;
  22. <span class="hljs-keyword">ELSIF</span> quantity &lt; <span class="hljs-number">0</span> <span class="hljs-keyword">THEN</span>
  23. <span class="hljs-keyword">ASSERT</span> a &gt; b, <span class="hljs-string">'Bad luck'</span>;
  24. <span class="hljs-keyword">END</span> <span class="hljs-keyword">IF</span>;
  25. <span class="hljs-keyword">FOR</span> r <span class="hljs-keyword">IN</span> <span class="hljs-keyword">SELECT</span> * <span class="hljs-keyword">FROM</span> foo <span class="hljs-keyword">LOOP</span>
  26. <span class="hljs-keyword">CONTINUE</span> <span class="hljs-keyword">WHEN</span> count &lt; <span class="hljs-number">50</span>;
  27. <span class="hljs-keyword">END</span> <span class="hljs-keyword">LOOP</span>;
  28. <span class="hljs-keyword">FOR</span> i <span class="hljs-keyword">IN</span> <span class="hljs-keyword">REVERSE</span> <span class="hljs-number">10.</span><span class="hljs-number">.1</span> <span class="hljs-keyword">LOOP</span>
  29. <span class="hljs-keyword">FOREACH</span> x <span class="hljs-keyword">IN</span> <span class="hljs-keyword">ARRAY</span> <span class="hljs-meta">$1</span>
  30. <span class="hljs-keyword">LOOP</span>
  31. s := s + x;
  32. <span class="hljs-keyword">END</span> <span class="hljs-keyword">LOOP</span>;
  33. <span class="hljs-keyword">END</span> <span class="hljs-keyword">LOOP</span>;
  34. <span class="hljs-keyword">WHILE</span> <span class="hljs-keyword">NOT</span> done <span class="hljs-keyword">LOOP</span>
  35. <span class="hljs-keyword">CASE</span> x
  36. <span class="hljs-keyword">WHEN</span> <span class="hljs-number">1</span>, <span class="hljs-number">2</span> <span class="hljs-keyword">THEN</span> <span class="hljs-keyword">RETURN NEXT</span> r;
  37. <span class="hljs-keyword">ELSE</span> <span class="hljs-keyword">RETURN QUERY</span> <span class="hljs-keyword">SELECT</span> * <span class="hljs-keyword">FROM</span> sales;
  38. <span class="hljs-keyword">END</span> <span class="hljs-keyword">CASE</span>;
  39. <span class="hljs-keyword">END</span> <span class="hljs-keyword">LOOP</span>;
  40. <span class="hljs-keyword">EXECUTE</span> <span class="hljs-string">'SELECT count(*) FROM mytable WHERE inserted_by = $1'</span> <span class="hljs-keyword">INTO</span> c <span class="hljs-keyword">USING</span> checked_user;
  41. <span class="hljs-keyword">OPEN</span> curs1 <span class="hljs-keyword">SCROLL FOR</span> <span class="hljs-keyword">SELECT</span> * <span class="hljs-keyword">FROM</span> foo <span class="hljs-keyword">WHERE</span> key = mykey;
  42. <span class="hljs-keyword">FETCH LAST</span> <span class="hljs-keyword">FROM</span> curs1 <span class="hljs-keyword">INTO</span> x, y;
  43. <span class="hljs-keyword">MOVE RELATIVE</span> <span class="hljs-number">-2</span> <span class="hljs-keyword">FROM</span> curs1;
  44. <span class="hljs-keyword">UPDATE</span> foo <span class="hljs-keyword">SET</span> dataval = myval <span class="hljs-keyword">WHERE</span> <span class="hljs-keyword">CURRENT</span> <span class="hljs-keyword">OF</span> curs1;
  45. <span class="hljs-keyword">CLOSE</span> curs1;
  46. <span class="hljs-keyword">RETURN</span> quantity;
  47. <span class="hljs-keyword">EXCEPTION</span>
  48. <span class="hljs-keyword">WHEN</span> <span class="hljs-built_in">NO_DATA_FOUND</span> <span class="hljs-keyword">THEN</span>
  49. <span class="hljs-keyword">GET</span> <span class="hljs-keyword">DIAGNOSTICS</span> integer_var = <span class="hljs-built_in">ROW_COUNT</span>;
  50. <span class="hljs-keyword">WHEN</span> <span class="hljs-built_in">SQLSTATE</span> <span class="hljs-string">'22012'</span> <span class="hljs-keyword">THEN</span>
  51. <span class="hljs-keyword">NULL</span>;
  52. <span class="hljs-keyword">END</span>;