Creating a View at Database level to be used in an another application
Posted - 01/20/2012 : 11:43:27
I have a table Named Customer_Distribution in which we store all the recepient information based on a request submitted by the customer.
Maximum number of recepients for a request is 3.So if a customer submits a request with 3 recepients the Customer_Distribution table will have 3 records inserted for the request as below
ReqNo recepientdesc recepientname recepientemail
1 R Abc [email protected]
1 U xyz [email protected]
1 S sap [email protected]
I'm trying to create a view and need help to create the view such that the entire Request Information is in a single row rather than multiple rows as we are trying to use this view in another application where it will be easy to retreive if the entire information is in a single row
The View should have the data in the below format
ReqNo desc1 name1 email1 desc2 name2 email2 desc3 name2 email2
1 R Abc [email protected] U Xyz [email protected] S sap [email protected]
Thanks
user12946819 wrote:
Hi
Would you be able to elaborate more on your response as i am new to oracle and have hard time using your response
Thanks
ME_XE?with
2 data as
3 (
4 select 1 as ReqNo, 'R' as recepientdesc, 'Abc' as recepientname, '[email protected]' as recepientemail from dual union all
5 select 1 , 'U', 'xyz', '[email protected]' from dual union all
6 select 1 , 'S', 'sap', '[email protected]' from dual union all
7 select 2 , 'Q', 'me', '[email protected]' from dual
8 )
9 select
10 ReqNo,
11 max( decode( rn, 1, recepientdesc)) as desc1,
12 max( decode( rn, 2, recepientdesc)) as desc2,
13 max( decode( rn, 3, recepientdesc)) as desc3,
14 max( decode( rn, 1, recepientname)) as name1,
15 max( decode( rn, 2, recepientname)) as name2,
16 max( decode( rn, 3, recepientname)) as name3,
17 max( decode( rn, 1, recepientemail)) as email1,
18 max( decode( rn, 2, recepientemail)) as email2,
19 max( decode( rn, 3, recepientemail)) as email3
20 from
21 (
22 select
23 ReqNo, recepientdesc, recepientname, recepientemail,
24 row_number() over (partition by ReqNo order by recepientdesc asc) as rn
25 from data
26 )
27 group by ReqNo;
REQNO DES DES DES NAME1 NAME2 NAME3 EMAIL1 EMAIL2 EMAIL3
1 R S U Abc sap xyz [email protected] [email protected] [email protected]
2 Q me [email protected]
2 rows selected.
Elapsed: 00:00:00.01
ME_XE?In the future, posting sample data in a format that someone can easily use (like i did above) will get you answers a lot quicker. I'm in a decently good mood this morning so i did it myself. 7 times out of 10 i'll skip over questions that don't make it easy for me to help. Just an FYI to help you in future posting.
Similar Messages
-
I can't create or view saved and favourites in kuler using CS6
I'm new to Kuler and havent' used it before so it could just be me but I have extensively searched for the answers. Using Illustrator CS6 v16.2.1 latest updates from CC. Eventually managed to find the elusive Panel selection in Window > Extensions. Now I have access to the panel it doesn't seem to have options to 'Browse Create About' as seen in all of the tutorials. This leaves me unable to Create themes from Ai or view my saved files and favourites that I created from the Kuler website. It does however seem happy to display public themes when I use the search presets.
I also don't seem to be able to create favourites from Ai.
I have de-activated and re-activated the cloud and logged in and out of Kuler, all using the same credentials.Thanks Shamit_mehta, downloaded CC and all good. As frustrating as it was, it was well worth the effort. Loving Kuler. I couldn't find a place on the web that told me what versions have what functionality. Is there such a place? Otherwise it's a bit of a mission sometimes when you are not getting the results that you expect and don't know why.
-
How to create a view dynamicly in plsql?
I need to write a pl/sql package to create a view dynamic
,but i can't use 'create or replace view xxxx as select *
from db where ...',I know the dbms_sql package can parse the
'select' sentence,but i don't know how to create a view,only can
drop a view,who can help me?
thanks!
nullTry 'EXECUTE IMMEDIATE 'CREATE AS SELECT....' in your PL/SQL
xhpxorcl (guest) wrote:
: I need to write a pl/sql package to create a view dynamic
: ,but i can't use 'create or replace view xxxx as select *
: from db where ...',I know the dbms_sql package can parse the
: 'select' sentence,but i don't know how to create a view,only
can
: drop a view,who can help me?
: thanks!
null -
Create a view in SharePoint UI to paginate through data on a large list.
Some of my users are facing a usability issue with SharePoint.
The problem seems to be that if a list exceeds the threshold. SharePoint gives them the error ... but doesn't allow them to fix it.
So when the list threshold is exceeded... the user cannot go into the list at all to create a view or to delete old records.
They must call in the system administrator who can open bigger lists... but in large companies system administrators are not easily accessible.
How can user fix the problem himself/herself in case the threshold has increased?
The second issue is that I want to create a view on a large list that shows 50 items at a time. I don't want to filter (like year = 2013 or age < 10) I don't want to filter but I want to reduce the number of records fetched by means of pagination. Is
this possible on a large list. (I found many blogs on the web with people using XSLT web part and DVWP..... but none of them work when the list has exceeded threshold). I want a very simple view on the list which takes only 50 items at a time and works with
large lists.
val it: unit=()In order to handle large lists (over 5000 items) you need to select the fields that you what to show in the view and set them as indexes , you can do it through list settings-> set indexes.
it might be a problem in an allready large list 'but in a small one - its pretty quick.
and to create a view'and set the pagination there - use the create view of the list itself and not a dataview webpart or other tool.
I have tested it in a project of mine in a list of 15000 records and it works , although you can not filter and sort on the view itself but on the view definitions only.
if the list is bigger then 20000 items - > it is most desireable not to use sharepoint .
Shlomy -
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 -
How to create a view consisting of data from tables in2 different databases
Using Oracle 10.2g
I have 2 databases Gus and haggis on Comqdhb schema.
glink indicates a databse link between Haggis and Gus
In Gus there are tables student,subject,grade,school containing columns like upn...
STUDENT
upn
academicYear
SUBJECT
subject
GRADE
examlevel
grade
SCHOOL
sn
In HAGGIS there are tables student,grade,teacher containing columns upn...desc below.
STUDENT
upn
GRADE
grade
upn
academicyear
level
Create view in your HAGGIS database which will join all of the exam grades together. You should have one view which will produce the following relation :
examGrade(upn, subject, examlevel, sn, grade,academicYear)
so I need to create a view which gets the data from both the tables in both the databases.
create view as examGrade(upn, subject, examlevel, sn, grade,academicYear) as select s.upn
But i am not getting how to select a column from 2 tables in different databases
I mean if i said
select upn from comqdhb.student@glink,comqdhb.student;
select upn from comqdhb.student@glink,comqdhb.student
ERROR at line 1:
ORA-00918: column ambiguously defined
help me out,Thank you.Thank you for the reply will follow up the code format
Create views in your HAGGIS schema database which will join all of the exam grades together. You should have one view which will produce the following relation :
examGrade(upn, subject, examlevel, sn, grade,academicYear)
I understand that there wont be duplication when we use conditions
If i query
select count(upn)
from comqdhb.student@glink I get 9000
but after the union
create view examGrade(upn, subject, examlevel, sn, grade,academicYear)
as
select distinct s.upn as upn
, g.subject as subject
, g."LEVEL" as examlevel
, g.grade as grades
, '9364097'
, to_number(g.academicyear) as academicyear
from comqdhb.student s
, comqdhb.grade g
where s.upn=g.upn
union
select s.upn
, sb.subject
, g.elevel
, g.grade
, s.acyr
, sc.sn
from comqdhb.subject@glink sb
, comqdhb.student@glink s
, comqdhb.gradevalues@glink g
, comqdhb.school@glink sc,
, comqdhb.studentingroup@glink sg
, comqdhb.teachinggroup@glink tg
where sb.sid=tg.sid
and tg.gid=sg.gid
and sg.upn=s.upn
and g."LEVEL"=tg.elevel
and s.school=sc.id
and sc.id=tg.id; returns
count(upn) from exam gradeIt gets stuck actually sometimes it returns
932002 some results.
2:
Another problem i am having which i am trying to solve and written up my ideas but haven't been getting the expected results.Hope you can help.Thank you.
Information:
=======
All children take exams at the age of 16 called a General Certificate of SecondaryEducation (GCSE).
They have to study and take exams in Mathematics, English and Science, and can take other subjects such as History, French, Art etc. Most students will study between 5 and 10 different subjects before taking their GCSEs.
For each exam, a student is awarded a grade from A*, A, B,C,D,E,F,G,U,X An A* grade is the best grade achievable and an X is the worst grade.
In order to analyze how students have performed, each grade is mapped to a numeric value as follows:
Grade Numerical score
A* 8
A 7
B 6
C 5
D 4
E 3
F 2
G 1
U 0
X 0
Now why i need this avgGCSE is because i have to create a view containing avgGCSE of the students it is used in the next question where a condition is avgGCSE is between 6.5 and 7
In order to calculate the avgGCSE the idea is to calculate the grades of the students and map the grades to their corresponding scores/values
add them all up and div by the total no of grades to get the avg.
desc comqdhb.STUDENT@glink;
STUDENT
=======
UPN
FNAME
CNAME
DOB
GENDER
PREVIOUSSCHOOL
XGCSE
SCHOOL
ACYR
STUDENTINGROUP
=============
UPN
GID
STARTDATE
ENDDATE
GRADE
GRADEVALUES
===========
GRADE
LEVEL
VALUE
I have a opinion that xgcse in STUDENT table refers to the avgGCSE which i want to calculate as when i asked my professor as to what xgcse he said that he forgot to take it out of the table and it is not necessary while creating avggcse.
select *
from comqdhb.student@glink
where xgcse<6.5; Displaying a result
returns:
UPN FAMILYNAME COMMONNAME DATEOFBIR GENDER PREVIOUSSCHOOL XGCSE SCHOOL ACYR
===========================================================================
1011 KIMBERLY ABBOT 07-JUL-79 f none 3.93500948 2 2
select *
from comqdhb.student@glink
where xgcse between 6.5 and 7 and upn = 1386; Displaying a result
returns:
UPN FAMILYNAME COMMONNAME DATEOFBIR GENDER PREVIOUSSCHOOL XGCSE SCHOOL ACYR
===========================================================================
1386 STEPHANIE AANNESSON 15-JAN-79 f none 6.88873 2 2 so if xgcse is the avgGCSE then upn 1011 has avggcse<6.5 and 1386 has avggcse >6.5
my idea was backward strategy like so now if we find out upn 1368 has suppose xgcse(avggcse)>6.5 how to extract the avggcse for the particular upn We need to map grades from GRADEVALUES to grade in STUDENTINGROUP and map upn from studentingroup to upn in student to output the values for the corresponding grades from GRADEVALUES
select grade
from comqdhb.studentingroup@glink
where upn = 1011;
Result:
GRADE
=====
D
F
B
E
C
E
E
B
8 rows selected. Mapping each grade to the corresponding value and calculating we get
32/8=4 total(values to corresponding grades)/no of grades.
But the xgcse for upn 1011 is 3.935 and i am getting 4!! maybe xgcse isn't avggrade but ? is the procedure by me correct for calculating avggcse
select grade
from comqdhb.studentingroup@glink
where upn = 1386;
Result:
GRADE
======
A*
A*
A*
A*
B
A*
A*
A
B
B
B
11 rows selected. grade to the corresponding value and calculating we get
79/11=7.12 total(values to corresponding grades)/no of grades.
But the xgcse for upn 1011 is 6.88... and i am getting 7.12!!
But another problem
when i say
select g.value,g.grade
from comqdhb.gradevalues@glink g
, comqdhb.studentingroup@glink sg
where g.grade=sg.grade
and sg.upn=1011;
result:
======
VALUE GRADE
===========
100 B
100 B
80 C
60 D
40 E
40 E
40 E
20 F
6 B
6 B
5 C
VALUE GRADE
=============
4 D
3 E
3 E
3 E
2 F
16 rows selected.
select distinct g.value,g.grade
from comqdhb.gradevalues@glink g
, comqdhb.studentingroup@glink sg
where g.grade=sg.grade
and sg.upn=1011;
result:
======
VALUE GRADE
============
2 F
100 B
6 B
3 E
60 D
5 C
4 D
80 C
40 E
20 F
10 rows selected. I am getting only 8 for the query
select grade
from comqdhb.studentingroup@glink
where upn = 1386; here its becomming 10 and also its displaying values as 100 and ...
select distinct *
from comqdhb.gradevalues@glink;
GRADEVALUES
===========
LEVEL GRADE VALUE
================================
a A 120
a B 100
a C 80
a D 60
a E 40
a F 20
a U 0
a X 0
g A 7
g A* 8
g B 6
LEVEL GRADE VALUE
================================
g C 5
g D 4
g E 3
g F 2
g G 1
g U 0
g X 0
18 rows selected. I was hoping if i could map the grades and get the values and calculate avggrade by total(values)/count(values)that would be it but here there are values like 100...
select sum(g.value)/count(g.grade) as avggrade
from comqdhb.gradevalues@glink g
, comqdhb.studentingroup@glink sg
where g.grade=sg.grade
and sg.upn=1386;
avggrade
========
37.4375 the avggrade cant be this big and when i map each grade i obtained for 1368 like a to 7+b to 6 so on i get avggrade 7.12
kindly help.
Edited by: Trooper on Dec 15, 2008 4:49 AM -
Error while creating materialized view which using database link
Helo!
I'm getting error "ORA-00942: table or view does not exist" when I want to create materialized view.
Details:
1. On destination database I create a database link:
CREATE DATABASE LINK SDATABASE
CONNECT TO MYUSER
IDENTIFIED BY MYUSERPASS
USING 'ORCL';
=> Command "SELECT * FROM TABLE1@SDATABASE" returns data normally!
2. On source database I create MATERIALIZED VIEW LOG:
CREATE MATERIALIZED VIEW LOG
ON TABLE1
WITH PRIMARY KEY
INCLUDING NEW VALUES;
3. Now, when I want to create MATERIALIZED VIEW on destination database:
CREATE MATERIALIZED VIEW TABLE1
REFRESH FAST
START WITH SYSDATE
NEXT SYSDATE + 1/1440
WITH PRIMARY KEY
AS SELECT * FROM TABLE1@SDATABASE;
...I get error "ORA-00942: table or view does not exist"!
How is that possible if command "SELECT * FROM TABLE1@SDATABASE" returns data normally?
Thanks,
VorancAnd, I'm using Oracle 10g.
Voranc -
Include or create a view in the database and use this view?
Well, I need to get related data of the main table from another related tables, so one way to do that is to use the Include method in Entity Framework to get this related data.
However, I am thinking in another option, create a view in the database and use this view in entity framework. In this way, I avoid the needed of the include, because I think that is expensive in resources. But I am no very sure about that.
I would like to know if the use of views on entity framework is a good idea to improve the performace or is better to use the include.
For example, if I use the include I have the advantage that I get only one the main record and all the related data I have in the navigation properties, so the info is more shorted.
Which is the advanteges and disadvantages of both methods to get related data in entity framework?
Thank so much.Hello ComptonAlvaro,
>>I would like to know if the use of views on entity framework is a good idea to improve the performace or is better to use the include.
If your view would use a Join syntax to query master-child relationship tables, it actually is similar with the Include() method which actually results a duplicate records from master table, you could check this
link for detail description.
>>Which is the advanteges and disadvantages of both methods to get related data in entity framework?
One visible difference is that records from Views are not editable by default(if you want edit them, you could refer to this
blog).
In your case, my suggestion that you could use the lazying load which will load the matter table once and disable the trace if you only need to display data.
Regards.
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click
HERE to participate the survey. -
Create View from Database Links - Question
Question
I'm missing something simple.
I'm trying to create a view, from a Database Link.
CREATE VIEW view_name
AS SELECT a.*
FROM schema.tablename@dblink a;
When I run this in the SQL Commands window.
I get this error message.
ORA-00933: SQL command not properly ended
What am I missing? Any help is appreciated...<i>CREATE VIEW vw_name
AS SELECT a.*
FROM [email protected] a;
</i>
<br>
1) User (schema) which is creating view must have proper db_link to source database. For that try this for testing purpose:
select 1 from [email protected]<br>
If this fail then db_link is not ok! This step is absolute must to go any further step to!!!
<br>
2) when db_link is set, then your view should be named as:
CREATE VIEW vw_name
AS SELECT *
FROM <b>schema_name</b>.[email protected];<br>
please pay attention to "schema_name", because from remote side every table is in some schema so it really need declaration of owner schema.
<br>
Hope this helps... -
Create a view in the database based off a jdbc connection
I have some data in a DB2 database that I would like to union with a table in an Oracle Database in the Oracle Database.
Can I create a jdbc connection in the Oracle database that points to the DB2 database and then create a view based off of the jdbc connection?
I've never done anything like this , but if this a no brainer please just post a link or something that points me in the right direction thanks...
I've searched...Mark,
I was going to suggest the same thing as Jan did when she answered this question that you also posted to the Union DB2 and Oracle data in a view and display in a form using jdbc? forum.
Good Luck,
Avi. -
Create Materialized View based on another database table using db link?
SQL> SELECT sysdate
2 FROM dual@CBRLINK ;
SYSDATE
21-NOV-12
SQL> CREATE MATERIALIZED VIEW USERCBR.V_T24_COUNTRY1
2 REFRESH COMPLETE
3 START WITH SYSDATE NEXT SYSDATE + (5/24)
4 AS
5 SELECT sysdate
6 FROM dual@CBRLINK ;
CREATE MATERIALIZED VIEW USERCBR.V_T24_COUNTRY1
ERROR at line 1:
ORA-04052: error occurred when looking up remote object SYS.DUAL@CBRLINK
ORA-00600: internal error code, arguments: [ORA-00600: internal error code,
arguments: [qksfroFXTStatsLoc() - unknown KQFOPT type!], [0], [], [], [], [],
ORA-02063: preceding line from CBRLINKIt works for me:orcl>
orcl> CREATE MATERIALIZED VIEW scott.V_T24_COUNTRY1
2 REFRESH COMPLETE
3 START WITH SYSDATE NEXT SYSDATE + (5/24)
4 AS
5 SELECT sysdate
6 FROM dual@l1 ;
Materialized view created.
orcl> select * from v$version;
BANNER
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production
PL/SQL Release 11.2.0.3.0 - Production
CORE 11.2.0.3.0 Production
TNS for 32-bit Windows: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production
orcl>so there is no problem with the code. HTH. -
How to create Database level Security in OBIEE
Dear Experts,
Can you kindly tell me the steps on how to create a database level security on OBIEE.
Please can some one give me the scripts and tell me how to implement tht in the RPD.
Thanks in advance,
AnandIf you are looking for Database Level security in OBIEE the only route to truly accomplishing this is using the Oracle Virtual Private Database concept.
http://obieeblog.wordpress.com/2008/12/29/obiee-and-virtual-private-database-vpd/
http://gerardnico.com/wiki/dat/obiee/vpd -
How to create materialized view log on remote database
How do you create materialized view logs on a remote database.
I tried
create materialized view log on global_express_views.vccs438_project_work_request@h92edwp with sequence, rowid ( columns...)
ERROR at line 1:
ora-00949 illegal reference to remote databaseHi,
I am not getting the error exactly. But have some suggestion:
If the schema owner does not own the master tables, then the schema owner must have the GLOBAL QUERY REWRITE privilege or the QUERY REWRITE object privilege on each table outside the schema.
Hope, this may help you?
Thanx.. Ratan -
Admin Level Personalization to create seeded views failing
Hi,
I have a custom page, let me call it customPG.xml.
When I log in and access that page, there is a button that enables me to create user-level views for a table, and it works.
To create table view that is visible to all users, I go to functional admin and create seeded user views for the same table. For some reason, when I create a blank view from admin level personalization, it appears in the user screen views dropdown, but when the view is selected, no data shows up in the table.
When I duplicate this view at the user level, I can see the data in the table.
any reason why this is happening?
how can i overcome this?
thanksAnand,
Thank you for the response.
I tried both Functional Admin and SYSADMIN and neither worked. What worked was - when on the personalizae page - select option 'Complete View' instead of the 'Simple View', then all 'Create Item' icons becone enabled!
Well - wonders never stop!
Regards
Anatoliy -
Creating ALV view system-level assignment
Hi!
When I press "Save as.." in the settings window of an ALV, I can only save the view with assignment "User".
But I want to create system view available to all users. Like views with "/view_name" in usual ALV.
Is it possible to create such view and make it default to all users?Just run the application in Administrative Mode (Assuming you have the correct authorizations to do so). From SE80 you can do this if you double click on the Web Dynpro Application to bring up the Application Edit. Then choose Web Dynpro Application->Test->Execute in Administrative Mode From the top level menu bar. You can also use the URL parameter sap-config-mode=X.
When you save the variant you will be saving a global one and will have the option to place your variant in a transport.
Maybe you are looking for
-
HT1349 Why can't I open my apps I bought
Just bought an I phone and used iCloud now I can't use my apps I have already bought. The app is here but when I tap on it nothing happens
-
Report will not run after upgrade to new Crystal server
My company has been using Business Objects version 11.5 Central Management Console and InfoView for Crystal reports. We are upgrading to SAP BusinessObjects BI Platform 4.1 Support Pack 1 Version: 14.1.1.1036 Central Management Console and BI Launch
-
How to get import on to iphone
I imported a cd to my macbook air and wanted it to be available on the cloud so I can have it on my iphone.
-
Does anyone have XSQL running with 8.0.5? null
-
I am on this page http://get.adobe.com/flashplayer/http:// There is a nice looking, but apparently useless box that has "download now" printed on it. When I do, mysteriously, nothing happens. How do I overcome this? There has to be a way to download