Thread: YNT: Re: [SQL] Using bind variable within BEGIN END
... which will pass arguments and get back a result set, i mean..
Samsung cihazımdan gönderildi
-------- Orjinal mesaj --------
Kimden: "David G. Johnston" <david.g.johnston@gmail.com>
Tarih: 2 06 2017 9:21 PM (GMT+02:00)
Alıcı: anand086 <anand086@gmail.com>
Cc: pgsql-sql@postgresql.org
Konu: Re: [SQL] Using bind variable within BEGIN END
On Friday, June 2, 2017, anand086 <anand086@gmail.com> wrote:
Another example where we are getting the same error is from the call of the
below code --
ctx.update(""
+ "begin \n"
+ "
access.register_type( \n"
+ "
p_entity_system => ?, \n"
+ "
p_entity_type => ?, \n"
+ "
p_attribute_name => ?, \n"
+ "
p_creator_id => ?, \n"
+ "
p_description => ? \n"
+ " );"
+ "end;",
systemName,
entityType,
attributeName,
creatorID,
attributeDescription);
access.register_type is a function
PostgreSQL doesn't alllow named arguments when calling functions and function calls must be part of a SQL statement: select func(?,?,?,?.?); this applied even to functions that do not return results. IOW, PostgreSQL doesn't have stored procedures.
David J.
On 06/02/2017 11:38 AM, gulsumramazanoglu wrote: > ... which will pass arguments and get back a result set, i mean.. Using Python and psycopg2: \df billing_days List of functions Schema | Name | Result data type | Argument data types | Type --------+--------------+--------------------------+--------------------------------+-------- public | billing_days | TABLE(billing_datedate) | start_date date, end_date date | normal select * from billing_days('05/01/2017', '05/30/2017'); billing_date -------------- 2017-05-01 2017-05-02 2017-05-03 2017-05-04 2017-05-05 2017-05-08 2017-05-09 2017-05-10 2017-05-11 2017-05-122017-05-15 2017-05-16 2017-05-17 2017-05-18 2017-05-19 2017-05-22 2017-05-23 2017-05-24 2017-05-25 2017-05-26 2017-05-292017-05-30 import psycopg2 con = psycopg2.connect('dbname=**** user=***_admin host=localhost') bill_cur = con.cursor() bill_cur.execute("SELECT * FROM billing_days(%s, %s)" , ('05/01/2017', '05/31/2017')) bill_rs = bill_cur.fetchall() for row in bill_rs: print(row[0]) 2017-05-01 2017-05-02 2017-05-03 2017-05-04 2017-05-05 2017-05-08 2017-05-09 2017-05-10 2017-05-11 2017-05-12 2017-05-15 2017-05-16 2017-05-17 2017-05-18 2017-05-19 2017-05-22 2017-05-23 2017-05-24 2017-05-25 2017-05-26 2017-05-29 2017-05-30 2017-05-31 > > > > Samsung cihazımdan gönderildi -- Adrian Klaver adrian.klaver@aklaver.com