NULL COLUMN NAME
Hey hiiiiiiiiiiiiiiiiiiiiiiii
m working on a project where oracle database attribute column name is 'NULL' how to pass the this Column name in a query ...........?
i have alredy done this 'NULL' ,"\NULL\"
please help me urgent
Edited by: Muhammad Sharhukh Khan on Aug 6, 2012 10:31 PM
Seems the below (as demonstrated already) should work within Oracle.
The only problem seems to be how to make Java submit the query in the proper format.
I'm not a Java man but anyway, try to use some kind of concatenation to include double quotes as it's clear using quotes within quotes doesn't work
SELECT TAX_PERIOD,
SUM(VIEW_RTN_SUMMARY.NF) AS NOT_FILED,
SUM(VIEW_RTN_SUMMARY."NULL") AS NULL_FILED,
SUM(VIEW_RTN_SUMMARY.NIL) AS NIL_FILED,
SUM(VIEW_RTN_SUMMARY.PAYABLE) AS PAYABLE_FILED,
SUM(OTAX) AS OUTPUT_TAX,
SUM(ITAX) AS INPUT_TAX,
SUM(PAYABLE_AMNT) AS PAYABLE_AMOUNT,
SUM(PAID) AS PAID_AMOUNT,
SUM(SHORT_NO) AS SHORT_FILED,
SUM(SHORT_PAY) AS SHORT_PAYMENT,
SUM(WHT7) AS WHA7,
SUM(WHT14A) AS WHA14A
FROM VIEW_RTN_SUMMARY
INNER JOIN
VIEW_REG_MAIN
ON VIEW_RTN_SUMMARY.COMPUTER_NO = VIEW_REG_MAIN.COMPUTER_NO
GROUP BY TAX_PERIOD
ORDER BY TAX_PERIOD DESCRegards
Etbin
Similar Messages
-
Null Column Names....
Hi all, I have many tables with lots of columns in each one of them. Now I want to check if data is populated in each one of the columns. Is it possible to get all the column names in which there is no data at all.((which are null)(all empty), so that i could find those and re-populate the data in them.
Thanks in advance.Views do not store data themselves. They are just a 'window' to the data stored in base-tables. There is no need to find columns with all-null values in views. If you find all such columns in tables and populate them with data, that should take care of views as well.
-
Crystal Report - NULL values mapped to Column names in reports
Hai,
I am using rows of data retrived from the SQL Server 2005 Express and sometimes the column names are NULL , I want to set a default value to this NULL value and set it as Data axes label / Group axes values, can some one please help me with this issue.
Thank you in advance.
VijayI resolved this issue myself, this can be set as other Data Labels, Group Label or Series Riser's properties too, left-click twice until the blank item is selected and then right click and select "Edit Axis Label" item and here it can edited with the new value(text).
-
How to spool the null alias column names in sppol file
Hi,
I have to spool the data and having some issues.
SELECT DISTINCT a.market_name,a.market_code,*''as empid* from ssp2_pcat.markets a ;
in the above select sql I have created extra null column as empid
when I spool with tild dilimited I am not getting column name(empid) in spool file.
a.market_name||'~'||a.market_code||'~'||'''empid'
SSB ~25010~' empid
In the feed file it should be null. but the alias column is populted with empid
Can you please let me know what is wrong here?
Thanks,SELECT DISTINCT a.market_name,a.market_code,*''as empid* from ssp2_pcat.markets a ;
in the above select sql I have created extra null column as empid
when I spool with tild dilimited I am not getting column name(empid) in spool file.
a.market_name||'~'||a.market_code||'~'||'''empid'
SSB ~25010~' empid
In the feed file it should be null. but the alias column is populted with empid
Can you please let me know what is wrong here?
Thanks,Try this one
SELECT DISTINCT a.market_name||'`'||a.market_code as empid from ssp2_pcat.markets a ; -
Return the column names for which the row values are not null.
Hi i m a new guy to db admin, and i need a sql script which should return column names of the particular table. and the returned column should have value (fyi - if the column has null value column name should not come in the sql o/p).
Exmple:
table name - A
s.no name mark status fee
1 aa 45 p null
2 bb 30 null paid
3 cc 35 p paid
fyi -1) if i give the table name(A) and s.no (2) the o/p should be -- name,mark.
2) if i give the tablename(A) and s.no (1) the o/p should be --- name,mark,status.
Thanks
Krishna.
Edited by: user13294228 on Jun 14, 2010 10:54 PMBTW,
The previous solution is for all values of the column, if you want a specific row, you can add it in where clause.
I mean in your example, it you look like:
SET serveroutput on;
DECLARE
l_cnt NUMBER;
l_str VARCHAR2 (255) := '';
l_table_name VARCHAR2 (255) := 'YOUR_TABLE_NAME';
l_col_cond VARCHAR2 (255) := 'S_NO';
l_val NUMBER := 1;
CURSOR c_col
IS
SELECT column_name
FROM user_tab_columns
WHERE table_name = l_table_name;
BEGIN
FOR i IN c_col
LOOP
EXECUTE IMMEDIATE 'SELECT COUNT ('
|| i.column_name
|| ') FROM '
|| l_table_name
|| ' WHERE '
|| l_col_cond
|| ' = '
|| l_val
INTO l_cnt;
l_str := l_str || CASE
WHEN l_cnt = 0
THEN ''
ELSE i.column_name
END || ',';
END LOOP;
l_str := SUBSTR (l_str, 1, LENGTH (l_str) - 1);
DBMS_OUTPUT.put_line (l_str);
END;Saad,
Edited by: S.Nayef on Jun 15, 2010 11:54 AM -
Query to return column name of first NULL column?
I have a table with 40 columns but only the first n have non-null values. Is there a way to pull the name of the first non-null column? I have tried using CASE but I run into nesting too deeply problems (apparently you can only nest to 10 levels).
Thank you.
Kevin
Kevin BurtonOr, you could try something like this:
-- This is just for testing
DROP TABLE #test
CREATE TABLE #Test
(ID INTEGER
,n1 INTEGER
,n2 INTEGER
,n3 INTEGER
,n4 INTEGER
,n5 INTEGER
,n6 INTEGER
,n7 INTEGER
,n8 INTEGER
,n9 INTEGER
INSERT INTO #Test
VALUES (1,256,365,4000,0,NULL,NULL,NULL,NULL,NULL)
SELECT *
FROM #Test
-- THIS IS THE IMPORTANT PIECE
SELECT ISNULL(LEN(LEFT(n1,1)),0)
+ ISNULL(LEN(LEFT(n2,1)),0)
+ ISNULL(LEN(LEFT(n3,1)),0)
+ ISNULL(LEN(LEFT(n4,1)),0)
+ ISNULL(LEN(LEFT(n5,1)),0)
+ ISNULL(LEN(LEFT(n6,1)),0)
+ ISNULL(LEN(LEFT(n7,1)),0)
+ ISNULL(LEN(LEFT(n8,1)),0)
+ ISNULL(LEN(LEFT(n9,1)),0)
FROM #Test
The LEFT(x,1) will always either give you a LEN of 1, or a NULL. Add 'em up. Try it.
Then use the Ordinal_Position from the Information Schema to get the name of the column (if that is what you need)
Duncan Davenport -
Find out varchar2 string NULL columns and Empty columns
Hi dev's ,
my requiremnt is to find out the string columns Names of whose storing NULL values and EMPTY strings. for that i had written below code. it's getting some error.
SET ECHO OFF;
SET FEEDBACK OFF;
SET SERVEROUTPUT ON;
SET VERIFY OFF;
SET PAGES 0;
SET HEAD OFF;
spool D:\stringnull.csv
DECLARE
v_tab_indent NUMBER(5);
v_col_indent NUMBER(5);
v_val1 VARCHAR2(20);
v_val2 VARCHAR2(20);
v_query1 VARCHAR(500);
v_query2 VARCHAR(500);
BEGIN
--DBMS_OUTPUT.ENABLE(100000);
SELECT MAX(LENGTH(table_name))+1,MAX(LENGTH(column_name)) +1
INTO v_tab_indent,v_col_indent
FROM user_tab_columns
WHERE data_type='VARCHAR2';
FOR i IN
(SELECT table_name,
column_name
FROM user_tab_columns
WHERE data_type IN ('NVARCHAR2', 'CHAR', 'NCHAR', 'VARCHAR2')
ORDER BY table_name,
column_name
LOOP
v_query1:='SELECT NVL('||i.column_name||',0) AS VAL
FROM '||i.table_name||' where '||i.column_name||' IS NULL';
v_query2:='SELECT '||i.column_name||' AS VAL
FROM '||i.table_name||' where '||i.column_name||'=''''';
--dbms_output.put_line(v_query1);
-- dbms_output.put_line(v_query2);
EXECUTE immediate v_query1 INTO v_val1;
EXECUTE immediate v_query2 INTO v_val2;
dbms_output.put_line (rpad(i.table_name,v_tab_indent,' ')||','||rpad(i.column_name,v_col_indent,' ')||' ,'||v_val1||','||v_val2);
END LOOP;
END;
Spool OFF
Set echo on
Set feedback onERROR:
Error report:
ORA-01403: no data found
ORA-06512: at line 31
01403. 00000 - "no data found"
*Cause:
*Action:
set feedback onpls help me on this issue..
Thanks,Example:
SQL> DECLARE
2 v_val VARCHAR2(20);
3 v_query1 VARCHAR(32767);
4 BEGIN
5 FOR i IN (SELECT table_name, column_name FROM user_tab_columns
6 WHERE data_type IN ('NVARCHAR2', 'CHAR', 'NCHAR', 'VARCHAR2')
7 ORDER BY table_name, column_name
8 )
9 LOOP
10 v_query1 := 'SELECT count(*) FROM '||i.table_name||' where '||i.column_name||' IS NULL';
11 EXECUTE immediate v_query1 INTO v_val;
12 dbms_output.put_line(rpad(i.table_name,30,' ')||' : '||rpad(i.column_name,30,' ')||' : '||v_val);
13 END LOOP;
14 END;
15 /
CHILD_TAB : DESCRIPTION : 0
DEPT : DNAME : 0
DEPT : LOC : 0
EMP : ENAME : 0
EMP : JOB : 0
MYEMP_OLD : ENAME : 0
MYEMP_OLD : JOB : 0
MYNULLS : ENAME : 0
MYNULLS : JOB : 4
PARENT_TAB : DESCRIPTION : 0
T : CHAR_VALUE : 0
TABLE1 : COL1_DESC : 0
PL/SQL procedure successfully completed. -
Need help on getting the column names of Tabletype
I have a table Mapping with the following values: This Mapping table contains the table names (in Tabname) and the column names(colname) of various tables and values(ValuesTobeFilled) for the columns.
I have to insert into the tables present in the Tabname field with the values present in the ValuesTobeFilled in the columns present in the Colname field.
Note: The Mapping table need not contain all the columns of the base table. The columns that are not present can be filled with null. And this mapping table is not fixed i.e. rows can be inserted/deleted frequently.
Sample values in mapping table:
Tabname Colname ValuesTobeFilled
sample_items Eno Corresponding Expression to get the values from XML input
sample_items Ename Corresponding Expression to get the values from XML input
XXX YYY Corresponding Expression to get the values from XML input
Before filling in the actual tables, I have to store the entire data temporarily and I have used a tabletype declared as follows:
TYPE T_sample_items IS TABLE OF sample_items%ROWTYPE INDEX BY BINARY_INTEGER;
l_sample_items T_sample_items;
Where the table sample_items have the following columns:
• Eno
• Ename
• Eaddress
• Eemail
So, the tabletype should be filled as:
Eno Ename Eaddress EEmail
1 XXX - -
I have declared a cursor to select the values from mapping table and I need to fill in the ValuesTobeFilled values to the corresponding table.
CURSOR c_xpath (c_tname mapping.TABNAME%type)
IS
select * from mapping where tabname = c_tname;
CURSOR c_tables
IS
SELECT DISTINCT TABNAME FROM mapping;
FOR crsr IN c_tables
LOOP
p_tname := CRSR.TABNAME;
FOR csr IN c_xpath(p_tname)
LOOP
IF l_xml_doc.EXISTSNODE(CSR.XPATH_EXP) = 1
THEN
l_node_value := l_xml_doc.extract(CSR.XPATH_EXP).getStringVal(); -- This is the value to be stored in the corresponding column
ELSE
l_node_value := NULL;
END IF;
IF CSR.COLUMN_NAME = ‘eno’
THEN
l_sample_items(1).eno := l_node_value;
ELSIF CSR.COLUMN_NAME = ‘ename’
THEN
l_sample_items(1).name := l_node_value;
END IF;
END LOOP;
END LOOP;
And I need to eliminate hard coding while comparing the column names (in the following piece of code) as the Mapping table values are subject to insertion/deletion:
IF CSR.COLUMN_NAME = ‘eno’
THEN
l_sample_items(1).eno := l_node_value;
ELSIF CSR.COLUMN_NAME = ‘ename’
THEN
l_sample_items(1).ename := l_node_value;
END IF;
I need to insert the values directly into the tabletype without this hardcoding. Please suggest me ways to compare the mapping table values with the field (column) names of the tabletype. If it is not possible using tabletype, please suggest any other ways of fixing the problem.
Many thanks,
GopiI take it this isn't going to be a serious production system at the end of the day?
Storing metadata in tables for extraction and insertion of data is just wrong in so many ways. It smells heavily of Entity Attribute Value modelling, which is the most wrong way to use a relational database and is known to have major performance implications and be liable to bugs and issues. The idea that EAV modelling allows for 'generic' databases where new data items can be added flexibly later on without having to change code is usually justified with an excuse of "it means we don't have to update all our tables when we want a new column" which is easily countered with "if you're adding a single column a good relational design wouldn't require you to add it to more than one table anyway in most cases".
Just what exactly are you trying to do and why? There has to be a better way. -
Searching for missing column names in a single database.
I have a database with about 100 tables, database gets generated using entity framework. The application has been enhanced so users deployed with older version of the application need to upgrade to newer version. The database generated is both versions
is same name.
Now, the older version is missing some tables and column names that are in new database.
Is there a script that can search for missing fields in a single database as described in this situation?
Below is my script. Basically, nameofdatabase would the database generated and that already existing. If you install the application and database already exits no new database will be created.
SELECT * FROM (Select TABLE_CATALOG, Table_name,COLUMN_NAME FROM nameofdatabase.INFORMATION_SCHEMA.COLUMNS) a FULL OUTER JOIN (SELECT TABLE_CATALOG, Table_name,COLUMN_NAME FROM nameofdatabase.INFORMATION_SCHEMA.COLUMNS) b ON b.COLUMN_NAME=a.COLUMN_NAME and
a.TABLE_NAME=b.TABLE_NAME WHERE b.COLUMN_NAME is null or a.COLUMN_NAME is null ;There is a great tool called SQLCompare provide by www.red-gate.com
Best Regards,Uri Dimant SQL Server MVP,
http://sqlblog.com/blogs/uri_dimant/
MS SQL optimization: MS SQL Development and Optimization
MS SQL Consulting:
Large scale of database and data cleansing
Remote DBA Services:
Improves MS SQL Database Performance
SQL Server Integration Services:
Business Intelligence -
How to use the column names generated from Dynamic SQL
Hi,
I have a problem with Dynamic SQL.
I have written an SQL which will dynamically generate the Select statement with from and where clause in it.
But that select statement when executed will get me hundreds of rows and i want to insert each row separately into one more table.
For that i have used a ref cursor to open and insert the table.
In the select list the column names will also be as follows: COLUMN1, COLUMN2, COLUMN3,....COLUMNn
Please find below the sample code:
TYPE ref_csr IS REF CURSOR;
insert_csr ref_csr;
v_select VARCHAR2 (4000) := NULL;
v_table VARCHAR2 (4000) := NULL;
v_where VARCHAR2 (4000) := NULL;
v_ins_tab VARCHAR2 (4000) := NULL;
v_insert VARCHAR2 (4000) := NULL;
v_ins_query VARCHAR2 (4000) := NULL;
OPEN insert_csr FOR CASE
WHEN v_where IS NOT NULL
THEN 'SELECT '
|| v_select
|| ' FROM '
|| v_table
|| v_where
|| ';'
ELSE 'SELECT ' || v_select || ' FROM ' || v_table || ';'
END;
LOOP
v_ins_query :=
'INSERT INTO '
|| v_ins_tab
|| '('
|| v_insert
|| ') VALUES ('
|| How to fetch the column names here
|| ');';
EXECUTE IMMEDIATE v_ins_query;
END LOOP;
Please help me out with the above problem.
Edited by: kumar0828 on Feb 7, 2013 10:40 PM
Edited by: kumar0828 on Feb 7, 2013 10:42 PM>
I Built the statement as required but i need the column list because the first column value of each row should be inserted into one more table.
So i was asking how to fetch the column list in a ref cursor so that value can be inserted in one more table.
>
Then add a RETURNING INTO clause to the query to have Oracle return the first column values into a collection.
See the PL/SQL Language doc
http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/returninginto_clause.htm#sthref2307 -
How to pull only column names from a SELECT query without running it
How to pull only column names from a SELECT statement without executing it? It seems there is getMetaData() in Java to pull the column names while sql is being prepared and before it gets executed. I need to get the columns whether we run the sql or not.
Maybe something like this is what you are looking for or at least will give you some ideas.
public static DataSet MaterializeDataSet(string _connectionString, string _sqlSelect, bool _returnProviderSpecificTypes, bool _includeSchema, bool _fillTable)
DataSet ds = null;
using (OracleConnection _oraconn = new OracleConnection(_connectionString))
try
_oraconn.Open();
using (OracleCommand cmd = new OracleCommand(_sqlSelect, _oraconn))
cmd.CommandType = CommandType.Text;
using (OracleDataAdapter da = new OracleDataAdapter(cmd))
da.ReturnProviderSpecificTypes = _returnProviderSpecificTypes;
//da.MissingSchemaAction = MissingSchemaAction.AddWithKey;
if (_includeSchema == true)
ds = new DataSet("SCHEMASUPPLIED");
da.FillSchema(ds, SchemaType.Source);
if (_fillTable == true)
da.Fill(ds.Tables[0]);
else
ds = new DataSet("SCHEMANOTSUPPLIED");
if (_fillTable == true)
da.Fill(ds);
ds.Tables[0].TableName = "Table";
}//using da
} //using cmd
catch (OracleException _oraEx)
throw (_oraEx); // Actually rethrow
catch (System.Exception _sysEx)
throw (_sysEx); // Actually rethrow
finally
if (_oraconn.State == ConnectionState.Broken || _oraconn.State == ConnectionState.Open)
_oraconn.Close();
}//using oraconn
if (ds != null)
if (ds.Tables != null && ds.Tables[0] != null)
return ds;
else
return null;
else
return null;
}r,
dennis -
Need to know the column names in my dynamic select clause
Dear All,
Please go through the following code. While executing the following code i am getting an error saying that dbms_sql.describe_columns overflow, col_name_len=35. Use describe_columns2.
Please guide me how to proceed further. Or please help me, how can i get the column names when i issue a dynamic select clause.
DECLARE
CUR INTEGER;
COL_CNT INTEGER ;
A INTEGER;
SEL_CLAUSE VARCHAR2(2000);
DESC_T DBMS_SQL.DESC_TAB;
REC DBMS_SQL.DESC_REC;
b number;
BEGIN
SEL_CLAUSE := 'SELECT 1,2,DECODE(1,1,''ONE'',2,''TWO'',3,''THREE'') FROM DUAL';
--'SELECT ROWID,PARA_SUB_CODE,DECODE('||''''||'ENG'||''''||','||''''||'ENG'||''''||',PARA_NAME,PARA_BL_NAME),NULL,NULL FROM PCOM_APP_PARAMETER';
--'SELECT 1,2,DECODE(1,1,''ONE'',2,''TWO'') FROM DUAL';
DBMS_OUTPUT.PUT_LINE( SEL_CLAUSE );
CUR := DBMS_SQL.OPEN_CURSOR;
DBMS_SQL.PARSE(CUR,SEL_CLAUSE,DBMS_SQL.NATIVE);
DBMS_SQL.DESCRIBE_COLUMNS(CUR,COL_CNT,DESC_T);
B := desc_t.first;
FOR J IN 1..COL_CNT
LOOP
DBMS_OUTPUT.PUT_LINE('J := '||J || ' COL CNT ' || COL_CNT);
END LOOP;
BEGIN
A := DBMS_SQL.EXECUTE(CUR);
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
END;
Regards,
BalajiIs there any way can i have it directly??It does not work with static SQL either. Dynamic SQL is no different.
SQL> select 1 x from dual where x = 1 ;
select 1 x from dual where x = 1
ERROR at line 1:
ORA-00904: "X": invalid identifier
SQL>As suggested already, you will need to use alias if you want your select expression to be referred in the where clause.
SQL> BEGIN
2 FOR rec IN (SELECT *
3 FROM (SELECT 1,
4 2,
5 DECODE(1, 1, 'ONE', 2, 'TWO', 3, 'THREE') "DECODE(1, 1, 'ONE', 2, 'TWO', "
6 FROM DUAL)
7 WHERE "DECODE(1, 1, 'ONE', 2, 'TWO', " = 'ONE')
8 LOOP
9 NULL;
10 END LOOP;
11 END;
12 /
PL/SQL procedure successfully completed.
SQL>Message was edited by:
Kamal Kishore -
Need to display column names in a dynamic page
Hi
I am displaying some rows returned from an sql querry in a dynamic page ...I hv written the sql querry between <ORACLE> AND </ORACLE> TAGS...The problem is ,i am not able to display the column names ...Why ? pl help....
ramYou must to use the htp package. Example:
<ORACLE>
begin
htp.tableopen('1','CENTER',null,null,'BORDER="1"');
htp.tableheader('NParte','CENTER');
htp.tableheader('Descripcisn','CENTER');
htp.tableheader('Precio/Unit','CENTER');
htp.tableheader('Servicio','CENTER');
htp.tableheader('IVA','CENTER');
htp.tableheader('Total','CENTER');
for cursor_cotiza in (select
r.Nparte as Nparte, r.Descripcion as Descripcion,
r.preciounit as preciounit,
NVL(f.servicio,0) as servicio,
round((0.145)*r.preciounit,3) as IVA,
round((0.145)*r.preciounit,3) + r.preciounit +
NVL(f.servicio,0) as PrecioTotal
from
carryin.repuestos r,
carryin.casos c, carryin.facturacion f
where r.NCaso =:NCaso
and r.Ncaso=c.NCaso
and c.Ncaso=f.Ncaso(+)
and f.servicio(+)<>0
union
select
r.Nparte as Nparte, r.Descripcion as Descripcion,
r.preciounit as preciounit,
NVL(f.servicio,0) as servicio,
round((0.145)*r.preciounit,3) as IVA,
round((0.145)*r.preciounit,3) + r.preciounit +
NVL(f.servicio,0) as PrecioTotal
from
carryin.casosneq r,
carryin.facturacion f
where r.NCaso =:NCaso
and r.Ncaso=f.Ncaso(+)
and f.servicio(+)<>0
) loop
htp.tableRowOpen('CENTER','CENTER');
htp.tableData(cursor_cotiza.Nparte,'CENTER');
htp.tableData(cursor_cotiza.Descripcion,'CENTER');
htp.tableData(cursor_cotiza.preciounit,'CENTER');
htp.tableData(cursor_cotiza.servicio,'CENTER');
htp.tableData(cursor_cotiza.IVA,'CENTER');
htp.tableData(cursor_cotiza.PrecioTotal,'CENTER');
htp.tableRowClose;
end loop;
htp.tableclose;
end;
</ORACLE>
This example show a table with header and borders. You must to see this package for more information. -
Can I create a view based on two tables that have the same column name?
I have two tables A and B. Each table has 50+ columns.
I want to create a view that includes all the columns in A and all the columns in B. I created a view with a select statement that says
Select A.*, B.*
From A, B
where A.id = B.id
It returns an error because in each table I have a column that keeps track if a record has been changed called Modified_By. That's where it chokes up on I figure. I would like to write the view without explicitly writing each column name from A and B as part of the select statement. The actual select statement works fine and only bombs when trying to turn the select statement into a view.You will have to type the full column list at least once. You can save a few keystrokes (i.e. alias. on every column) by providing the column names to the CREATE part instead of in the SELECT part. Something like:
SQL> desc t
Name Null? Type
ID NUMBER
NAME VARCHAR2(10)
SQL> desc t1
Name Null? Type
T_ID NUMBER
LOC_ID NUMBER
NAME VARCHAR2(15)
SQL> CREATE VIEW t_v (id, t_name, t_id, loc_id, t1_name) AS
2 SELECT t.*, t1.*
3 FROM t, t1
4 WHERE t.id = t1.t_id;
View created.HTH
John -
Pass column-name as a parameter to reports
Hello,
the code below calls a report. But now I want to sort the rows in the report. For example I have a text-item in my form-modul. If I type a column-name and press the button then the rows should be sorted in the report. Is it possible tp pass column-names as parameter to reports?
DECLARE
repid REPORT_OBJECT;
v_rep VARCHAR2(100);
rep_status VARCHAR2(20);
BEGIN
repid := find_report_object('STATIONSTOPOLOGIE');
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_EXECUTION_MODE,RUNTIME);
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_COMM_MODE,SYNCHRONOUS);
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_DESTYPE,CACHE);
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_DESFORMAT,'html');
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_SERVER,'rep_oracle-dev');
-- SET_REPORT_OBJECT_PROPERTY(repid,REPORT_OTHER,'paramform=no pdeptno='||:dept.deptno);
v_rep := RUN_REPORT_OBJECT(repid);
rep_status := REPORT_OBJECT_STATUS(v_rep);
WHILE rep_status in ('RUNNING','OPENING_REPORT','ENQUEUED')
LOOP
rep_status := report_object_status(v_rep);
END LOOP;
IF rep_status = 'FINISHED' THEN
WEB.SHOW_DOCUMENT('http://oracle-dev:8888/reports/rwservlet/getjobid'||
substr(v_rep,instr(v_rep,'_',-1)+1)||'?'||'server=rep_oracle-dev','_blank');
ELSE
message('Error when running report');
END IF;
END;Hi,
the work has been done in reports. You can use a lexical parameter in reports to add a condition for sorting to the query like:
select .. from .. where ... &p_order.
Then add another parameter to the report (for example p_param). Fill p_param via your interface in forms (SET_REPORT_OBJECT_PROPERTY(repid,REPORT_OTHER, ....) with the column name. Then build a report trigger like:
if :p_param is null
then
:p_order:= null;
else
:p_order:= 'order by '||:p_param;
end if;
But have a look, that p_param can only get correct values.
Rainer
Maybe you are looking for
-
10.5.1 500 Internal Server Error - with a Servlet
My web application is in EAR form with a servlet whick worked only once for me.Although it is geeting deployed properly my successive attempts to utilise the functionality of servlet have failed.Hope I can have a positive reply soon.
-
I have a early 2013 Mac Book Pro running Mac osx 10.8.3. I also have a 2002ish dell desktop. I have file sharing turned on for several drives on the dell and the mac finds and connects to the dell. I can also see the shared hard drives, but when i tr
-
Offset & position properties - will they eventually be enabled?
The offset and position property fields on objects such as charts and panels are currently disabled. Is there any plan for making these properties available in upcoming releases? Having these properties available would be extremely helpful. We cr
-
How to view the certificate used in PDF protection ?
Hi, I have a document in my company that is certificate-protected with no printing permission, and I need to know wich certificate was used to protect the document, so we can take action and contact with him. It seems the document is protected with a
-
Do I have to download OS X on my mac desktop in order to get adobe flash player?
I am trying to download adobe flash player onton my imac. Everytime I try to download adobe flash player, this message comes up "adobe flash player 2.exe because microsoft windows applications are not supported on OS X." Do I have to purchase the O