Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x

PostgreSQL

PostgreSQL is an object-relational database management system with an emphasis on extensibility and standards-compliance. As a database server, its primary function is to store data securely, supporting best practices, and to allow for retrieval at the request of other software applications. PostgreSQL implements the majority of the SQL2011 standard, is ACID-compliant and transactional using multiversion concurrency control (MVCC), and handles complex SQL queries using many indexing methods that are not available in other databases. It is cross-platform and runs on many operating systems including Linux, FreeBSD, OS X, Solaris, and Microsoft Windows.

Share tech news, updates, or what's on your mind.

Sign up to Post

Need help in post gres sql Function...kindly note i need a post gres function created

Declare
field variable = #
record delimiter =!

I fetch data from a table A

select emp no, deptno, account from table A
where account_id = input_acct_id,
             sor_id = input_sor_id,
             time_stamp  = input_time_stamp

I need to send only 40 rows to output. I need to another output variable(More_flag = "Y") if the number of records is more than 40 else i need to send More_flag = "N". This is for pagenation.

Based on the deptno from table A, i need to fetch the dept desc from table B
 select dept_desc from table B
where deptno = tableA.deptno.

I need to send these variable either as a record set or a string

output_rec =    empno fielddelimiter, deptno fielddelimiter, dept_Desc recorddelimiter

(ie) after every field there must a field delimiter and after every record there must a record delimiter.

My final output record must contain

(
input_acct_id,
input_sor_id,
input_time_stamp,
sqlcode,
more_flag,
output_rec,
)

Hope i am able to convey my requirement.
0
Enroll in October's Free Course of the Month
LVL 10
Enroll in October's Free Course of the Month

Do you work with and analyze data? Enroll in October's Course of the Month for 7+ hours of SQL training, allowing you to quickly and efficiently store or retrieve data. It's free for Premium Members, Team Accounts, and Qualified Experts!

Hello,

I have 2 database in postgres, both DB are related using dblink and I need to detect that when making a change in a structure or view could affects the related DB or its views.

The changes I make and need to control are:
1- When I make a change on the structure in DB 1, for example we add a field, and forget to change it in the view or related query. In this case I need a list of views that have related to be able to update them.

2- When I make a change in views in DB 1, and I do not edit all the related queries. In this case, I need a list of queries where the view is used in order to update it.

3- When I make a change in view in DB 1 used by a dblink view in DB 2 without updated it. In this case I need to be notified that the view or structure used in dblink to be able to update it.

Is there any functionality that I can use to be able to do this type of controls?
0
Hi
I'm trying to build a spatial query to locate all results within a radius of a point
I'm passing 3 Variables   & testing if numeric  

something like this
if(isset($_GET['long'])){
$err=0;
if(is_numeric($_GET['long'])){
   $long =$_GET['long'];
}
else{
  $err++
}
if(is_numeric($_GET['lat'])){
   $lat =$_GET['lat'];
}
else{
  $err++
}
if(is_numeric($_GET['rad'])){
   $rad =$_GET['rad'];
}
else{
  $err++
}

If($err ==0){
 $where =  "ST_DWithin(geography(geom), 'POINT(" . $long . " " . $lat . ")'," . $rad . ")";
$sql =<<<SQL
  SELECT * 
  FROM mytable 
  WHERE $1
SQL;
$result = pg_prepare($dbconn, "my_query", $sql) or die (pg_last_error());
$result = pg_execute($dbconn, "my_query", array($where);
}
}

Open in new window

The above fails no mater how it is written the $sql isn't passed to the database correctly pg_error returns false errors near  'ST_DWithin''
Tried bellow first and various other  computations

$sql = <<<SQL
  SELECT * 
  FROM mytable 
  WHERE 
  ST_DWithin(geography(geom), 'POINT($1 $2)', $3)
SQL; 
$result = pg_prepare($dbconn, "my_query", $sql) or die (pg_last_error());
result = pg_execute($dbconn, "my_query", array($long,$lat,$rad);

Open in new window

however using pg_query like below works

$sql = <<<SQL
  SELECT * 
  FROM mytable 
  WHERE 
  ST_DWithin(geography(geom), 'POINT($long $lat)', $rad)
SQL; 

$result = pg_query($dbconn, $sql) or die (pg_last_error());

Open in new window


Can anyone suggest why this is happening and is pg_query secure enough?

I thought about  adding this to the  input but is_numeric trustworthy enough?

if(is_numeric($_GET['long'])){
    $long =pg_escape_string($_GET['long']);
}

Open in new window



BTW I don't have the required files for PDO & the above has been hand copied from a closed system so may contain typos this question  is aimed at why / how do you pg_prepare spatial queries passing parrameters
1
Hi
I have some point data stored in a postgreSQL/PostGIS Database
I need to do some distance measurements select point within 0.5 km of my point

something like

select * from geo_table where ST_DWithin('POINT(Long Lat)' ::geography,geog,0.5)

Open in new window


the problem is points are stored as Geometry Longitude, Latitude SRD= 4326

  my geo_table has geom column created from  Longitude, Latitude points and a currently empty geog column

Any idea how to  create the geography column either from the existing geography column or from the Longitude, Latitude (Stored digitally not DMS ) columns?

thank you
1
I have created a view in PosgreSQL with the following update rule

CREATE OR REPLACE RULE "_UPDATE" AS
    ON UPDATE TO custom.qty_brk_price DO INSTEAD  UPDATE inventory_price_matrix SET amount = new.amount
   FROM inventory_price_matrix ipm
     JOIN custom.qty_brk_price ON ipm.part_no::text = qty_brk_price.part_no::text
  WHERE inventory_price_matrix.part_no::text = new.part_no::text AND inventory_price_matrix.whse::text = '00'::text AND inventory_price_matrix.promo_code::text = 'BV_QTYBRK'::text AND inventory_price_matrix.amount_type::text = 'P'::text AND inventory_price_matrix.uom_code::text <> ''::text AND qty_brk_price.qty_brk_price = old.qty_brk_price AND inventory_price_matrix.min_qty = old.min_qty;

Open in new window


It works to run the following update query on the view in PostgreSQL but not in Microsoft Access when running the same query

UPDATE custom.qty_brk_price SET amount = 139
WHERE part_no='10006';

Open in new window


Can someone help on why that same query would not work in Access when linking to that view in PostgreSQL?

In Access I get this error
access-error.jpg
0
Hi,
 I am using PostgreSQL database for developers.Now I want to migrate the PostgreSQL database to SQL lite in windows 7.
 what should i do? Please suggest me.
0
Hi
I'm running PHP version 5.3.5 on a standalone (No internet) fedora 12

I need to build a search web page to query a PostgreSQL database I can't use PDO because the driver is missing

pg_connect works so how do I write a select query that can take 1 or more user parameters from a front end form and loop through the results

At this stage I'm just trying to work out how to query the database safely  eg bind the user parameters to prevent SQL Injection  

I get SQL syntax error on the where clause I think the array isn't being passed into $1


syntax error at or near "," line XX:  name like $1 , array("Trevor%")





<?php
error_reporting(E_ALL);

// Connect to a database named "mary"
$dbconn = pg_connect("dbname=mary") or die("Cannot connect ".  pg_last_error()) ;

$name = "Trevor%";  // simulate $_POST 

$SQL = <<<SQL
Select name,age,address from my_table where name like $1" , array("$name"));
SQL;
 // actual query is over multi lines

$results= pg_query($SQL) or die("Cannot connect ".  pg_last_error()) ;

if($results){
// loop through results building HTML
  while($row = pg_fetch_array($result, NULL, PGSQL_ASSOC)){
            echo "<p>Name:" . $row['name'] . "age: " .$row['age'] .  "address:" . $row['address'] . "</p>";
  }
}// end if results
else{
      echo "<p>No Data </p>";
}

Open in new window

0
I have a VB6 running against a cloud database
When I tried pg_dump  on a local postgre database it worked  fine

When i tried it against a cloud  postgreSQL database the connection went through and then i got the error attached

What could be the reason ??

Is there a way to start pg_dump from within a vb6 application without running a batch file
I will appreciate the syntax for this if it exists

Thanks

O.A.  Oluwole
pg_dumperror.PNG
0
Hi Team,

         I am using PostgreSQL using PGadmin 4 for Backup &restore. I can able to take backup easily using backup.And also restore the backup file to new database.

       But I can't able to overwrite database restore.If i try new database restore successfully completed.If i restore backup file to old database i get a error.I was using pg admin and lot of command also for restore.Anyone can you please help me for this issue. I am using windows 7 32 Bit.
0
I have 2 tables in posgreSQL something like this

table_1

id,text1,text2,text_3
1,99,012345
2,999,023456

table_2

id,text3
1,099/12345
2,999/23456 

Open in new window


I need to link the 2 tables together  so on
table_1
if text1 is 2 digits I need to add  a leading zero = temp_text1
and remove the leading zero to text2  = temp_text2
without altering the text in text1 or text2 as  these are linked to another tables

then run an update command

update table_1 set text3 = concatenate(temp_text1, '/', temp_text2)  

Text3 in both table should then be the same format

xxx/xxxxx  or 123/12345
0
Free Tool: IP Lookup
LVL 10
Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

I am running a small subnet which  has several servers performing their varied tasks, one of which is a a PostGres SQL box. This small group has a management server which has two nics - one on the primary net and the other on the "internal".

The two servers in question we will call "Jump" and "PG"

Jump has an ip address of 10.10.10.10 for the primary net and an address of 192.168.20.10 for the internal net.
BG has an ip address of 192.168.20.40

My iptables rules are as follows:

    iptables -A INPUT -p tcp -m state --state NEW,ESTABLISHED -m tcp --dport 5432 -j ACCEPT

    iptables -A FORWARD -d 192.168.20.40/32 -p tcp -m tcp --dport 5432 -m comment --comment "Forward inbound PGAdmin traffic to postgres server" -j ACCEPT

     iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 5432 -j DNAT --to-destination 192.168.20.40:543

     iptables -t nat -A POSTROUTING -s 192.168.26.44 -o eth0 -j MASQUERADE

PGAdmin is configured to address the Jump server on port 5432 and when attempting contact, the traffic arrives to the PG server and returns to my workstation but with a hitch.
     Watching tcpdump on the linux boxes and Wireshark on the Windows box, I am able to see the tcp stream initiate at my workstation travel through the jump box and arrive at the PG box.  When the packet has arrived at the PG box, the source is my workstation.
          IP 10.10.10.11.54564 > 192.168.20.40.5432: Flags [S]
     The PG box sends a reply to my workstation:
         …
0
Hi
My VCenter server service on VMware virtual appliance 5.5 keeps stopping. upon investigating it looks like the database has taken all the disk space (99%).

I have followed this article and it only reclaimed a couple of gigs as now showing (97%). see screen print attached.

https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2056448

Can anyone tell me how I can reclaim more disk space please?

Thanks
disk.PNG
0
I have a cloud database
The database  is postgresql and the operating system is Linux Unbuntu 16.04
The server has email configured

Each time i log in I get the attached message which suggest to me
that the system checks for mail and cant  find any mail . Thats why
it reports no mail in the message

My requirement is that the loggin name of the user logging in should be sent to
my email address  techsupport@datatronicsnig.com

What modification do i need to do in my login script to achieve this

How can i achieve  this functionality  for every login

O.A. Oluwole
login-message.PNG
0
We support a system where custom fields in the system are stored as hstore fields. Like this

select query
select udf_data from inventory

Open in new window


""LocOver"=>"", "freight"=>"0", "3M Codes"=>"", "V_Partno"=>"110SP-60", "brokerage"=>"0", "Dentsply C"=>"""

Here is the data for one record. LocOver, freight, 3M Code, V_Partno, brokerge, Dentsply are the field names in the system

I want to update

I want to update the udf_data column with the values from inventory.part_no column from the udf_data V_Partno

So the update statement should be like this:

update customers
set udf_data = misc1
where udf_data ?| '{cust_type}'

But the hstore has a particular update statement like this:

update customers set udf_data = udf_data || '"cust_type"=>"test"'::hstore

Which does not work. Can anyone help?
0
Hello Experts,

I have a webpage and I need to get the data from a postgres db.  I will probably hire someone to actually do this, but I'd like to understand the process prior.  I think that I have to use node.js to get the data from the database.  Does that sound right?  Or is there a better way to get at the data?
0
I have a PosgreSQL database where I have an array field with 4 values.  This query will extract one value at the time
select public.addresses.address[1] from public.addresses

Open in new window


I'm linking the table to an Access database and the array I have above does not work there. How can I do this in Access?

Here is are my results from PostgreSQL and this is what I want to do in Access
Image-39.jpg
Image-38.jpg
0
The query is as below.
The attached file shows the existing worksheet with the columns that are output from this query.
The attached file also shows the desired worksheet, with some columns removed and the postcode column included twice, the extra postcode column to be included as the first column.
CREATE OR REPLACE VIEW ADDRESS_VIEW

AS

SELECT
AD.ADDRESS_DETAIL_PID as ADDRESS_DETAIL_PID,
AD.STREET_LOCALITY_PID as STREET_LOCALITY_PID,
AD.LOCALITY_PID as LOCALITY_PID,
AD.BUILDING_NAME as BUILDING_NAME,

AD.LOT_NUMBER_PREFIX as LOT_NUMBER_PREFIX,
AD.LOT_NUMBER as LOT_NUMBER,
AD.LOT_NUMBER_SUFFIX as LOT_NUMBER_SUFFIX,

FTA.NAME as FLAT_TYPE,
AD.FLAT_NUMBER_PREFIX as FLAT_NUMBER_PREFIX,
AD.FLAT_NUMBER as FLAT_NUMBER,
AD.FLAT_NUMBER_SUFFIX as FLAT_NUMBER_SUFFIX,

LTA.NAME as LEVEL_TYPE,
AD.LEVEL_NUMBER_PREFIX as LEVEL_NUMBER_PREFIX,
AD.LEVEL_NUMBER as LEVEL_NUMBER,
AD.LEVEL_NUMBER_SUFFIX as LEVEL_NUMBER_SUFFIX,

AD.NUMBER_FIRST_PREFIX as NUMBER_FIRST_PREFIX,
AD.NUMBER_FIRST as NUMBER_FIRST,
AD.NUMBER_FIRST_SUFFIX as NUMBER_FIRST_SUFFIX,
AD.NUMBER_LAST_PREFIX as NUMBER_LAST_PREFIX,
AD.NUMBER_LAST as NUMBER_LAST,
AD.NUMBER_LAST_SUFFIX as NUMBER_LAST_SUFFIX,

SL.STREET_NAME as STREET_NAME,
SL.STREET_CLASS_CODE as STREET_CLASS_CODE,
SCA.NAME as STREET_CLASS_TYPE,
SL.STREET_TYPE_CODE as STREET_TYPE_CODE,
SL.STREET_SUFFIX_CODE as STREET_SUFFIX_CODE,
SSA.NAME as STREET_SUFFIX_TYPE,

L.LOCALITY_NAME as LOCALITY_NAME,

ST.STATE_ABBREVIATION as …
0
Hi Team,

I am having a Python script which insert data into PostgreSQL from XML file. However, we have updated the python version to 3.6.1 it does not add any data into PostgreSQL database and does not throw any error message on command line screen.
Can you please suggest what's goes wrong in the below code...
#/usr/bin/python3.6.1

# import modules
import sys
import psycopg2
import datetime


#import cursors
now = datetime.datetime.now()
# current data and time
dt = now.strftime("%Y%m%dT%H%M%S")

# xml tree access
#from xml.etree import ElementTree
import xml.etree.ElementTree as ET

# incremental variable
x = 0
with open(sys.argv[1], 'rt',encoding="utf8") as f:
    	#tree = ElementTree.parse(f)
		tree = ET.parse(f)
# connection to postgreSQL database
try:
    conn=psycopg2.connect("dbname='####' user='postgres' password='XXXX'")
except:
    print ("Hey I am unable to connect to the database.")
cur = conn.cursor()
# access the xml tree element nodes
try:
	for node in tree.findall('.//tu'):
		src = node.find('tuv[1]/seg')
		tgt = node.find('tuv[2]/seg')
		
		source = src.text.encode("utf-8")
		target = tgt.text.encode("utf-8")
		
		#query to database table
		query = "INSERT INTO MT_DB (SRC_LOCALE,SRC_DATA,TGT_LOCALE,TGT_DATA,DOMAIN,DATETIME,TYPE) VALUES (%s, %s, %s, %s, %s, %s, %s)"
		data = (sys.argv[2],source,sys.argv[3],target,sys.argv[4],str(dt),sys.argv[5])

		#for locale swap with data
		#data = 

Open in new window

0
Hi,

   I have a PostgreSQL backup file.It is possible to convert mdf/ldf file.
0
Ask an Anonymous Question!
LVL 10
Ask an Anonymous Question!

Don't feel intimidated by what you don't know. Ask your question anonymously. It's easy! Learn more and upgrade.

I am trying to create a query returns some aggregates in Group By for a Select statement that also includes text field that is not distinct or included in an aggregate function.

While I can manually build the results in an Excel worksheet, my hope is to make a single query that can be executed on a schedule.

The target results look like this:

Target data set
Basically, the desire is to get a report of who order what, how much and the average size. Both Sales Reps and Customer Service Reps (CSRs) can take orders in the given territories. There is a one-to-many ratio between Sales Reps and CSRs. The blank items on the left mean that the only the CSR entered order for the territory for this time frame.

I have referenced portions in the data set and included the SQL below.

The code for the queries are almost identical with the exception of a couple lines.  I have highlighted these.

Query 1
And here is the other one.

Query 2
Since this would be a monthly report that is run overnight, it is not necessarily have to to run fast or efficient. So subqueries and looping would be fine. As indicated in the title, the db here is Postgres 9.4, but I will try to apply the concepts for product accordingly,.

Can anyone provide some hints / guidance on how to accomplish?

Thanks much in advance.
0
ALTER TABLE hotel
    ADD CONSTRAINT h_hotelname references location_hotel(m_hotelname)

Open in new window


[Err] ERROR:  syntax error at or near "references"
LINE 2:     ADD CONSTRAINT h_hotelname references location_hotel(m_h...

How can I fix it
Capture.PNG
0
PostgreSQL 8.1.8 with function SELECT TRANSLATE($1, 'áéíóúàèìòùãõâêîôôäëïöüçÁÉÍÓÚÀÈÌÒÙÃÕÂÊÎÔÛÄËÏÖÜÇ', 'aeiouaeiouaoaeiooaeioucAEIOUAEIOUAOAEIOOAEIOUC') and table with over a million records takes over 20 seconds for an ilike search on text field. What is my best option or solution to this problem besides upgrading PostgreSQL. Select command is in PHP file.
0
Hi, I am using JDBC to connect to a Postgres DB.  I am calling a method that connects to the DB twice.  It connects once to do a select statement and another time to do an insert statement.  I am checking to see if the a session_id exists and if it doesn't I am adding the session_id into the DB.   It does the initial select fine, but when I try to connect the second time to do the insert I am getting the error in the title above. Here is what my code looks like.  Can anyone help me out with resolving this?

private void initialInsert(String sessionId) {

		try {
			Class.forName("org.postgresql.Driver");
		} catch (ClassNotFoundException e) {
			log.info("Class Not Found: " + e.getMessage());
		}
		log.info("Entering the initial insert");
		String sessionIdFromDB = "";
		String url = "jdbc:postgresql://10.233.52.71:5432/CustomersLikeYou";
		Properties props = new Properties();
		props.setProperty("user", "itrd");
		props.setProperty("password", "itrd");
		Connection conn = null;
		ResultSet rs = null;
		try {
			log.info("Entering select");
			conn = DriverManager.getConnection(url, props);
			Statement statement = conn.createStatement();
			rs = statement.executeQuery(
					"select session_id from public.individual_customer where session_id = '" + sessionId + "'");
			log.info("Succeful select");
			while (rs.next()) {
				if (StringUtils.isNotEmpty(rs.getString("session_id"))) {
					sessionIdFromDB = rs.getString("session_id");
				}
			}

		} catch (SQLException 

Open in new window

0
Hi, I have been getting an error in my java web application "No suitable driver found for jdbc:postgresql://...."

This is a maven java web application.  The jar is included as a dependency in the pom file and when the WAR is built out the jar can be found in webapps/MyApplication/WEB-INF/lib.  

I also tried placing the jar in /usr/share/tomcat/lib.  I am still recieving the same error.  I have tried this on a local DB with postgres and the driver works fine.  Can anyone help me out?
0
What is the equivalent package for oracle  dbms_application_info..set_module in postgreSQL
0

PostgreSQL

PostgreSQL is an object-relational database management system with an emphasis on extensibility and standards-compliance. As a database server, its primary function is to store data securely, supporting best practices, and to allow for retrieval at the request of other software applications. PostgreSQL implements the majority of the SQL2011 standard, is ACID-compliant and transactional using multiversion concurrency control (MVCC), and handles complex SQL queries using many indexing methods that are not available in other databases. It is cross-platform and runs on many operating systems including Linux, FreeBSD, OS X, Solaris, and Microsoft Windows.

Top Experts In
PostgreSQL
<
Monthly
>