text size limitation in PgAdmin query [duplicate] - postgresql

This question already has answers here:
incomplete information from query on pg_views [duplicate]
(2 answers)
Closed 7 years ago.
I want to get the source code of a function in my db.
I run this query:
select proname,prosrc from pg_proc where...
However when I copy the data in the procsrc field it copy only some of the function code, the whole code is not shown. I suspect that somewhere in the preference there is a text size limit.
How do I fix it?

Character Types
Text type has unlimited length. There are another problem.
Or try to change Max characters per column option.
File > Options > Query Tool > Max. characters per column
Max characters per column - Use the Max characters per column field to
specify the maximum length of data displayed in a single column.

Related

Is there any PostgreSQL magic to get results by range instead of rows? [duplicate]

This question already has answers here:
Find gaps of a sequence in PostgreSQL tables
(1 answer)
Group rows by an incrementing column in PostgreSQL
(1 answer)
Group sequential integers postgres
(3 answers)
Closed 10 months ago.
I'm sorry for the title, I don't know how to clearly summarize the problem.
That's probably why I couldn't find an answer when searching by myself.
Feel free to improve it.
Anyways, let's say I have a query returning primary id's.
SELECT id FROM ...
Instead of having results presented with one row for each id like this:
id
-----
1
2
3
45
182
183
184
I would like to know if there's any access to some internal state based on the index that would return this:
ranges
---------
1-3
45
182-184
The whole point here is NOT to have a nice presentation, I can do that.
Besides it would add a treatment after having run the query, I want the opposite.
I'd like to know if it exists some king of shortcut that would accelerate the query by not having to return each row individually.
Maybe something related to extracting data directly from the indexes used in the WHERE clause.
I'm not aware of a generic SQL way to do that but I would love to know if there's some postgres feature for this.
If the answer is "no", it's ok. I just had to ask...

Postgres mistaking value as a colum [duplicate]

This question already has answers here:
What is the difference between single quotes and double quotes in PostgreSQL?
(3 answers)
Simple Postgresql Statement - column name does not exists
(2 answers)
Closed 12 months ago.
The community reviewed whether to reopen this question 12 months ago and left it closed:
Original close reason(s) were not resolved
I have a section of a larger query, which we are working on converting from SQL to postgres that is giving an error of (Error: column "CEL" does not exist) and I am not sure why as CEL is a value nota column. I get the same result if I change "CEL" to CEL.
Select id, MIN(pos) as position from perphone
where personal_phone_type = "CEL"
GROUP BY id
"" is for quoting identifiers like columns and tables.
'' is for quoting constant values
select
id,
min(pos) as position
from perphone
where personal_phone_type = 'CEL'
group by id

What actually high and low means in a ranges table [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 7 years ago.
Improve this question
The range table contains the high and a low value. What it actually does and used for?
the range table can be used in open sql queries (using the IN clause) as a restriction. You can define several ranges to include or exclude in your query result. For instance:
report ZZTEST.
types:
lt_kunrng type range of kunnr_d.
data:
it_rnrng type standard table of lt_kunrng,
wa_rnrng type lt_kunrng,
it_kna1 type standard table of kna1.
START-OF-SELECTION.
move:
'I' to wa_rnrng-sign,
'EQ' to wa_rnrng-option,
'0001000000' to wa_rnrng-low,
'0002999999' to wa_rnrng-high.
append wa_rnrng to it_rnrng.
move:
'I' to wa_rnrng-sign,
'EQ' to wa_rnrng-option,
'0003500000' to wa_rnrng-low,
append wa_rnrng to it_rnrng.
select * from kna1 into corresponding fields of table it_kna1
where kna1~kunnr in it_rnrng.
this example defines a RANGE table manually, adds two rows to it and then queries transparent table KNA1 with this range table. The internal table it_kna1 should then contain all KNA1 records with KUNNR between 1000000 and 2999999 and the record with KUNNR 35000000. So you can combine several ranges in a single range table.
The field SIGN contains either 'I' for Include or 'E' for Exclude (meaning that this row should include or exclude records matching the defined range), the field OPTION defines the comparer ('EQ' for equal, 'GT' for greater than, 'GE' for greater or equal and so forth). Fields HIGH and LOW contain the actual ranges. If you only want to query a single value you don't have to supply both LOW and HIGH, you only need to supply field LOW (and of course SIGN and OPTION).
RANGE table are also created when you define a SELECT-OPTION in a report. Users can then use the selection screen to define the ranges they want to use in the report.
REPORT ZZTEST.
TABLES: kna1.
DATA: it_kna1 type standard table of kna1.
SELECT-OPTION:
so_kndrng for kna1-kunnr.
START-OF-SELECTION.
select * from kna1 into corresponding fields of it_kna1
where kna1~kunnr in so_kndrng.
For further information regarding range tables you can also refer to the official documentation here

How to increase display length in pg admin tool [duplicate]

This question already has answers here:
pgAdmin III Why query results are shortened?
(2 answers)
Closed 6 years ago.
I have a dumb problem. Basically I just upgraded from pgsql 8.4 to 9.1 and upgrade to pgAdmin 1.20.
I have some tables that have large text fields and in the previous query tool I could query a row and copy-paste the data out of it to modify. In this case, I had a table that stored queries that I could run.
Once I upgraded to the new pgAdmin version, when I use the tool and query a row to pull out the text from a field in that row, it truncates the result and ends with an ellipsis (...).
I tried figuring out how to increase the mem on this so it doesn't truncate after 100 characters or so but couldn't.
Anybody have any ideas??
In pgAdmin options, you can change the length of the field. Do the following,
Go to:
File > Options > Query Tool > Max. characters per column
By default it is 256, you can increase it accordingly.
Hope this helps
Marlon Abeykoon's answer is good, but if you want a one-off output and don't want to change settings, then simply output to a file (two buttons along from the usual green 'go' arrow). This saves the entire output in a csv file.

How to change the value of heading columns based on a parameter

I created a report where I want to show the heading of a column based on a parameter. I tried using both table and matrix format, but I'm unable to reduce year.
year=2013
For example if I choose 2013 in the report this means it will show the last 10 years in the repor, i.e. 2013,2012,2011,2010,2009,2008, up until 2002.
If I understand your question correctly you want to query a database and display the results in a table with a column per year. You can do this by using by using a Matrix object and Column Groups
Add your Matrix object by drag and dropping. Select the Column Group | Group Properties and add a Group Expression.
Use the following code as your Group Expression.
=Year(Fields!Date.Value)
Two fold I'd think:
Alter your sql to accept the parameter and get the bast 10 years in column names 1, 2, etc.
Then use an expression in the header or title similar to =#Parameter!par.Value - Cdec(Data!1.Value) to show headers for 2013 to 2002.
I hope I was clear?