\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{private522288} \pdfinfo{ /Title (pl-sql-create-statements.pdf) /Creator (Cheatography) /Author (private522288) /Subject (PL/SQL - CREATE statements Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{A30A1E} \definecolor{LightBackground}{HTML}{FCF7F7} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{PL/SQL - CREATE statements Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{private522288} via \textcolor{DarkBackground}{\uline{cheatography.com/191408/cs/39788/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}private522288 \\ \uline{cheatography.com/private522288} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Not Yet Published.\\ Updated 5th August, 2023.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{2} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Creating a package}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{\{\{lang-pgsql\}\}CREATE OR REPLACE PACKAGE TEST\_PACKAGE AS \newline FUNCTION TEST\_FUNCTION RETURN VARCHAR2; \newline PROCEDURE TEST\_PROCEDURE; \newline END TEST\_PACKAGE; \newline / \newline CREATE OR REPLACE PACKAGE BODY TEST\_PACKAGE AS \newline FUNCTION TEST\_FUNCTION RETURN VARCHAR2 AS \newline V\_TEST VARCHAR2(10); \newline V\_TEST2 VARCHAR2(10) NOT NULL := 'test2'; \newline BEGIN \newline V\_TEST := 'test'; \newline RETURN V\_TEST; \newline END TEST\_FUNCTION; \newline \newline PROCEDURE TEST\_PROCEDURE IS \newline BEGIN \newline NULL; \newline END TEST\_PROCEDURE; \newline END TEST\_PACKAGE; \newline /} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{A package consists of a {\bf{specification}} and a {\bf{body}}.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{New page}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{} \tn % Row Count 0 (+ 0) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Creating an object type}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{\{\{lang-pgsql\}\}-{}- an abstract object \newline CREATE OR REPLACE TYPE RECTANGLE FORCE AS \newline OBJECT ( \newline LENGTH NUMBER, \newline WIDTH NUMBER, \newline NOT INSTANTIABLE NOT FINAL MEMBER PROCEDURE DISPLAY, \newline -{}- define a map or order function for comparison \newline NOT INSTANTIABLE NOT FINAL MAP MEMBER FUNCTION AREA \newline RETURN NUMBER \newline ) NOT INSTANTIABLE NOT FINAL; \newline / \newline CREATE OR REPLACE TYPE SQUARE UNDER RECTANGLE ( \newline CONSTRUCTOR FUNCTION SQUARE (LENGTH NUMBER, WIDTH NUMBER) \newline RETURN SELF AS RESULT, \newline OVERRIDING FINAL MEMBER PROCEDURE DISPLAY, \newline OVERRIDING FINAL MAP MEMBER FUNCTION AREA RETURN NUMBER, \newline STATIC FUNCTION TEST RETURN VARCHAR2 \newline ) FINAL; \newline / \newline CREATE OR REPLACE TYPE BODY SQUARE AS \newline CONSTRUCTOR FUNCTION SQUARE (LENGTH NUMBER, WIDTH NUMBER) \newline RETURN SELF AS RESULT AS \newline BEGIN \newline SELF.LENGTH := LENGTH; \newline SELF.WIDTH := WIDTH; \newline RETURN; \newline END; \newline OVERRIDING FINAL MEMBER PROCEDURE DISPLAY AS \newline BEGIN \newline \seqsplit{DBMS\_OUTPUT.PUT\_LINE('Square:} ' \newline || SELF.LENGTH); \newline END; \newline OVERRIDING FINAL MAP MEMBER FUNCTION AREA \newline RETURN NUMBER AS \newline BEGIN \newline RETURN LENGTH * LENGTH; \newline END; \newline STATIC FUNCTION TEST RETURN VARCHAR2 AS \newline BEGIN \newline -{}- SELF and instance attributes are not available \newline -{}- in static functions \newline RETURN 'test'; \newline END; \newline END; \newline /} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{8.4cm}}{{\bf{SELF}} refers to the current instance of an object. It is an {\bf{implicit}} parameter for methods - {\bf{IN}} for functions and {\bf{IN OUT}} for procedures. It may be omitted when used with {\bf{MEMBER}} methods. Objects support only Oracle types - {\bf{no user defined types}} are supported in attributes and methods.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}