Creating a view with order by condition
Hi all.
I'm on db 11g.
I have a doubt: is it possible to create a view using both group by and order by conditions?
It is like this:
create or replace view some_view
as select col1,col2,col3, sum(col4),sum(col5)
from table_name
where.....
group by col1, col2, col3
order by col1, col2;The problem is that if I put order by conditions it gives me error; if I write those statements without order by condition everything is ok.
Someone can help me?
Thanks for collaboration,
Fabrizio
>
Restrictions on the Defining Query of a View The view query is subject to the following restrictions:
* The subquery cannot select the CURRVAL or NEXTVAL pseudocolumns.
* If the subquery selects the ROWID, ROWNUM, or LEVEL pseudocolumns, then those columns must have aliases in the view subquery.
* If the subquery uses an asterisk (*) to select all columns of a table, and you later add new columns to the table, then the view will not contain those columns until you re-create the view by issuing a CREATE OR REPLACE VIEW statement.
* For object views, the number of elements in the subquery select list must be the same as the number of top-level attributes for the object type. The datatype of each of the selecting elements must be the same as the corresponding top-level attribute.
* You cannot specify the SAMPLE clause.
* You cannot specify the ORDER BY clause in the subquery if you also specify the subquery_restriction_clause.
>
http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_8004.htm#SQLRF01504
Similar Messages
-
How can i create a view with jdevlopper 10132
hi,
i want to know how to create a view with JDeveloper 10132.
thanksSorry, but I had to jump in here.
7rouz - you've certainly violated the 10 commandments for posting here...
Do you want to:
1). Create a database view directly in the database
2). Model a database view using the database modeller
3). Create an ADF BC View Object
4). Create some type of visual object (web page, Swing panel)
5). something else.
Your question is too ambiguous to yield an answer, unless by luck.
Regards,
John -
How to create a view with parameter?
who can tell me hwo to create a view with
parameters just like a cursor?Hi,
This is not possible in Oracle. What u can do is create the view without the where clasue and supply the where clause at runtime.
Hope this helps...
Regards,
Ganesh R -
Need help in creating a view with Encryption for hiding the code used by the multiple users
Hi,
Can anyone help me out in creating view with encryption data to hide the stored procedure logic with other users.
I have create a stored procedure with encryted view but while running this manually temporary views are getting created, therefore the problem is if there are 500 entries then 500 temp views will get created.
Any solution to aviod creating temporary views, please refer my code below
USE [etl_validation]
GO
/****** Object: StoredProcedure [dbo].[Pr_DBAccess_mod] Script Date: 05/23/2014 12:53:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[Pr_DBAccess_mod](@ETL_CONFIG_ID INT)
AS
BEGIN
DECLARE @openquery NVARCHAR(MAX),
@DATABASENAME NVARCHAR(100),
@HIERNAME NVARCHAR(100),
@TABLENAME NVARCHAR(100),
@SERVERTYPE NVARCHAR(100),
@SERVERNAME NVARCHAR(100),
@USERNAME NVARCHAR(100),
@PASSWORD NVARCHAR(100),
@ETL_CONFIG_IDN NVARCHAR(100);
SET @ETL_CONFIG_IDN=CAST(@ETL_CONFIG_ID AS NVARCHAR);
SET @TABLENAME='Department';
SET @SERVERTYPE='SQL';
SET @SERVERNAME ='192.168.31.176';
SET @DATABASENAME='AdventureWorks2008R2';
SET @HIERNAME = 'HumanResources';
IF @SERVERTYPE='SQL'
BEGIN
/*SET @openquery= 'SELECT * INTO ##TestTable
FROM OPENROWSET(''SQLNCLI'',''server=192.168.31.176;Trusted_Connection=yes;'','''+@query+''')'
SET @openquery= 'CREATE VIEW '+@TABLENAME+@ETL_CONFIG_IDN+
' WITH ENCRYPTION AS SELECT * FROM OPENROWSET(''SQLNCLI'',''SERVER='+@SERVERNAME+';TRUSTED_CONNECTION=YES;'',''SELECT * FROM '+@DATABASENAME+'.'+@HIERNAME+'.'+@TABLENAME+''')'
SELECT @openquery
END
EXECUTE sp_executesql @openquery
ENDHi aa_rif,
According to your description and code message, you execute the sp_executesql statement in your stored procedure, it indeed create many views with a tablename and ETL_CONFIG_ID named. If you need not to use these temporary views, you can delete them when
it contains the tablename in one view name.
In addition, if you want to create view with encryption in SQL Server, you can use directly the ENCRYPTION option to encrypt the T-SQL of a view in create view commands, for more information, see:
http://learnsqlserver.in/4/Create-View-With-Encryption.aspx. if not, you can descript more detail about requriements, so that more forum members can involve into the thread and help you
out.
Regards,
Sofiya Li
Sofiya Li
TechNet Community Support -
Creating Materialized View with the Distinct key word
Hi
I need help to create Materialized View with the Distinct key word.
my query is
select distinct col1, col2 from t1;
is there any alternate of DISTINCT because I can not refresh the MV as fast on demand if I am using it and Fast on Demand is a must for me.hi
check out this link
http://download-west.oracle.com/docs/cd/B12037_01/server.101/b10736/basicmv.htm#i1007299
http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/intro.htm#sthref183
hope this helps
CHeers -
How to create a view with a column of counts of the occurence of values
If my table is:
ID
1
2
3
3
5
5
5
I want to create a view with the following result:
ID COUNT
1 1
2 1
3 2
5 3
How would I accomplish this?Sorry, my mistake. I was thinking about counting distinct events.
I created a table with your example values:
You should do a projection with a calculated column = 1:
And then add this calculated column as an aggregated measure on the aggregation node:
Result:
Cheers,
Fernando -
How to create a view with parameters; read the documentation but nothing!
Hello!
I'm new to the Oracle world but together with my coworkers we need to very quickly study Oracle to figure out whether we'll add Oracle to our list of supported databases or not.
Question: How do I create a view with parameters?
I've read the documentation but I could not find this! I found the sql syntax to create a view but no parameters whatsoever...
I have found on the web some very complicated way of doing this, but doesn't Oracle support Views with parameters?
The goal here is to return a recordset, don't forget, so,please don't speak about stored procedures unless you are going to tell me how to get a recordset out of a stored procedure! ;)
Thanks for all your help and attention!
Jorge C.You can set up a parameterized view via context as follows:
1. Set up a procedure to set your context values:
create or replace procedure p_set_context (p_context IN VARCHAR2,p_param_name IN VARCHAR2,p_value IN VARCHAR2)
as
BEGIN
sys.dbms_session.set_context(p_context,p_param_name,p_value);
END;
2. Create your context using the procedure you just created
create or replace context my_ctx using p_set_context
3. This is the test table I'll use
create table my_table(col1 number)
and populate it:
begin
for v_index in 1..10
loop
insert into my_table values(v_index);
end loop;
end;
and the view that will be parameterised
create or replace view v_my_table as select col1 from my_table where col1 between sys_context('my_ctx','start_range') and sys_context('my_ctx','end_range')
4. Now set the parameters using the procedure above.
begin
p_set_context('my_ctx','start_range','1');
p_set_context('my_ctx','end_range','5');
end;
5. Selecting from my_table will give you 1 to 10 (no surprise there :-) )
selectng from v_my_table will give you 1 to 5
You can use the context to set formats etc using the same principle. A common gotcha to watch for is trying to set the context directly using DBMS_SESSION.SET_CONTEXT instead of creating a procedure. This belongs to SYS and SYS won't have the privileges to set your context so you get an insufficient privileges result leading to much headscratching and unnecessary grants (at least that's my understanding of it).
Sorry Jorge, as you're new to Oracle I should also have pointed out for completeness sake, that you can change the parameters at any time through recalling the p_set_context, for example, following on from above, after your "select * from v_my_table" and seeing 1 to 5, you could then do
begin
p_set_context('my_ctx','start_range','3');
end;
and when you requery 'Select * from v_my_table' you will now see rows 3 to 5.
Bit of a simplistic example, but you can see how easy it is. :-)
Message was edited by:
ian512 -
Create a View with Aggregation Function (COUNT)
I've been looking up and down for a way to create a view with a few basic fields and some other fields containing aggregation function.
For instance:
To display a view that contain all the Contract Agreement and the corresponding count of the PO releases.
Agreement Nbr, Total PO releases
I need this view so that I can create a search help with this view.
I found something about the "CREATE VIEW" statement, but I don't have any idea how to use it.
Any helps toward this matter is very much appreciated, thanks.Hello Aldern
I guess you have read about the SQL statement "CREATE VIEW". When we create a view in the dictionary this SQL statement is finally called to create the view on the DB. Thus, since we do not have any aggregation options in views you cannot achieve what you want using views.
The solution for your problem is to create a <b>search help</b> having a <b>search help exit</b>. Within the exit you can do your aggregation functions and add these values to the displayed search help data.
Regards
Uwe -
it's posible create a view with parameters?
i want to create a view and pass it parameters, in the same way when i create a procedure or function.
i never have seen it, but i would like to know if that's posible
thanksYou cannot create a view with parameters. The only way is to use a stored proc to dynamically create the sql statement. The substitution variable approach does not work. SQL*Plus will prompt for the value of the variable at compile time (i.e. when you create the view) and use the value you provide in the view's query.
SQL> create or replace view jws_test_v as
2 select * from jws_test where flag = '&flg'
3 /
Enter value for flg: AA
old 2: select * from jws_test where flag = '&flg'
new 2: select * from jws_test where flag = 'AA'
View created.
SQL> select * from jws_test_v
2 /
no rows selected
SQL> select text from user_views where view_name = 'JWS_TEST_V'
2 /
TEXT
select "LEV1","LEV2","LEV3","LEV4","LEV5","LEV6","FC","FLAG","ONAFT","ONAPT","CU
PEFT","CUPEPT" from jws_test where flag = 'AA'This makes sense, since substitution vartiables are a sqlplus construct, not a sql or Oracle construct. A view constructed in this way would not be callable from anywhere other than sqlplus. -
Creating a view with a primary key
I want to create a view with a defined primary key. I understand
the view is created within a select statement, but do not
understand how you would define a particular field as a primary
key in the view. Also if your select statement attempts to build
the view and has duplicate keys in the select result set, what
would happen when the duplicate key is found? Would it just not
include the duplicate key in the view?
Thanks in advance for your help.
-PatI have a rather difficult problem with duplicate invoice numbers
contained in unique records. In other words I have many records
that appear as follows:
3593, 0004009090, CUSTOMER, TAX, 20000117,014011976-01
4411, 0004009090, CUSTOMER, TAX, 20000718,014011976-01
The last field is invoice number '014011976-01' In my case I am
building a flat file using UTL_FILE for loading into SAP
Business Warehouse. In SAP I need to have Invoice number as a
key in which case I can't have duplicate invoice numbers. All
the SQL I have tried to date returns a large amount of records
similar to the above records. I am selecting these records from
4 different schemas which represent 4 different companies. I
realize the data is the problem and that the vendor of the
product I am working with should not allow records with
duplicate invoice numbers, but I have to get the data loaded as
that is what they want and are paying for. So back to my View. I
was hoping to create a view and be able to work in the view to
remove duplicate records prior to writing them to a file. Any
suggestions are welcomed.
Thanks
-Pat -
FM for create outbound delivery with order reference
Hi,
Can u pls tell me the function module name for create outbound delivery with order reference.
regards,
Mahi.Hi,
You can use the BAPI BAPI_DELIVERYPROCESSING_EXEC
Check this sample code..
PARAMETERS: p_vbeln LIKE vbak-vbeln.
DATA: BEGIN OF t_vbap OCCURS 0,
vbeln LIKE vbap-vbeln,
posnr LIKE vbap-posnr,
kwmeng LIKE vbap-kwmeng,
matnr LIKE vbap-matnr,
werks LIKE vbap-werks,
END OF t_vbap.
DATA: t_request TYPE STANDARD TABLE OF bapideliciousrequest
WITH HEADER LINE.
DATA: t_created TYPE STANDARD TABLE OF bapideliciouscreateditems
WITH HEADER LINE.
DATA: t_return TYPE STANDARD TABLE OF bapiret2 WITH HEADER LINE.
SELECT vbeln posnr kwmeng matnr werks
INTO TABLE t_vbap
FROM vbap
WHERE vbeln = p_vbeln.
LOOP AT t_vbap.
t_request-document_numb = t_vbap-vbeln.
t_request-document_item = t_vbap-posnr.
t_request-quantity_sales_uom = t_vbap-kwmeng.
t_request-id = 1.
t_request-document_type = 'A'.
t_request-delivery_date = sy-datum.
t_request-material = t_vbap-matnr.
t_request-plant = t_vbap-werks.
t_request-date = sy-datum.
t_request-goods_issue_date = sy-datum.
t_request-goods_issue_time = sy-uzeit.
APPEND t_request.
ENDLOOP.
CALL FUNCTION 'BAPI_DELIVERYPROCESSING_EXEC'
TABLES
request = t_request
createditems = t_created
return = t_return
READ TABLE t_return WITH KEY type = 'E'.
IF sy-subrc = 0.
MESSAGE e208(00) WITH 'Delivery creation error'.
ENDIF.
COMMIT WORK.
READ TABLE t_created INDEX 1.
Write: / t_created-document_numb.
Thanks
Naren -
How to create table view with reference table
Hi experts,
How to create table view with reference table in SE11, plz gve me stp by stp procedure.
pints grnded for hlp.Hi
Go to Tcode se11 choose view and enter the name and create a popup opens up choose database view option
enter the description
On the left hand side choose the table name.
Click on view fields tab and choose your table fields.Here you can choose which fields you want in your view.
Save and then activate.
Hope this helps.
Regards,
Harish -
CREATE OUTBOUND DELIVERY WITH ORDER REFERENCE
Hi All,
I am working on VL01N Tcode for "CREATE OUTBOUND DELIVERY WITH ORDER REFERENCE", where Return Check serial number of incoming material in case of sales return and compare against serial number in outgoing delivery. If the serial number doesnu2019t match then it should throw an error.
For the same when serial number is entered after selecting, EXTRAS-> Serial Number. If it does not match with Return Check serial number of incoming material in case of sales return and compare against serial number in outgoing delivery, for the same i am using a BADI LE_SHP_DELIVERY_PROC and method DELIVERY_FINAL_CHECK, i am not able to find where this value entered is stored.
Please help.
Regards,
NageshHi Venkat,
Thanx for the reply, but ANZSN field only mentions Number of serial numbers, but my query is to check Serial Number GERNR entered when selecting item number and selecting EXTRAS->SERIAL NUMBER and entered serial number with Check serial number of incoming material in case of sales return and compare against serial number in outgoing delivery.
Please let me know.
Nagesh -
I am in a 8i SQL class where I "learned" that the order by clause can not be used when creating a view. This surprised me as I am sure I have done so in the past. After talking with the instructor we found that:
create view viewname as
select * from table order by column
worked, while:
create view viewname as
(select * from table order by column)
returns:
ORA-00907: missing right parenthesis
And
create view viewname as
(select * from table)
works as well.
Anyone understand why?
Thanks
nullThe queries are theoretically different.
Example 1 is a view with an order by clause.
Example 2 is a view of the result of an ordered query.
Example 3 is a view of the result of an unordered query
Just another example of how people are smarter than machines, I suppose. -
Create materialized view with ora-12054 error
Oracle 10g R2 on AIX 5.3L
I create a script (with help of EM) for a materilaized view
CREATE MATERIALIZED VIEW "BAANDB"."R2_MV"
TABLESPACE "USERS" NOLOGGING STORAGE ( INITIAL 128K) USING INDEX TABLESPACE "BAANIDX" STORAGE ( INITIAL 256K)
REFRESH FORCE ON COMMIT
ENABLE QUERY REWRITE AS
SELECT CM.ROWID c_rid, PC.ROWID p_rid, CM."T$CWOC", "T$EMNO", CM."T$NAMA", CM."T$EDTE", PC."T$PERI", PC."T$QUAN", PC."T$YEAR", PC."T$RGDT" From BAANDB.TTPPPC235201 PC RIGHT OUTER JOIN BAANDB.TTCCOM001201 CM Using (T$EMNO)
but I got error
ORA-12054: cannot set the ON COMMIT refresh attribute for the materialized view
acooding to the oerr
// *Cause: The materialized view did not satisfy conditions for refresh at
// commit time.
// *Action: Specify only valid options.
what dose it mean? both my master tables are not IOT and are locale ones. It seems that only changing to ON DEMAND works. If I use the "REFRESH FORCE START ..NEXT", it also failed.
I have created the materalized view logs with rowid on each master table. I think my script met every prequirement of ON COMMIT.
table owner has "on commit refresh" privilegeAfter googling on line, someone mentioned that for "ON COMMIT" on join tables, we have to use th old OUTER JOINT syntax (+) on WHERE. The new "outer joint" in FROM clause won't work.
I tested it, it seemed to be true.
Maybe you are looking for
-
My texts have stoipped getting through to one of my contacts. I can phone him and I can receive his calls and messages. I am the only one of his contacts whose texts are not getting through. We have both restarted our iphones but the problem continu
-
How to create custom color profile in OSX?
I started thinking about this after downloading the program "f.lux", which changes the color temperature of your screen depending on the time of day. It seems the program accomplishes this by adjusting your display calibration. Some controls for this
-
I'm on my fourth razr in 3 months...the problem that im haven it gets hot just talkn on it and also while it's sit'n in my pocket. I wish I would've bought this phone.
-
ERROR OGG-00685 begin time : extract process abending
Hi Gurus, I have installed Oracle Golden Gate in the below environment.But unable to start extract process I am newer to OGG and its production setup. Primary site (source): This is production DB and up and running. RAC 2 nodes Oracle RAC 11.2.0.1.0
-
Revision: 14595 Revision: 14595 Author: [email protected] Date: 2010-03-05 01:25:04 -0800 (Fri, 05 Mar 2010) Log Message: Metadata refactoring revision: having LayoutMetadata return a NullMetadataSynthesizer so that child layout settings do not