aboutsummaryrefslogtreecommitdiff
path: root/doc/src/sgml/ref/move.sgml
blob: 50dd279062d55241b68b1821827ed9d917210e32 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<REFENTRY ID="SQL-MOVE">
<REFMETA>
<REFENTRYTITLE>
MOVE
</REFENTRYTITLE>
<REFMISCINFO>SQL - Language Statements</REFMISCINFO>
</REFMETA>
<REFNAMEDIV>
<REFNAME>
MOVE
</REFNAME>
<REFPURPOSE>
Moves cursor position
</REFPURPOSE>
  </refnamediv>                
<REFSYNOPSISDIV>
<REFSYNOPSISDIVINFO>
<DATE>1998-09-24</DATE>
</REFSYNOPSISDIVINFO>
<SYNOPSIS>
MOVE [ <REPLACEABLE CLASS="PARAMETER">selector</REPLACEABLE> ] [ <REPLACEABLE CLASS="PARAMETER">count</REPLACEABLE> ] 
    { IN | FROM } <REPLACEABLE CLASS="PARAMETER">cursor</REPLACEABLE>
FETCH [ RELATIVE ] [ { [ <REPLACEABLE CLASS="PARAMETER">#</REPLACEABLE> | ALL | NEXT | PRIOR ] } ] FROM ] <REPLACEABLE CLASS="PARAMETER">cursor</REPLACEABLE>
	</SYNOPSIS>
  </refsynopsisdiv>

  <REFSECT1 ID="R1-SQL-MOVE-1">
	<REFSECT1INFO>
	  <DATE>1998-09-24</DATE>
	</REFSECT1INFO>
	<TITLE>
	  Description
	</TITLE>
	<PARA>
	  <command>MOVE</command> allows a user to move cursor position a specified
	  number of rows.
	  <command>MOVE</command> works like the <command>FETCH</command> command,
	  but only positions the cursor and does
	  not return rows.
	</para>
	<para>
	  Refer to the <command>FETCH</command> command for details on syntax and usage.
	</para>

	<REFSECT2 ID="R2-SQL-MOVE-3">
	  <REFSECT2INFO>
		<DATE>1998-09-24</DATE>
	  </REFSECT2INFO>
	  <TITLE>
		Notes
	  </TITLE>
	  <PARA>
		<command>MOVE</command> is a <productname>Postgres</productname>
		language extension.
	  </para>
	  <para>
		Refer to <command>FETCH</command> for a description
		of valid arguments.
		Refer to <command>DECLARE</command> to declare a cursor.
		Refer to <command>BEGIN WORK</command>, <command>COMMIT WORK</command>,
		<command>ROLLBACK WORK</command> statements
		for further information about transactions.
	  </para>
	</REFSECT2>
  </refsect1>

  <REFSECT1 ID="R1-SQL-MOVE-2">
	<TITLE>
	  Usage
	</TITLE>
	<PARA>
	  <ProgramListing>
		--set up and use a cursor:
		--
		BEGIN WORK;
		DECLARE liahona CURSOR  FOR SELECT * FROM films;
		
		--Skip first 5 rows:
		--
		MOVE FORWARD 5 IN liahona;
		<computeroutput>
		  MOVE
		</computeroutput>
		--Fetch 6th row in the cursor liahona:
		--
		FETCH 1 IN liahona;
		<computeroutput>
		  FETCH
		  code |title |did| date_prod|kind      |len
		  -----+------+---+----------+----------+------
		  P_303|48 Hrs|103|1982-10-22|Action    | 01:37
		  (1 row)
		</computeroutput>
		-- close the cursor liahona and commit work:
		--
		CLOSE liahona;
		COMMIT WORK;
	  </ProgramListing>
	</para>
  </REFSECT1>

  <REFSECT1 ID="R1-SQL-MOVE-3">
	<TITLE>
	  Compatibility
	</TITLE>
	<PARA>
	</PARA>
	
	<REFSECT2 ID="R2-SQL-MOVE-4">
	  <REFSECT2INFO>
		<DATE>1998-09-01</DATE>
	  </REFSECT2INFO>
	  <TITLE>
		SQL92
	  </TITLE>
	  <PARA>
		There is no SQL92 <command>MOVE</command> statement. 
		Instead, <acronym>SQL92</acronym> allows
		one to <command>FETCH</command> rows from an absolute cursor position,
		implicitly moving the cursor to the correct place.
	  </para>
	</refsect2>
  </refsect1>
</REFENTRY>