Data Migration with Oracle ADF - oracle-adf

I am trying to migrate the weird and complex data from excelsheet to oracle 10g xe database with validation.So, i read at somewhere that it is too easy with Oracle ADF Desktop Integration.
Can anyone guide me for that?
==Thanks

You can easily create simple GUI for data insertion using ADF. But in fact you might even not need any user interface to do your job (unless it is for a customer).
Maybe the most important part is actually the ADF Business Layer (business components) and the ability to use Java in it.
Using Java and the ApachePOY library, you can create a simple Excel parser - I have written more about it here: http://blog.dreamix.eu/java/read-excel-files-with-java.
Then you can use the business components to make the data insertion and validation.
Have fun and if you need more help you can contact me through the blogpost.

Related

Dynamic Data Extract Tools

I've been searching around for a few weeks now for a tool that either is fully built or a direction of something I could build for dynamically extracting data via a web interface. Basically, what I'm looking for is a way to give users a list of all available data objects from our database and then let them pick ones from the list they'd like to view and set parameters then export the results to an excel file.
Right now we're doing it purely with SQL statements but we have hundreds of objects so as you might imagine, those statements are really complex and prone to errors. It would be great if there was a tool available to do this or if someone had an idea of an easy way to organize this. Any help would be greatly appreciated.
We've looked at BI tools like QlikView and Tableau but that is probably overkill for what we're trying to do. The open-source BI tools we've looked at seemed really primitive in their functionality. The other thing we looked at was MSAS (our DB is SQL Server) but I'd prefer something that was more database-agnostic and lived on a web server instead of on the database.
I think what you are describing is a typical BI reporting tool. I don't know what open-source BI tools you have been looking at but there are open source solutions which aren't "primitive" at all. The two main open-source reporting libraries are JasperReports and BIRT. You can design report templates within a graphical interface (NetBeans plugin called iReport for Jasper, Eclipse plugin for BIRT). A simple report template is basically an xml file which contains a parameterized SQL query and describes how to display the query results.
End-user typically connect to a web application (Java EE app which uses the reporting library) which executes the report templates : it asks the user to input parameters in a graphical way such as drop-down lists and checkboxes, and then retrieves the SQL query results from the database, and displays them according to the template (tables, charts, etc.). These results can then be exported in many formats including xls.
JasperReports developers provide a free open-source webapp designed to run Jasper reports, called JasperReports Server. Other open-source projects let you execute reports designed either with BIRT or Jasper, for instance ReportsServer which I haven't tested.
At my company we use SpagoBI, which is a fully-fledged free and open source Business Intelligence suite. This means that it has all the features of a commercial BI suite. The most useful is probably the ad-hoc query editor, which lets users with little technical knowledge design simple queries by dragging and dropping fields, and it performs the underlying table joins for them. It then lets users design simple reports such as pie charts or line charts from the data they just extracted. This sort of feature is part of the commercial editions of JasperReports Server and Actuate One (the BIRT equivalent of JasperReports Server which doesn't have a free version).
SpagoBI is a great, powerful tool and I recommend it, but it is also quite difficult to configure and to master. Maybe if your needs are only to execute pre-defined reports you had better go with one of the other solutions.
PowerPivot, Data Explorer, or Microsoft Query?
Sorry, didnt see that you wanted a web interface...
You can try get some export data functions from SQL Web Data Administrator - http://sqlwebadmin.codeplex.com/
Or you can install the web tool but restrict access for its web-page other then export data pages.
Cognos BI (specifically, the web-based Query Studio) fits this tab perfectly and is a great tool to deploy to non-technical web users.
It does require a pretty robust setup and is not cheap but it is an enterprise-class product. I've only worked with the full-scale deployment but they also have an Express product for small/midsize companies.
If you could clarify number of users, database size, expected query volume, and budget, we could refine the toolset further...

What is the best way to implement a family tree using ASP.NET MVC & SQL Server

I am trying to create a Family Tree website (for personal use) using MVC3 and SQL Server 2008 however I am relativly new to MVC3 (Using Razor & Entity Framework) but know SQL Server quite well.
I am getting quite frustrated and am tempted to develop the website using WebForms as I am very familiar with this tech.
My question is I am split between the following two approaches but am stuck on how to implement either using MVC3 and Entity Framework:
1) using a Person table containing information about an individual and a bridging table to store relationships between individuals held on the Person table.
2) Nested Sets storing all information on one table.
Can someone please, please give me some direction on how I can get started, preferably using the Nested Sets approach as I would like the performance of reading the hierarchy to be as quick as possible as this will be the main purpose of the site.
I hope I have provided enough information, if not please ask me for more details.
The way you organize your data in the data store has very little to do with MVC. All the data access is abstracted in the M part (the model) and how it is implemented in the back end does not matter, the model layer can be different but still present the same layer to the controler (the C part.)
This is exactly the reason for using a system like MVC. You could (for example) implement an MVC web site using MS SQL and then at a later time move to Oracle. The only code which would need to change is the code in the Model. MVC allows for separation of concerns.
So, to answer your question: Implement the SQL design in the way you think will work best. Then when the Model is written it will be "translated" to an interface needed for the controllers and the view.
Coda - I personally think it is easier to implement this data using more than one table, I think it makes the queries clearer. Your mileage may vary.

Simplest way to develop an app that can use multiple types of databases?

I have a project for a class which requires that if a database is used, options exist for the user to pick a database to use which could be of a different type. So while I can use e.g. MySQL for development, in the final version of the project, the user must be able to choose a database (Oracle, MySQL, SQLite, etc.) upon installation. What's the easiest way to go about this, if there is an easy way?
The language used is up to me as long as it's supported by the department's Linux machines, so it could be Java, PHP, Perl, etc. I've been researching and found info on ODBC, JDBC, and SQLJ (such as this) but I'm quite new to databases so I'm having a hard time figuring out what would be best for my needs. It's also possible there may not be a simple enough way to do this; the professor admitted he's not a database guy either and he seemed to think it would be easy without having a clear idea of what it would take.
This is for a web app, but it ought to be fairly straight forward, using for example HTML and Javascript on the client side and Java with a MySQL database on the server side. No mention has been made of frameworks so I think they're too much. I have the option of using Tomcat or Apache if necessary but the overall idea is to keep things simple, and everything used should be able to be installed/changed/configured with just user level access. So something like having to recompile PHP to use ODBC would be out, I think.
Within these limitations, what would be the best way (if any) to be able to interact with an arbitrary database?
The issue I think you will have here is that SQL is not truely standard. What I mean is that vendors (Oracle, MySQL etc) have included types and features that are not SQL standard in order to "tie you in" to their DB, such as Oracle's VARCHAR2 and so on.
When I was at university, my final year project was to create an application that allowed users to create relational databases using JDBC with a Java front-end.
The use of JDBC was very simple but the issue was finding enough SQL features/types that all the vendors have in common. So they could switch between them without any issues. A way round this is to implement modules to deal with vendor specific issues and write ways to translate between them. So for example you may develop a database for MySQL with lots of MySQL specific code in that, but then you may want to use Oracle and then there are issues, which you would need to resolve.
I would spend some time looking at what core SQL standard all the vendors implement and then code for these features. But I think the technology you use wouldn't be the issue but rather the SQL you create.
Hope this helps, apologies if its not helpful!
Well, you can go two ways (in Java):
You can develop your own classes to work with different databases and load their drivers in JDBC. This way you will create a data access layer for yourself, which takes some time.
You can use Hibernate (or other ORMs). This way Hibernate will take care of things for you and you only have to know how to use Hibernate. Learning Hibernate may take some time, but when you get used to it, it can be very useful for your future projects.
If you want to stick Java there Hibernate (which wouldn't require a framework). Hibernate is fairly easy to use. You write HQL which gets translated to the SQL needed for the database you're using.
Maybe use an object relational mapper (ORM) or database abstraction layer (DAL). They are designed to provide a standard API to multiple database backends, making it possible to switch between different backends with minimal or no changes to your code. In Python, for example, a popular ORM is SQLAlchemy, and an excellent DAL is the web2py DAL (it's part of the web2py framework but can be used as a standalone DAL outside the framework as well). There are many other options in other languages as well.
use a framework with database abstraction layer and orm . try symfony or rails
There are a lot of Object relational database frameworks, unless you prefer jdbc. For simple/small applications this should work fine.

Best place to get started Qt Database Interface

I've been asked about using the Qt database interface for Oracle.
What's a good starting point for investigating this? Do you have any experience with it you can share?
We have been using the QtSql classes for a couple of years now, we are currently using the ODBC driver to connect to MSSql instance. Overall the the whole interface performs it's taks reasonably well. It insulates you completely from the Database driver QSqlDatabase, QSqlQuery and QSqlResult at the forefront, there are some abstractions that also insulate you from actual SQL QSqlTableModel and QSqlRelationalTableModel but those are geared for use in any of the Qt views. There is also a class QDataWidgetMapper that helps you map data to non table views. Also QVariant does an excelent job of wrapping SQL data, and providing typed access to the result of a query. While all of this is very helpful, unless your application is small in scope it won't save you from having to come up with a decent DAO layer, none of the Qt classes provide that.
We have a process where we turn a - custom made - xml description into a sql script for creating a table, a qt wrapper class for QSqlRecord and we use QSqlTableModel for most of our CRUD work. That work reasonably well but there is a lot of overhead in these classes so I would not repeat this approach.
We did find some quirks with the ODBC driver, I am sure there are some other quirks with the oracle driver. OTOH we are reasonably sure that we will be able to switch from MS-SQL to ORACLE within a short amount of time.
As for starting points, I think there is a simple example in the qt examples.

Package for presenting OLAP data

I'm managing a very large data warehouse (>1 TB) based on MS SQL 2005. I would like to create a solution for the users to present data from the cubes on-line (web interface). Right now they are using Office Web Components, but it's not so good. I don't have any controls over the reports that they create. I googled, and there are some solution like Dundas or Analyzer.
Maybe someone has some experience with this (or other) packs and can share opinions? I have some basic requirements:
high performance and no unnecessary queries to the OLAP server
being able to store reports (for example: users creates filters, selects dates ranges and he must be able to store it)
ability to export to Excel
some charting engine built in would be nice.
Some ideas?
Devexpress has a really nice "PivotGrid" - a OLAP data mining component that can be used in ASP.NET apps:
http://www.devexpress.com/Products/NET/Controls/ASP/Pivot_Grid/
and its counterpart for Winforms applications:
http://www.devexpress.com/Products/NET/Controls/WinForms/Pivot_Grid/
RadarCube also is an ASP.NET component to present OLAP data:
http://www.radar-soft.com/products/aspnet.aspx
And here's a complete list of potential OLAP presentation tools - not that I really know any of them - but you can have a look!
http://www.download32.com/net-olap-software.html
Marc
Take a look at JPivot that is used by Pentaho Mondrian.
JPivot is an open source Java tag library for connecting to cubes exposed through Mondrian (Java OLAP server) or through XML/A (which I believe is used by Microsoft Analysis Services).
The JPivot control is pretty comprehensive although it could do with a little bit of a facelift. I believe that a new project Pentaho Analysis Tool (PAT) is in development as a replacement for JPivot this uses GWT to render a nicer looking UI (http://wiki.pentaho.com/display/COM/Pentaho+Analysis+Tool).
I use Pentaho Mondrian along with JPivot to present my multidimensional data on my intranet. I am using a ROLAP schema running on SQL Server 2000. It works ok and also supports generating charts with JFreechart.
Mondrian Java OLAP Server - http://mondrian.pentaho.org/
JPivot http://jpivot.sourceforge.net/ - Screenshots http://jpivot.sourceforge.net/temp-N101F1.html
It may also be worth looking at Eclipse BIRT I beleive that this possibly supports a sort of crosstab control but i've never tried it.
Do you use Sharepoint? You might find that you're already covered for a PerformancePoint/ProClarity server/components, due to recent licensing restructuring announced by Microsoft.

Resources