POSTGRESQL

POSTGRESQL 函数学习记录 2014/3/20


CREATE FUNCTION sales_tax(subtotal real) RETURNS real AS $$
BEGIN
    RETURN subtotal * 0.06;
END;
$$ LANGUAGE plpgsql;


CREATE or REPLACE FUNCTION calculate_sum(integer,integer) RETURNS integer AS
$$
SELECT $1 + $2
$$ LANGUAGE SQL;


CREATE OR REPLACE FUNCTION calculate_sum(integer, integer)
  RETURNS integer AS
$$
BEGIN    //存储过程需要begin
RETURN $1 + $2;  //存储过程 这里不能用SELECT 直接RETURN
END;     //存储过程需要END;结束
$$   LANGUAGE plpgsql;




tsvector的值时一个无重复值的lexemes排序列表
SELECT 'a fat cat sat on a mat and ate a fat rat'::tsvector;
结果:  "'a' 'and' 'ate' 'cat' 'fat' 'mat' 'on' 'rat' 'sat'"


XML类型
使用函数xmlparse:来从字符数据产生xml类型的值:
使用函数xmlparse:来从字符数据产生xml类型的值:


XMLPARSE ( { DOCUMENT | CONTENT } value)
Examples:




 FOR v_rec IN select * from ret_row LOOP   
 RETURN NEXT v_rec;   
 END LOOP;  


XMLPARSE (DOCUMENT '<?xml version="1.0"?><book><title>Manual</title><chapter>...</chapter></book>')
XMLPARSE (CONTENT 'abc<foo>bar</foo><bar>foo</bar>')
然而根据SQL标准,这是唯一的用于将字串转换成XML值得方式,PostgreSQL特有的语法是:


xml '<foo>bar</foo>'
'<foo>bar</foo>'::xml








声明复合类型


下面是两个定义复合类型的简单例子:


CREATE TYPE complex AS (
    r       double precision,
    i       double precision
);


CREATE TYPE inventory_item AS (
    name            text,
    supplier_id     integer,
    price           numeric
);






CREATE OR REPLACE FUNCTION calculate_sum(integer, integer)
  RETURNS SETOF  RECORD AS
$$
BEGIN
CREATE TABLE tab (y int, z int);
INSERT INTO tab VALUES (1, 2), (3, 4), (5, 6), (7, 8);
RETURN QUERY SELECT * FROM tab;
END;
$$   LANGUAGE plpgsql;
 




RETURNS SETOF  RECORD 对应
RETURN QUERY

你可能感兴趣的:(POSTGRESQL)