Application Express :: Building App That Connects To DB2 / UDB?
Jul 30, 2012
I have NO experience with APEX but - have been browsing the documentation in considering it's use as a web application/dashboard reporting utility.
However - I'm wondering if it allows for the ability to connect to DB2 as well as Oracle...
i.e. - building a form that allows a user to 'pull' data for analysis from a DB2 instance and - generate reporting results that would then be stored in an Oracle instance.
I'm using Apex4.1 on a hosted platform. I'm trying to build a business application and the client wants a Dashboard.
Here is the best way I can explain it:
The dashboard displays a series of rows in the table. When you click on the "edit" button, it runs a query and displays it data on a report. How would I build this?
Let me explain it a different way:
The home page shows a table report with Column 1, Column 2, Column 3.
I want to make it so where you can click any ROW and then it goes to a different page that shows all of the data So the Home Page you can just see 3 Columns, but the next page will have all the columns.
I'm about to build a machine whos prinary focus will be running a 'hobby' app that uses oracle express as its db. some info on the db..main tabl has 30 fields and 500K records,all other tables add up to about 20% of that size.
I run huge queries that return most of the db in about 200K rows with 50 fields.these queies contain many 'partion fields' using 'rank', 'percect rank' etc. My old pc really struggles with thhis stuff and im going to invest about 600 euro (exculing monitor etc) in a new mahcine.
general terms what i should get, im thinking about OS, hard drive (1 for data, 1 for indexs?), mutli core processer?, type and size of ram. Any othr consideration i should have.
(1) Does imp utility rebuild the indexes while loading data ? or it simply takes the rows from dump and load into test system without building from scratch ?
(2) I am trying to replace 'exp' and 'imp' with datapump utilities ? But, I am confused about the parameters to be used ?
(a) Can I load both data and meta data at the same time (Using CONTENT=ALL option) ? (b) I am planning to implement this in two steps :
first load only metadata using - CONTENT=METADATA_ONLY TABLE_EXISTS_ACTION=REPLACE
I am trying to build a data warehouse for Consumer Price Index and so I have downloaded data from the Bureau of Statistics.It is in excel format and since I am working with Oracle Warehouse Builder I have converted it to .csv file so that I can use it as a data source.
Question1: Is it practical to use single .csv file as a source of data for a data warehouse?
Question2: I have 3 dimensions tables and a fact table.The dimensions are one for the Region(as the date is organized in region,states etc),two is the consumer goods and services (as the data is organized in groups of goods and services, services/goods types) and finally time(year and month),
Now how am I going to do the mapping here?Is it possible to do a one to one mapping here as all data required by the dimensions is located in the .csv file.
I have been trying to figure out how to write a query that shows each building code building name and number of rooms from a database with four tables : emp, build, room, roombook
i'm working in an Oracle 10g database on an IBM AIX server.
I have 3 tables (tables A, B and C).
Table A has columns -- product, rate and expiration date.
Table B has columns -- product, rate and deductible.
Table C has columns -- product, rider, gender, age and rate.
I also have a Master table which is used to store the data from Tables A, B and C via the insert statement.
I'm trying to create a dynamic SQL insert statement using a shell script to insert data from the columns in Tables A, B and C into my Master table. Master table does contains all columns from Tables A, B and C, although a column name could be spelled differently. For example, Master table contains a column named "deduct", while Table B has the same column spelled as "deductible".
I build the dynamic query using a for loop in my shell script (see below).
The problem is that i can't get the correct columns in the Master table in the dynamic SQL for the insert because depending on the table i'm selection from, the columns are different. So how do i get the correct columns in the SQL for the Master table?
Example Shell Script
--Archive_Rates.txt contains: Table A, Table B, Table C (but the next time my process runs, Archive_Rates might contain Table D, Table E and Table F -- each which have different column...but all columns are still in the Master table)
for tbl in `more Archive_Rates.txt` do echo 'BEGIN WORK; ' > rc1.sql echo ' ' >> rc1.sql echo 'insert into Master' >> rc1.sql echo '(prod, rate, rate_exp) ' >> rc1.sql
I have 3 tables, user_login_event, person and resource_viewed_event. What I want to do have a report for each month, users logged in our application and then show for each month, how many records were created in table person and how many resource views events were logged in resource_viewed_event.
Lets only worry about the timestamp fields in these tables now as I want to use them to join the tables together or at least build correlated subqueries along the months. I have tried several options, all not leading to a desired result:
Left outer join. Works but its incredibly slow:
SELECT distinct to_char(ule.TIMESTAMP,'YYYY-MM') as "YYYY-MM", count(distinct ule.id) as "User Logins", count(distinct ule.user_id) as "Users logged on", count(distinct p2.id) as "Existing Users", count(distinct p1.id) as "New Users", count(distinct r1.id) as "Resources created"
[code]....
Tried the same with left outer joins of temporary tables created through select statements:
select distinct ule.month as "Month", count(distinct p1.user_id) as "Users created", count (ule.id) as "Logins", count (distinct ule.user_id) as "Users logged in", count(rv.id) as "Resource Views", count(distinct rv.resource_id) as "Resources Viewed"
[code]....
Tried the same with left outer joins of temporary tables created through select statements:
select distinct ule.month as "Month", count(distinct p1.user_id) as "Users created", count (ule.id) as "Logins", count (distinct ule.user_id) as "Users logged in", count(rv.id) as "Resource Views", count(distinct rv.resource_id) as "Resources Viewed"
[code]....
another approach is to create my own temporary tables using select statements and create fixed Month values which I can use to directly link the sets together.
select distinct ule.loginday as "Month", count(distinct ule.id) as "Logins", count(distinct ule.user_id) as "Users logged in", count(distinct p1.user_id) as "Users created", count(distinct p2.user_id) as "Existing users1"
[code]....
performance is OK with 2 tables but the example above takes forever to execute.
Tried an approach with union but this creates new rows for each table
SELECT DISTINCT p1.MONTH AS "Month", COUNT(DISTINCT p1.user_id) AS "Users created", NULL AS "Logins", NULL AS "Users Logged in", NULL AS "Resource views", NULL AS "Resources viewed" FROM (SELECT To_char(person.created_on_date, 'YYYY-MM') AS MONTH,
We have integrated Oracle Access Manager 11gR1 with Oracle Apex 4.1. The OAM-Apex integration is working fine. Now we want an additional header variable to be passed from OAM to the Apex application. This new header variable will be user's sAMAccountName in Active Directory. OAM is integrated with AD and the AD users are successfully able to access the Apex applications.
The three header variables which are configure in OAM right now are: Header variable name Value 1. OAM_REMOTE_USER $user.userid 2. OAM_REMOTE_USER_EMAIL $user.attr.mail 3. OAM_REMOTE_USER_GROUPS $user.groups
We need an additional header variable as mentioned below: Header variable name: OAM_SAMACCOUNTNAME Value: $user.attr.samaccountname
The new header variable was added in the OHS server's dads.conf file like shown below: =========== dads.conf ============= ... PlsqlCGIEnvironmentList HTTP_OAM_REMOTE_USER PlsqlCGIEnvironmentList HTTP_OAM_REMOTE_USER_GROUPS PlsqlCGIEnvironmentList HTTP_OAM_REMOTE_USER_EMAIL PlsqlCGIEnvironmentList HTTP_OAM_SAMACCOUNTNAME
But we are not able to read the value of this attribute in the Apex application.On the Apex application, we have a text box which shows the value of this header variable. This textbox is attached with the following stored procedure call to fetch the header variable: =================== begin :P1_HEADER_VALUE := owa_util.get_cgi_env( 'HTTP_OAM_SAMACCOUNTNAME' ); end;
The textbox shows the correct value if HTTP_OAM_REMOTE_USER is passed to the get_cgi_env method but does not shows anything when HTTP_OAM_SAMACCOUNTNAME is passed to the same method. if I am missing some configuration to pass the HTTP_OAM_SAMACCOUNTNAME haeder variable from OAM to Apex.
I have multiple application set-up using session sharing within the workspace.Technically all works fine, however it does not play nice with user behaviour.
Example: Users logs into APP_ID:100. Since he isn't authenticated yet, he provides user/pass and the APP_SESSION is authenticated. Now if the user switches using to another application (using a link provided in application 100) he gets redirect to APP_ID:101:APP_SESSION all is fine.
The session is already authenticated, the application shares the session and the user gains access to app 101 without having to authenticate again. All's fine!
However users don't behave they way. Instead of using an easy link in the application. They will use their own bookmark or type in the url for app 101 manually. That way the next application is either called with f?p=101:1:[SOME OLD SESSIONID FROM BOOMARK] or f?p=101 (with no further page or session info) In both cases instead of using the already authenticated session apex spawns a new session, which of course isn't authenticated yet thus forcing the user to authenticate and come complaining they have to login again.
Similar behaviour problems exists when the user opens a browser and tries to open both applications in each in a tab next to each other.Both tabs fetch there own initial session id and start writing it to the same cookie each in turn invalidating the other tab's session.These can lead to some fanatic ping pong actions. Thus it's impossible to open 2 applications sharing session in the same browser.
Is there any remedy for these situations?Can apex be as smart as for instance first trying to resume the session stored in the cookie and only if that session is invalid, start a new session?
how to use checkbox item, and trying to get checked options values via application global arrays. So, this may be quite simple question, but I'm completely stuck here...
When I was looking through various threads and guides, I've encountered checkbox corresponding array names like "g_f01" - "g_f50". And so far i saw that these names are derived from item name in generated HTML code, for example:
<input type="checkbox" name="*f10*" value="3" />
And this one stands for array name "g_*f10*".However, when I tried to do the same thing - i receive item name which looks like "*p_v04*", and therefore, I can't figure out, which array name should I choose to adress it properly.
APEX 4.0 Sometimes, I am getting the below error when I tried to logging into APEX workspace (after giving workspace name, User name and password), Expecting p_company or wwv_flow_company cookie to contain security group id of application owner.
ErrorERR-7621 Could not determine workspace for application (:) on application accept. I found some threads related to this but in different way not exactly when I am getting this error.
After 2 or 3 times, this error will not come and I can able to logging into workspace What is the cause for this issue??
Each time when I import an application into my workspace in local 10g XE using the APEX 4.2 Application Builder, I get the "ORA-02291, constraint wwv_flows_fk violated..". The application I whant to import was originally exported from [URL]. I found out, that it has to to with wwv_flow_application_install.get_workspace_id in the installation script, which obviously returns NULL and not my current workspace id as I suppose it should. I replaced wwv_flow_application_install.get_workspace_id by '<my worskspace id>' and then the import does work.
I have an application that I'd like to prevent activity in after a certain time of day, say 3pm. Is there any way I can force logout of all current users and then prevent re-login until 9am the next day (short of deleting all of their login credentials and then recreating them the next morning)?
We have developed an application for our clients,planning to deploy it in client server soon. we have plans to support the application in future,so we want to restrict the clients from any modifications. By Doubt is, 'build_status=Run only' alone,cannot protect our application from client developers to edit our application,
Because though we install our application as 'Run Only' at the time of installation in client instance,we can still import the original application and change the type to 'Build and Run Application',and run the new application as 'Build and Run'.(which is not supposed to) we want to make sure,if there is any way we can protect our application from modifications after client side installation.
I'm trying to connect a javascript UI control within my page to an APEX Application Process. The control calls the application process via AJAX and appends a variable number of GET / POST parameters to its URL.What is the best way to obtain these parameters from within the PLSQL procedure of the process? Or is there a better way to connect my javascript AJAX control to the Database behind my APEX app?
I have some applications on Apex public workspace (apex.oracle.com), and suddenly the Tree View, on Application Builder stopped showing any content. If I select "Component View", I see the page components, but if I switch to tree view, it shows me only some empty frames.
I'm trying to set up a PL/SQL dynamic action that is triggered by clicking on a button. The dynamic action sets two values in a table and then I would like to redirect to another page. Setting the values works fine. The code is below:
declarel_information varchar2(255) := :P94_FILENAME;BEGINcommit;UPDATE VDI_METADATASET CREATEUSERLISTNAME = l_information, CREATEUSERLISTON = sysdate();commit;htp.init;owa_util.redirect_url('f?p=&APP_ID.:81:&APP_SESSION.::NO:::');END; The redirect fails with the following eror: "Error: parseerror: JSON.parse: unexpected non-whitespace character after JSON data"
how to redirect to a page from within PL/SQL . None of them result in success.
Unless I'm not understanding this error it means that it can find the ACTION part that is attached to the WHAT part of this Dynamic Action? The Dynamic Action does work when the application is run (in Development)also, there are 3 others that are similar to this one. The export was created by the export utility in the Application Builder.
If I export only the page and import that into Production the import is successful and the page runs correctly. This is error is happening only when I try to import the entire Application.There are many other changes made which is why I was trying to do an Application export/import instead of individual pages.
I have to modify the Form layout of an existing application (Application Express 4.0.2.) where the data for each field is retrieved using SQL statements
Presently the form looks something like this and the Data for each field is rendered properly in this layout:
UNIT # : 123456 ADMISSION #: 2012101510 DISCHARGE DATE: ADMISSION DATE: FIRST NAME: JON LAST NAME: DOEFIRST NAME, LAST NAME and UNIT # are all "Display Only" item type.
What I'm trying to do is to move "FIRST NAME" underneath "LAST NAME" and "UNIT #" next to "LAST NAME" This part is very simple. However, the issue I'm having is as soon as the "UNIT #" is moved next to "FIRST NAME", the data for "FIRST NAME" and "LAST NAME" simply disappear
This is how it looks ADMISSION #: 2012101510 DISCHARGE DATE: ADMISSION DATE: FIRST NAME: UNIT #: 123456 LAST NAME:
I have played around for hours and even created from scratch a new page with a new form using SQL statements to pull the data for each field, only to get the same result.
I have an application item that receives a web service result. This result is like 'MARIA','JOSE','JESUS'. I'm using this string into the parameters of the interactive report, but this is not recognized. I'm showing the content of the application item into a pl sql region and the content is 'MARIA','JOSE','JESUS', when I include this application item into the query, the IR shows me 'MARIA','JOSE','JESUS'
How do I center a button within a region? I tried 'align="center"' but this seemed to be ignored. The button is at the left of the screen. Also, what are the 'display points' (Page Template Region Position 1-8) used for, and why is there a specification for column position of 1-9? Could these be attributes that will allow my button to be centered on the window instead of on the left?
I am using Apex 4.2. On a click of button a Dynamic Action is written, which calls a DB Package. The DB package has exception handlers and also the package has two output parametersError Code and Error MsgSo in my code(Dynamic Code) i make a call to the package and checks the value for Erroc Code.
Begin Package call...... If v_error_code <> '0' Then Raise SC_Error; End if;Exception When SC_Error Then RAise_Application_error(v_err_code, v_err_msg);End;
But when i run the page and I click I get an Internal exception errorOutput from Debug -- I am not sure what the Cell in Red colour means, because the package is returning a correct message (before the red line).AJAX call returned server error ORA-20003:
Customer has already been matched for Execute PL/SQL Code.4......is_internal_error: true4......apex_error_code: APEX.AJAX_ SERVER_ ERROR4.. ora_ sqlcode: -200034......ora_sqlerrm: ORA-20003: Customer has already been matched4......error_backtrace: ORA-06512: at line 41 ORA-06512: at "SYS.DBMS_SYS_SQL", line 1926 ORA-06512: at "SYS.WWV_DBMS_SQL", line 973 ORA-06512: at "SYS.WWV_DBMS_SQL", line 999 ORA-06512: at "APEX_040200.WWV_FLOW_DYNAMIC_EXEC", line 830 ORA-06512: at "APEX_040200.WWV_FLOW_PLUGIN_UTIL", line 2304 ORA-06512: at "APEX_040200.WWV_FLOW_DYNAMIC_ACTION_NATIVE", line 442 4......component.type: APEX_APPLICATION_PAGE_DA_ACTS4......component.id: 231852037977562094......component.name: NATIVE_EXECUTE_PLSQL_CODE4.
Execute Error Handling Callout defined on Page or Application Level4...Execute Statement: begin declare l_error wwv_flow_error_api.t_error; begin l_error := wwv_flow_error_api.g_error; wwv_flow_error_api.g_error_result := apx_error_utils.handleerror ( p_error => l_error ); end; end;4......Values changed by callout:4..
An unexpected internal application error has occurred. Please get in contact with your system administrator and provide reference# for further investigation. 4..display_location: ON_ERROR_PAGE4Stop APEX Engine detected4Final commit4-1 - 59
I need to change "File Character" when I export application with Apex 4.2.1.00.08 version, but this option, is not possible. The ComboBox already select with
"Unicode UTF-8]', but I need "ISO-8859-1 - Europa Ocidental",
My question is, if I define an object type (create type ... as object ...) is it possible to hold a variable of this type as the session level? For example, if I am creating an order using multiple web pages, it would be much easier (and intuitive) to create and manipulate an order object than to hold the data in generic collections.
If that is not possible, is there some way to make a generic Apex collection appear more application specific? By this I mean some way to map the columns C001, C002, ... to more intuitive names such as CUST_NO and ORDER_DATE. I had considered possibly creating a view of the APEX_COLLECTIONS view which would rename the columns but then I would also have to create a bunch of instead of triggers if I wanted to update it as well.