DECLARE

Name

DECLARE -- ����һ���α�

Synopsis

DECLARE name [ BINARY ] [ INSENSITIVE ] [ [ NO ] SCROLL ]
    CURSOR [ { WITH | WITHOUT } HOLD ] FOR query
    [ FOR { READ ONLY | UPDATE [ OF column [, ...] ] } ]

����

DECLARE �����û������α꣬ ������һ����IJ�ѯ������������������ݡ� ʹ�� FETCH���α���Լȿ��Է����ı�Ҳ���Է��ض����Ƹ�ʽ��

ͨ���α귵���ı���ʽ���� SELECT ���ɵ���һ���ġ� ��Ϊ������ϵͳ�ڲ����ö����Ƹ�ʽ�洢�ģ� ϵͳ�����������һ��ת���������ı���ʽ�� һ�����������ı���ʽ���أ���ô�ͻ���Ӧ����Ҫ������ת���ɶ����ƽ��в����� ���⣬�ı���ʽһ�㶼�ȶ�Ӧ�Ķ����Ƹ�ʽռ�Ĵ洢�ռ�� �������α���㷵���ڲ���������̬�����ݡ���Ȼ������������ı���ʽ��ʾ���ݣ���ô���ı���ʽ������Ϊ���Լ�ܶ�ͻ��˵Ĺ�����

���磬�����ѯ��һ�������з���һ��һ�� ��ȱʡ���α����㽫���һ���ַ��� 1���������һ���������α꣬ �㽫�õ�һ�� 4���ֽڵİ�������ֵ�ڲ���ʽ����ֵ������򣩡�

�α�Ӧ��С��ʹ�ö������αꡣһЩ�û�Ӧ���� psql �Dz�ʶ��������α�ģ� �����������ص��������ı���ʽ��

ע��: ����ͻ���Ӧ��ʹ��"��չ��ѯ"Э�鷢�� FETCH ��� ��ô Bind Э���������������ı������ö����Ƹ�ʽ������ ���ѡ�񸲸��α�Ķ��塣��ˣ���ʹ����չ��ѯЭ���ʱ�� �������α�ĸ����Ѿ���ʱ�� — �κ��α궼���Ե����ı����߶����Ƶĸ�ʽ������

����

name

�������FETCH������ʹ�õ��α�����

BINARY

���α��Զ����ƶ������ı���ʽ��ȡ���ݡ�

INSENSITIVE

�������α�������������ݲ�Ӧ�ñ��������̻��α�ĸ��¶���Ӱ�졣 �� PostgreSQL ������α궼�Dz����еģ� ����ؼ���û��ʲô���ã��ṩ��ֻ��Ϊ�˺� SQL ��׼���ݡ�

SCROLL
NO SCROLL

SCROLL �������α���������Է�˳��ķ�ʽ���������У�Ҳ�������������� ���ݲ�ѯ��ִ�мƻ��IJ�ͬ������ SCROLL ���ܻ�Բ�ѯ��ִ��ʱ�丽��һ����Ӱ�졣 NO SCROLL �������α겻�������Է�˳��ķ�ʽ���������У�Ҳ��������������

WITH HOLD
WITHOUT HOLD

WITH HOLD �������α�����ڴ�����������ɹ��ύ�����ʹ�á� WITHOUT HOLD �������α겻���ڴ������ĵ������ύ��ʹ�á������û������ WITHOUT HOLD��Ҳû������ WITH HOLD�� ��ôȱʡ�� WITH HOLD��

query

һ��SELECT��ѯ�����ṩ���α귵�ص��С� ��ο� SELECT ����ȡ�й���Ч��ѯ����ϸ��Ϣ��

FOR READ ONLY
FOR UPDATE

FOR READ ONLY �����α꽫����ֻ��ģʽ�� FOR UPDATE �����α꽫�����ڸ��±� ��ΪĿǰ PostgreSQL ��֧���α���£� �������� FOR UPDATE ������һ��������Ϣ�������� FOR READ ONLY û�����á�

column

�������µ��С���Ϊ�α����Ŀǰ���� PostgreSQL ֧�֣� ���� FOR UPDATE �Ӿ佫����һ��������Ϣ��

BINARY��INSENSITIVE�� SCROLL �ؼ��ֿ������κ�˳����֡�

ע��

���û������ WITH HOLD����ô�����������α�ֻ���ڵ�ǰ������ʹ�á�ʹ�� BEGIN�� COMMIT �� ROLLBACK ����һ������顣

��������� WITH HOLD�����Ҵ������α������ɹ��ύ�� ��ô�α껹������ͬһ�Ự������������ʡ��������������������ع�����ô�α걻ɾ������ ���� WITH HOLD �������α�����һ����ȷ�� CLOSE ��������ǻỰ��ֹ���رյġ� ��Ŀǰ��ʵ�����һ���α��������DZ�������һ����ʱ�ļ������ڴ�����ģ��������Ǿ���Ȼ���������������б����ʡ�

�ڶ���һ��Ҫ�������ץȡ���α��ʱ������Ӧ������ SCROLL ѡ� ����� SQL ��׼Ҫ��ġ�������Ϊ�˺����ڵİ汾���ݣ� PostgreSQL ��û�� SCROLL ��ʱ��Ҳ�������ץȡ�� ֻҪ�α�IJ�ѯ�ƻ��򵥵ò���Ҫ����Ŀ����Ϳ���֧������ ���������ǽ���Ӧ�ÿ�����Ա��Ҫ������ʹ��û�д��� SCROLL ������α�ĺ�����ҹ��ܡ���������� NO SCROLL����ô�������������ֹ���ץȡ�Ĺ��ܡ�

�� SQL ��׼���α�ֻ����Ƕ�� SQL ��ESQL�� ��Ӧ����ʹ�á� PostgreSQL ������û��һ����ȷ�� OPEN ��䣻һ���α걻��Ϊ�ڶ���ʱ���Ѿ����ˡ� ������PostgreSQLǶ��� SQL Ԥ�������� ecpg�� ֧�� SQL92 ϰ�ߣ�������Щ��DECLARE��OPEN��ص���䡣

����

����һ���α꣺

DECLARE liahona CURSOR FOR SELECT * FROM films;

���� FETCH ��ȡ�й� �α�ʹ�õĸ������ӡ�

������

SQL92 ��׼ֻ������Ƕ��� SQL �к�ģ����ʹ���αꡣ PostgreSQL ��������ʹ���αꡣ

SQL92 ��׼�����α���±����ݡ� ���� PostgreSQL ���α궼��ֻ���ġ�

�������α��� PostgreSQL ��չ��

�ּ�

CLOSE, FETCH, MOVE