Using the FOR loop with %ROWTYPE : ROWTYPE « Postgre SQL « PostgreSQL

PostgreSQL
1. Aggregate Functions
2. Analytical Functions
3. Array
4. Constraints
5. Cursor
6. Data Type
7. Database
8. Date Timezone
9. Index
10. Inheritance
11. Insert Delete Update
12. Math Functions
13. Postgre SQL
14. Select Query
15. Sequence
16. Store Procedure Function
17. String Functions
18. Subquery
19. Table
20. Table Joins
21. Transaction
22. User Previliege
23. View
Java
Java Tutorial
Java Source Code / Java Documentation
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
C# / C Sharp
C# / CSharp Tutorial
ASP.Net
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
PHP
Python
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
PostgreSQL » Postgre SQL » ROWTYPE 
Using the FOR loop with %ROWTYPE


postgres=#
postgres=#
postgres=# CREATE TABLE "books" (
postgres(#      "id"           integer NOT NULL,
postgres(#      "title"        text NOT NULL,
postgres(#      "author_id"    integer,
postgres(#      "subject_id"   integer,
postgres(#      Constraint "books_id_pkey" Primary Key ("id")
postgres();
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "books_id_pkey" for table "books"
CREATE TABLE
postgres=#
postgres=#
postgres=# insert into books values (7808,  'Java',                  41569);
INSERT 0 1
postgres=# insert into books values (4513,  'Javascript',            186615);
INSERT 0 1
postgres=# insert into books values (4267,  'C#',                    200115);
INSERT 0 1
postgres=# insert into books values (1608,  'Oracle',                18092);
INSERT 0 1
postgres=# insert into books values (1590,  'Sql Server',            18092);
INSERT 0 1
postgres=# insert into books values (25908'Postgre SQL',          159902);
INSERT 0 1
postgres=# insert into books values (1501,  'Python',                20312);
INSERT 0 1
postgres=# insert into books values (190,   'Java by API',             166);
INSERT 0 1
postgres=# insert into books values (1234,  '2D',                   250413);
INSERT 0 1
postgres=# insert into books values (2038,  'C',                     16440);
INSERT 0 1
postgres=# insert into books values (156,   'C++',                    1159);
INSERT 0 1
postgres=# insert into books values (41473'Programming Python',    78054);
INSERT 0 1
postgres=# insert into books values (41477'Learning Python',       78054);
INSERT 0 1
postgres=# insert into books values (41478'Perl Cookbook',         78064);
INSERT 0 1
postgres=# insert into books values (41472'Practical PostgreSQL',  12124);
INSERT 0 1
postgres=#
postgres=# select from books;
  id   |        title         | author_id | subject_id
-------+----------------------+-----------+------------
  7808 | Java                 |      4156 |          9
  4513 | Javascript           |      1866 |         15
  4267 | C#                   |      2001 |         15
  1608 | Oracle               |      1809 |          2
  1590 | Sql Server           |      1809 |          2
 25908 | Postgre SQL          |     15990 |          2
  1501 | Python               |      2031 |          2
   190 | Java by API          |        16 |          6
  1234 2D                   |     25041 |          3
  2038 | C                    |      1644 |          0
   156 | C++                  |       115 |          9
 41473 | Programming Python   |      7805 |          4
 41477 | Learning Python      |      7805 |          4
 41478 | Perl Cookbook        |      7806 |          4
 41472 | Practical PostgreSQL |      1212 |          4
(15 rows)

postgres=#
postgres=#
postgres=# -- Using the FOR loop with %ROWTYPE
postgres=#
postgres=# CREATE FUNCTION extract_title (integerRETURNS text AS '
postgres'#   DECLARE
postgres'#
postgres'#      -- Declare an alias for function argument.
postgres'#     sub_id ALIAS FOR $1;
postgres'#
postgres'#      -- Declare a variable to hold book titles and set its default
postgres'#      --  value to a new line.
postgres'#     text_output TEXT :=''\n'';
postgres'#
postgres'#      -- Declare a variable to hold rows from the
postgres'#      -- books table.
postgres'#     row_data books%ROWTYPE;
postgres'#
postgres'#   BEGIN
postgres'#
postgres'#      -- Iterate through the results of a query.
postgres'#     FOR row_data IN SELECT FROM books
postgres'#     WHERE subject_id = sub_id ORDER BY title  LOOP
postgres'#
postgres'#        -- Insert the title of a matching book into the text_output variable.
postgres'#       text_output := text_output || row_data.title || ''\n'';
postgres'#     END LOOP;
postgres'#
postgres'#       -- Return the list of books.
postgres'#     RETURN text_output;
postgres'#   END;
postgres'# ' LANGUAGE 'plpgsql';
ERROR:  function "extract_title" already exists with same argument types
postgres=#
postgres=#
postgres=# SELECT extract_title(2);
 extract_title
---------------
 Sql Server
(row)

postgres=#
postgres=#
postgres=# drop table books;
DROP TABLE
postgres=#
postgres=#
           
       
Related examples in the same category
1. ROWTYPE assign through 'select into'
2. Using the %ROWTYPE attribute
www.java2java.com | Contact Us
Copyright 2010 - 2030 Java Source and Support. All rights reserved.
All other trademarks are property of their respective owners.