ok
Direktori : /opt/alt/postgresql11/usr/share/doc/alt-postgresql11-9.2.24/html/ |
Current File : //opt/alt/postgresql11/usr/share/doc/alt-postgresql11-9.2.24/html/xplang.html |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >Procedural Languages</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REV="MADE" HREF="mailto:pgsql-docs@postgresql.org"><LINK REL="HOME" TITLE="PostgreSQL 9.2.24 Documentation" HREF="index.html"><LINK REL="UP" TITLE="Server Programming" HREF="server-programming.html"><LINK REL="PREVIOUS" TITLE="Rules Versus Triggers" HREF="rules-triggers.html"><LINK REL="NEXT" TITLE="Installing Procedural Languages" HREF="xplang-install.html"><LINK REL="STYLESHEET" TYPE="text/css" HREF="stylesheet.css"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"><META NAME="creation" CONTENT="2017-11-06T22:43:11"></HEAD ><BODY CLASS="CHAPTER" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="5" ALIGN="center" VALIGN="bottom" ><A HREF="index.html" >PostgreSQL 9.2.24 Documentation</A ></TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A TITLE="Rules Versus Triggers" HREF="rules-triggers.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A HREF="server-programming.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="60%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="20%" ALIGN="right" VALIGN="top" ><A TITLE="Installing Procedural Languages" HREF="xplang-install.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="CHAPTER" ><H1 ><A NAME="XPLANG" ></A >Chapter 38. Procedural Languages</H1 ><P > <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > allows user-defined functions to be written in other languages besides SQL and C. These other languages are generically called <I CLASS="FIRSTTERM" >procedural languages</I > (<ACRONYM CLASS="ACRONYM" >PL</ACRONYM >s). For a function written in a procedural language, the database server has no built-in knowledge about how to interpret the function's source text. Instead, the task is passed to a special handler that knows the details of the language. The handler could either do all the work of parsing, syntax analysis, execution, etc. itself, or it could serve as <SPAN CLASS="QUOTE" >"glue"</SPAN > between <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > and an existing implementation of a programming language. The handler itself is a C language function compiled into a shared object and loaded on demand, just like any other C function. </P ><P > There are currently four procedural languages available in the standard <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > distribution: <SPAN CLASS="APPLICATION" >PL/pgSQL</SPAN > (<A HREF="plpgsql.html" >Chapter 39</A >), <SPAN CLASS="APPLICATION" >PL/Tcl</SPAN > (<A HREF="pltcl.html" >Chapter 40</A >), <SPAN CLASS="APPLICATION" >PL/Perl</SPAN > (<A HREF="plperl.html" >Chapter 41</A >), and <SPAN CLASS="APPLICATION" >PL/Python</SPAN > (<A HREF="plpython.html" >Chapter 42</A >). There are additional procedural languages available that are not included in the core distribution. <A HREF="external-projects.html" >Appendix H</A > has information about finding them. In addition other languages can be defined by users; the basics of developing a new procedural language are covered in <A HREF="plhandler.html" >Chapter 49</A >. </P ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="rules-triggers.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="xplang-install.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >Rules Versus Triggers</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="server-programming.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Installing Procedural Languages</TD ></TR ></TABLE ></DIV ></BODY ></HTML >