资源描述:
《postgresql操作技巧》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、工作中对postgreSQL的一点小经验但愿能对大家有益导出数据库中存储过程的语句:适用于比较两个数据库中存储过程的细小差别,以及恢复时使用。下面只是一个3个字段的demo,如果参数多就自己向里面添加,大家应该能找得到规律的,一眼就懂得哦。SELECT'--Function:'
2、
3、a.proname
4、
5、'--DROPFUNCTION'
6、
7、a.proname
8、
9、'('
10、
11、rtrim(CASEWHENcoalesce(t0.typname,'')=''THEN''ELSE(CASEWHENa.proargmodes[
12、1]='i'THEN''
13、
14、t0.typnameWHENa.proargmodes[1]='o'THEN''WHENa.proargmodes[1]='b'THEN''ELSE''
15、
16、t0.typnameEND)
17、
18、','END
19、
20、CASEWHENcoalesce(t1.typname,'')=''THEN''ELSE(CASEWHENa.proargmodes[2]='i'THEN''
21、
22、t1.typnameWHENa.proargmodes[2]='o'THEN''WHENa.proargmodes[2]='b'
23、THEN''ELSE''
24、
25、t1.typnameEND)
26、
27、','END
28、
29、CASEWHENcoalesce(t2.typname,'')=''THEN''ELSE(CASEWHENa.proargmodes[3]='i'THEN''
30、
31、t2.typnameWHENa.proargmodes[3]='o'THEN''WHENa.proargmodes[3]='b'THEN''ELSE''
32、
33、t2.typnameEND)
34、
35、','END,',')
36、
37、')'
38、
39、';'
40、
41、''
42、
43、'CREATEORREPLACEFUN
44、CTION'
45、
46、a.proname
47、
48、'('
49、
50、rtrim(CASEWHENcoalesce(t0.typname,'')=''THEN''ELSE(CASEWHENa.proargmodes[1]='i'THEN'IN'WHENa.proargmodes[1]='o'THEN'OUT'WHENa.proargmodes[1]='b'THEN'INOUT'ELSE''END)
51、
52、a.proargnames[1]
53、
54、''
55、
56、t0.typname
57、
58、','END
59、
60、CASEWHENcoalesce(t1.typname,
61、'')=''THEN''ELSE(CASEWHENa.proargmodes[2]='i'THEN'IN'WHENa.proargmodes[2]='o'THEN'OUT'WHENa.proargmodes[2]='b'THEN'INOUT'ELSE''END)
62、
63、a.proargnames[2]
64、
65、''
66、
67、t1.typname
68、
69、','END
70、
71、CASEWHENcoalesce(t2.typname,'')=''THEN''ELSE(CASEWHENa.proargmodes[3]='i'THEN'IN'WHENa
72、.proargmodes[3]='o'THEN'OUT'WHENa.proargmodes[3]='b'THEN'INOUT'ELSE''END)
73、
74、a.proargnames[3]
75、
76、''
77、
78、t2.typname
79、
80、','END,',')
81、
82、')'
83、
84、'RETURNS'
85、
86、(CASEWHENa.proretsetTHEN'SETOF'ELSE''END)
87、
88、b.typname
89、
90、'AS$BODY$'
91、
92、a.prosrc
93、
94、'$BODY$LANGUAGE''plpgsql''VOLATILEC
95、OST100;'
96、
97、'ALTERFUNCTION'
98、
99、a.proname
100、
101、'('
102、
103、rtrim(CASEWHENcoalesce(t0.typname,'')=''THEN''ELSE(CASEWHENa.proargmodes[1]='i'THEN'IN'WHENa.proargmodes[1]='o'THEN'OUT'WHENa.proargmodes[1]='b'THEN'INOUT'ELSE''END)
104、
105、a.proargnames[1]
106、
107、''
108、
109、t0.typname
110、
111、','END
112、
113、CASEWHE
114、Ncoalesce(t1.typname,'')=''THEN''ELSE(CASEWHENa.proargmodes[2]='i'THEN'IN'WHENa.proargmodes[2]='o'THEN'OUT'WHENa.proargmodes[2]='b'THEN'INOUT'ELSE''END)
115、
116、a.proargnames[2]
117、
118、'