Emerging Tech Unconference Session & Changing Landscape Panels
Fetch module name from line number in package with pl/scope
Here is a small statement I am using to find the name of a submodule based upon error stack data (utl_call_stack.error_line(x) or dbms_utility.format_error_stack).
The function IDENTIFY_MODULE helps to diagnose errors. If an error happens in plsql the error stack returns only the name of a package (=unit) and the line number. Using this line number we can look up the pl/scope information and make a solid guess about the module name. For various reasons this is only a good guess, not a guarantee (see problem section below).
solution
The following code snippets will only work if the relevant packages were compiled with PLSCOPE_SETTINGS=’IDENTIFIERS:ALL’.
ALTER SESSION SET plscope_settings='identifiers:all';
SQL statement
fetch the nearest procedure or function
select * --type, name, signature, line, usage_id, usage_context_id from all_identifiers where object_name = :PACKAGE_NAME and object_type= 'PACKAGE BODY' and usage in ( 'DEFINITION','DECLARATION' ) and type in ('PROCEDURE','FUNCTION') and line <= :LINE_NUMBER order by line desc fetch first 1 row only ;
This will find procedures and functions in our code that were declared just before the line of error.
There are many cases where we get some false positives.
But it is a good start.
plsql enrichment
Using a little bit of plsql we can make this logic more robust. And even get data about submodule hierachies.
Put this function in the instrumentation package of your choice (for example logger) and then use it to improve log information. How this is done in detail is out of scope for this post.
create or replace function identify_module (p_owner in varchar2, p_unit in varchar2, p_line in number) return varchar2 is /************************************************************** /* Name : identify_module ************************************************************** * description : uses PLSCOPE, to get additional info about the module name of a source code line * This only works reliably for code compiled with optimizationlevel = 1 * higher optimization levels might move code lines. The line reported in error and backtrace stacks (run time) can differ from the lines stored in PL/scope or user_source (compile time). * * @author: Sven Weller, syntegris information solutions GmbH ************************************************************** * parameter * @param : p_owner = schema name of unit * @param : p_unit = package name * @param : p_line = line of code, for which we would like to see the name of the modul * @return : concatenated submodule names **************************************************************/ cursor c_search_by_line (cv_owner in varchar2, cv_unit in varchar2, cv_line in number) is select /*+ first_rows(1) */ i.type, i.name, i.line, i.usage_id, i.usage_context_id, i.usage, i.signature from ALL_IDENTIFIERS i where i.owner = cv_owner and i.object_name = cv_unit and i.object_type = 'PACKAGE BODY' and i.line <= cv_line -- context must be in same package body and i.usage_context_id in (select i2.usage_id from ALL_IDENTIFIERS i2 where i2.owner = cv_owner and i2.object_name = cv_unit and i2.object_type = 'PACKAGE BODY') order by line desc, usage_id asc ; cursor c_search_by_usage (cv_owner in varchar2, cv_unit in varchar2, cv_usage_id in number) is select /*+ first_rows(1) */ type, name, line, usage_id, usage_context_id, usage, signature from ALL_IDENTIFIERS where owner = cv_owner and object_name = cv_unit and OBJECT_TYPE = 'PACKAGE BODY' and usage_id = cv_usage_id order by decode (usage, 'DEFINITION',1, 'DECLARATION', 2, 3), line desc, usage_id asc ; r_result_byLine c_search_by_line%rowtype; r_result_byUsage c_search_by_usage%rowtype; r_last_result c_search_by_usage%rowtype; v_owner all_identifiers.owner%type; v_modul_name all_identifiers.name%type; v_first_type all_identifiers.type%type; v_max_hierarchy binary_integer := 5; begin -- If owner is missing, use the current schema v_owner := coalesce(p_owner,sys_context('userenv','current_schema')); -- find the closest line and check its context. open c_search_by_line(v_owner, p_unit, p_line); fetch c_search_by_line into r_result_byLine; close c_search_by_line; if r_result_byLine.usage_context_id = 1 then -- we seem to be already in main package body. -- this can be either a problem during a parameter call -- or the error happened in the initialisatzion part of the package case r_result_byLine.usage when 'DEFINITION' then v_modul_name :=r_result_byLine.type||' '||p_unit||'.'||r_result_byLine.name; when 'DECLARATION' then v_modul_name :='declaration of '||r_result_byLine.type||' '||p_unit||'.'||r_result_byLine.name; else v_modul_name :='body of '||p_unit; end case; else r_result_byUsage := r_result_byLine; --r_result_byUsage.usage_context_id := r_result_byLine.usage_id; -- find module names <> loop if r_result_byUsage.usage in ('DEFINITION', 'DECLARATION') and r_result_byUsage.type in ('PROCEDURE','FUNCTION') and (r_last_result.signature != r_result_byUsage.signature or r_last_result.signature is null) then -- concat multiple submodule names v_modul_name := r_result_byUsage.name ||case when v_modul_name is not null then '.'||v_modul_name end; v_first_type := coalesce(v_first_type, r_result_byUsage.type); -- remember result to compare if we get duplicate entries because of declaration->definition r_last_result := r_result_byUsage; end if; -- stop when package body level is reached exit when r_result_byUsage.usage_context_id in (0, 1) or v_max_hierarchy = 0; -- it seems to be a submodule, so do an additional call and fetch also the parent module open c_search_by_usage(p_owner, p_unit, r_result_byUsage.usage_context_id); fetch c_search_by_usage into r_result_byUsage; close c_search_by_usage; -- safety counter to prevent endless loops v_max_hierarchy := v_max_hierarchy - 1; end loop parent_modules; -- add info about type (FUNCTION/PROCEDURE) if v_modul_name is not null then v_modul_name :=v_first_type||''||p_unit||'.'||v_modul_name; --else -- v_modul_name := '--no submodule found--'; end if; end if; return v_modul_name; exception when no_data_found then return null; end identify_module; /
Example
Check the result for each line of some test package.
You can run this example yourself in LiveSQL .
The function had to be modified slightly to use USER_IDENTIFIERS instead of ALL_IDENTIFIERS to be able to run in LiveSQL.
select line, identify_module(user, name, line) , text from user_source where name='TEST_PACKAGE_FUNC_PROC' and type = 'PACKAGE BODY';
Result
LINE IDENTIFY_MODULE(USER,NAME,LINE) TEXT 1 "package body Test_Package_Func_Proc " 2 "as " 3 declaration of VARIABLE TEST_PACKAGE_FUNC_PROC.GLOBAL_VAR " global_var number := 0;" 4 FUNCTION TEST_PACKAGE_FUNC_PROC.TEST_FUNC " function test_func (in_val in number) return number " 5 FUNCTION TEST_PACKAGE_FUNC_PROC.TEST_FUNC " is " 6 FUNCTION TEST_PACKAGE_FUNC_PROC.TEST_FUNC " begin " 7 FUNCTION TEST_PACKAGE_FUNC_PROC.TEST_FUNC " return in_val; " 8 FUNCTION TEST_PACKAGE_FUNC_PROC.TEST_FUNC " exception " 9 FUNCTION TEST_PACKAGE_FUNC_PROC.TEST_FUNC " when others then " 10 FUNCTION TEST_PACKAGE_FUNC_PROC.TEST_FUNC " RAISE; " 11 FUNCTION TEST_PACKAGE_FUNC_PROC.TEST_FUNC " end; " 12 FUNCTION TEST_PACKAGE_FUNC_PROC.TEST_FUNC "" 13 PROCEDURE TEST_PACKAGE_FUNC_PROC.TEST_PROC " procedure test_proc (in_val in number) " 14 PROCEDURE TEST_PACKAGE_FUNC_PROC.TEST_PROC " is " 15 PROCEDURE TEST_PACKAGE_FUNC_PROC.TEST_PROC.SUBMODULE " procedure submodule( in_val in number) is" 16 PROCEDURE TEST_PACKAGE_FUNC_PROC.TEST_PROC.SUBMODULE " begin" 17 PROCEDURE TEST_PACKAGE_FUNC_PROC.TEST_PROC.SUBMODULE " dbms_output.put_line (in_val); " 18 PROCEDURE TEST_PACKAGE_FUNC_PROC.TEST_PROC.SUBMODULE " end; " 19 PROCEDURE TEST_PACKAGE_FUNC_PROC.TEST_PROC.SUBMODULE " begin " 20 PROCEDURE TEST_PACKAGE_FUNC_PROC.TEST_PROC " submodule(in_val); " 21 PROCEDURE TEST_PACKAGE_FUNC_PROC.TEST_PROC " exception " 22 PROCEDURE TEST_PACKAGE_FUNC_PROC.TEST_PROC " when others then " 23 PROCEDURE TEST_PACKAGE_FUNC_PROC.TEST_PROC " RAISE; " 24 PROCEDURE TEST_PACKAGE_FUNC_PROC.TEST_PROC " end; " 25 PROCEDURE TEST_PACKAGE_FUNC_PROC.TEST_PROC "begin" 26 body of TEST_PACKAGE_FUNC_PROC " global_var := 1;" 27 body of TEST_PACKAGE_FUNC_PROC "end; "
The test package was copied and modifed based upon Hemant K Chitales “Function and Procedure in Package” LiveSQL demo.
Some problems
- Currently only ment for package bodies
- Compiler optimization can move code. That means the line number of an error at runtime is not the same line number as during compile time. PL/Scope only gives us compile time information. So would all_source.
The only (bad) workaround is to compile with optimization level 1 and recreate the error, so that the correct line of error is shown. - Errors that happen in the declaration part of a package can not always be resolved. We might get a false positive for the previously declared object.
- Does not inform when package body is wrapped.
Further readings
Oracle 11g Conditional Compilation / Compilación Condicional
- PLSQL_CCFlags
- PLSQL_Code_Type
- PLSQL_Debug
- PLSQL_Optimize_Level
- PLSQL_Warnings
- PLSQL_Unit
- PLSQL_Line
Para verificar nuestra compilacion podemos usar dbms_preprocessor.print_post_processed_source
que nos mostrara como esta compilado el codigo:
Resultado, como vemos el codigo que se compilo fue del bloque TRUE:
Ahora ejecutaremos el procedure para ver los resultados que tenemos:
Y confirmamos que se ejecuto con el codigo 1:
Ahora haremos el proceso inverso, colocando en false.
Podemos darle muchos usos al uso de la compilacion condicional (conditional compilation) , aqui les dejo algunas referencias y los links de acceso al codigo.
Código ejemplo: link
Referencias:
Lazy Loading Report
As usual, I turned debug mode on and had a look at the result. It turned out to be the underlying query of the page's report that was slow.
We were able to fine-tune the query to make everything load faster. But it still took a couple of seconds to render.
What I did was to make the report lazy load the data, similar to what the Interactive Grid can do.
The idea is the following
- Create a hidden item on the page
- Create a computation using the "After Regions" point to set the item to 'Y'
- In the report, add a where clause that checks if the item's value is equal to 'Y'
- Create a dynamic action on page load that refreshes the report
Then, the calculation will be executed and the dynamic actions will refresh the report showing the expected results.
Don't get me wrong here, the overall process is still going to take the exact same time.
If the page is taking 10 seconds to load, it will still take 10 seconds for the page to fully load.
But, the user experience is going to be a lot better because now the page will load instantaneously, then the report will take some time to load while displaying the processing icon.
Here's what the query would look like
select /* your columns */
from /* your tables */
where 1 = 1
and nvl(:P1_IS_LOADED, 'N') = 'Y'
Here's what the end result looks like compared to the standard behaviour:
You can have a look at it in action in my Demo Application
Enjoy!
APEX Auth-N and Auth-Z using Oracle Identity Cloud Service (IDCS)
Purpose
As of Oracle Application Express (APEX) 18, there is a declarative method of enabling authentication (Auth-N) using Oracle Identity Cloud Service (IDCS)
This post will walk through the steps for setup of a basic Auth-N then follow up with Authorization (Auth-Z) using IDCS groups.
Prerequisites
- IDCS administration access for partner app setup
- APEX 18+ with an application for authentication setup
IDCS Trusted Application Setup
There are many options in IDCS. We will cover the very minimum first, then come back to discuss other features. To start, you will need to be logged into your IDCS administration console with access to Application settings.
Step 1. Add Trusted Application Wizard
Add and application using the IDCS dashboard
Select “Trusted Application”
Step 2. Application Naming and Login URL Information
Provide Name, Description, and optionally the APEX Application Login URL.
Click Next.
Step 3. Application Client Configure
In the wizard client step, select “Configure this application as a client now.”
Allowed Grant Types: check Authorization Code
Allow non-HTTPS URLs check box: check only if you are using unencrypted web traffic (not recommended for production)
Redirect URL: Enter the APEX URL for the authentication callback with your hostname and listener substituted. This will be the SAME for all applications using IDCS authentication served by the same APEX host.
Pattern:
http://[server]:[port]/[listener]/apex_authentication.callback
Click Next
Step 4. Complete the Wizard
No Information is needed for resources, web tier policy, or authorization. – Click Next, Next, and Finish to complete the wizard.
You will be presented with a Client ID and Client Secret. This is synonymous with a username and password for your application access. These values will be added to the APEX application credential store.
Keep this information private. This information can be retrieved again from the application definition page in IDCS.
Step 5. Activate Application
The applications can be activated and deactivated independently. After creation, the default status is deactivated.
Click “Activate” to allow the setup to be used.
The IDCS Partner application is now setup and ready to accept requests.
APEX APP Auth-N Setup
Create an application or use an existing application to setup a new authentication scheme.
APEX Social Sign-In Authentication has two major components.
Web Credentials: To store the client ID and client secret
An Authentication Scheme: To determine how IDCS will be contacted, what credentials will be used, and what information will be stored at the time of login.
Step 1. Create APEX Web Credentials
In the APEX application → Shared Components → Security → Web Credentials: Create a new entry
Name: Name that will be referenced in the authentication scheme
Authentication Type: Basic Authentication
Client ID and Client Secret: Values the IDCS registration. Client Secret will need to be entered twice for validation.
Click Create to store the values.
NOTE: The client ID and Client Secret values are white space sensitive. Make sure there are no extra values at the ends of the lines from a copy paste operation. If run in debug mode, APEX may display the following message if your client secret is contaminated with white space.
https://[idcs-server]/oauth2/v1/token request got HTTP status 401 OAuth2 Authorization error "invalid_client". Client authentication failed.
Step 2. Create Authentication Scheme
In the APEX application → Shared Components → Security → Authentication Schemes: Create a new entry
Name: <Identifiable Authentication Scheme Name>
Scheme Type: Social Sign-In
Credential Store: <Name of the APEX Web Credentials Store defined above>
Authentication Provider: OpenID Connect Provider
Discovery URL:
https://[idcs-service-url]/.well-known/openid-configuration/
Scope: profile
Username Attribute: sub
Click – Create Authentication Scheme. This will save and make the the new authentication scheme current.
Step 3. Test the Application
Run the APEX application. Note: Do not run a public page such as the default login page. APEX should redirect to the IDCS login page when requiring authentication.
Authenticate in IDCS using your username and password. Note: If your browser session is already authenticated into IDCS, the redirect back to APEX will be automatic.
Approve access to profile information. This is prompted only the first time a user is authenticated.
APEX will use the “sub” attribute for the APEX username attribute.
User should now be redirected back to APEX and identified as an authenticated user!
How Does This Work?
Here are the basic steps of how this authentication works. (paraphrased for brevity)
When APEX determines the current session is not authenticated, it will fetch the discovery URL identified as …/.well-known/openid-configuration/.
APEX redirects the browser to the “authorization_endpoint” with with attributes including an encoded “state” value to assure APEX can find the specific application it was called from.
The IDCS server will authenticate the user and verify the callback URL. IDCS will redirect the browser to the /apex_authentication.callback URL with the state value and a one time use code.
APEX will receive the code and state value and will make a call to the “token_endpoint”. This will provide APEX with a ID token and an access token.
Internally, APEX will evaluate the contents of the ID token information to determine if the requested username attribute and additional user attributes are included as defined in the Authentication Scheme. If they are not present, an additional call is made to the “userinfo_endpoint” where the attributes are again searched for.
Failure to find the “username attribute” defined in the authentication scheme will result in an error.
Null username passed to login procedure.
Contact your application administrator. Details about this incident are available via debug id #####
The information received is available during the Post-Authentication Procedure of the APEX authentication scheme.
How To Do Auth-Z
Once you have configured Auth-N in your APEX application, all users in your IDCS can now have access to your application. This may or may not be your goal.
In the case that you would like to limit to a subset of users, you can use several methods. The question is: Where do you want to maintain the list of users? As you have a fancy cloud based identity solution, let’s assume you will use it to it’s full extent.
White List – or – Lock Everyone Out
First, we need to deny everyone access to the application through IDCS. We can easily do this by updating the setting on our application. Under Authentication and Authorization, click the “Enforce Grants as Authorization” check box. Save the changes and start a new APEX session causing the application to re-authenticate.
When authenticating to your APEX app, you should be presented with a message that says:
“You are not authorized to access the app. Contact your system administrator.”
Assign a Single User
In IDCS, review the application setup and navigate to the users tab. Here, users can be added individually. Add users withe the Assign button and re-authenticate a browser with the APEX application. Users assigned to the application can authenticate as expected.
Using Groups
Groups can also be used, but require an additional step. From the IDCS Admin Console, groups need to be created first.
Once a group is created, users are assigned to that group.
A group is given access to an application. This can be done from the Group screen or the Application screen. One group can have multiple apps assigned to it and one app can have multiple groups assigned.
Demo of APEX Application Multiple Group Separation
In the case where we to change the features or behavior of an app based on the groups a user belongs to, (Example: Administrators), we will need additional information.
In this demo APEX application, we would like to show a special region for users that are a member of the APEX-IDCS-APP-ADMIN group.
APEX Preparations
The following are normal APEX development Activities.
Create authorization scheme called USER_IS_ADMIN.
Name: USER_IS_ADMIN
Scheme Type: Is In Role or Group
Type: Custom
Names: APEX-IDCS-APP-ADMIN
Create a page region to protect and assign the security authorization to “USER_IS_ADMIN”
APEX Authentication Scheme Update
Update the APEX authentication scheme to include the “groups” in the Scope and in the Additional User Attribute to cause the “userinfo_endpoint” to be called.
Add the following PL/SQL Code in the SOURCE region of the Authentication Scheme
procedure load_dynamic_groups as l_group_names apex_t_varchar2; begin -- -- add all group names to l_group_names -- for i in 1 .. apex_json.get_count('groups') loop apex_string.push ( p_table => l_group_names, p_value => apex_json.get_varchar2 ( p_path => 'groups[%d].name', p0 => i )); end loop; -- -- save group names in session -- apex_authorization.enable_dynamic_groups ( p_group_names => l_group_names ); end;
Add the load_dynamic_groups
in
Login Processing → Post-Authentication Procedure Name
Apply Changes and Test
After successful authentication, the “userinfo_endpoint” will be called and the results will be made available to the Post-Authentication procedure. The JSON results are converted to list of groups and stored in an APEX session builtin for group management. The values can be queried using the APEX_WORKSAPCE_SESSION_GROUPS view.
This is just one example of utilizing values from the “userinfo_endpoint”. Additional values can also be read and used in the APEX application.
IDCS My Apps
When in IDCS, the Application definition can be configured with a LOGIN URL. The “Display in My Apps” check box allows the application to be displayed in an IDCS dashboard list of applications. The Application Icon can be customized to distinguish the application to your users. This will allow direct navigation to your APEX application from a users IDCS dashboard and looks snazzy while doing it.
IDCS has additional features including for displaying lists of applications, requesting access to applications, and customizing the permissions page. These are all configurable based on your organizations needs. Refer to the comprehensive documentation included with Oracle Identity Cloud Service
Other Write-ups on the Authentication Topic
Header variable method setup from Oracle ATeam
IDCS to manage social logins from Oracle ATeam
Google Auth on Apex EA release from Adrian Png
Microsoft Auth on Apex EA release from Morten Braten
References
https://docs.oracle.com/en/cloud/paas/identity-cloud/blogs.html
ODTUG User Group Integrating New Tools to Be More Data Driven
Oracle Linux, Oracle VM and Tegile Storage – Limited-Time Special Pricing
For a limited time, you can receive special pricing* when purchasing Oracle Linux, Oracle VM and Western Digital’s Tegile storage.

Working together for several years through the Oracle Linux and Virtualization HCL program, the companies are helping provide customers with well-tested infrastructure software and storage solutions.
* Terms, conditions, and restrictions apply.
Oracle Linux, Oracle VM and Tegile Storage – Limited-Time Special Pricing
For a limited time, you can receive special pricing* when purchasing Oracle Linux, Oracle VM and Western Digital’s Tegile storage.

Working together for several years through the Oracle Linux and Virtualization HCL program, the companies are helping provide customers with well-tested infrastructure software and storage solutions.
* Terms, conditions, and restrictions apply.
Powerful and Effective Graph Visualization with Cytoscape and Oracle's Property Graph Database (2)
In this installment of the Cytoscape visualization for Oracle's Property Graph Database series, I am going to talk about key steps required to set up Cytoscape visualization for Oracle's Property Graph Database. These steps are the same for Oracle Spatial and Graph (OSG), and Oracle Big Data Spatial and Graph (BDSG).
Assume you are using Linux or Mac OS. The major steps are as follows.
0) Make sure you have Oracle JDK 8. 1) Download & install Cytoscape (3.2.1 or above). Assume you install Cytoscape under /Applications/Cytoscape_v3.6.1 2) Start Cytoscape to initialize. Make sure the following directory is created ~/CytoscapeConfiguration Once the above directory is created, quit Cytoscape. 3) cd /Applications/Cytoscape_v3.6.1 4) Unzip the Cytoscape plugin for OSG (or BDSG) in the above directory. A new sub directory will be created. The directory name is oracle_property_graph_cytoscape/ if you are using Cytoscape plugin for Oracle Database. 5) Copy propertyGraphSupport*.jar from the jar/ in the above sub directory into ~/CytoscapeConfiguration/3/apps/installed/ 6) Copy propertyGraph.properties from the jar/ in the above sub directory into ~/CytoscapeConfiguration To customize this configuration, follow the usage guide (a PDF file you can find in the Cytoscape plugin zip file). 7) kick off Cytoscape by running the following under /Applications/Cytoscape_v3.6.1 sh ./startCytoscape.sh NOTE: it is important to use startCytoscape.sh to start the visualization. Do not use the original cytoscape.sh because you will not see any property graph related functions (highlighted below).
Cheers,
Zhe
References
[1] http://www.oracle.com/technetwork/database/options/spatialandgraph/downloads/index-156999.html
[2] Oracle Big Data Spatial and Graph Downloads
Powerful and Effective Graph Visualization with Cytoscape and Oracle's Property Graph Database (2)
In this installment of the Cytoscape visualization for Oracle's Property Graph Database series, I am going to talk about key steps required to set up Cytoscape visualization for Oracle's Property Graph Database. These steps are the same for Oracle Spatial and Graph (OSG), and Oracle Big Data Spatial and Graph (BDSG).
Assume you are using Linux or Mac OS. The major steps are as follows.
0) Make sure you have Oracle JDK 8. 1) Download & install Cytoscape (3.2.1 or above). Assume you install Cytoscape under /Applications/Cytoscape_v3.6.1 2) Start Cytoscape to initialize. Make sure the following directory is created ~/CytoscapeConfiguration Once the above directory is created, quit Cytoscape. 3) cd /Applications/Cytoscape_v3.6.1 4) Unzip the Cytoscape plugin for OSG (or BDSG) in the above directory. A new sub directory will be created. The directory name is oracle_property_graph_cytoscape/ if you are using Cytoscape plugin for Oracle Database. 5) Copy propertyGraphSupport*.jar from the jar/ in the above sub directory into ~/CytoscapeConfiguration/3/apps/installed/ 6) Copy propertyGraph.properties from the jar/ in the above sub directory into ~/CytoscapeConfiguration To customize this configuration, follow the usage guide (a PDF file you can find in the Cytoscape plugin zip file). 7) kick off Cytoscape by running the following under /Applications/Cytoscape_v3.6.1 sh ./startCytoscape.sh NOTE: it is important to use startCytoscape.sh to start the visualization. Do not use the original cytoscape.sh because you will not see any property graph related functions (highlighted below).
Cheers,
Zhe
References
[1] http://www.oracle.com/technetwork/database/options/spatialandgraph/downloads/index-156999.html
[2] Oracle Big Data Spatial and Graph Downloads
What's New with Oracle Certification - May
Keep informed with new exams released into production,
get information on current promotions, and learn about new program announcements. New Exams and Certifications
Oracle Mobile Cloud Enterprise 2018 Associate Developer | 1Z0-927: This certification covers implementation topics of related Oracle Paas Services such as: Visual Builder Cloud Service, Java Cloud Service, Developer Cloud Service, Application Container Cloud Service, and Container Native Apps. This certification validates understanding of the Application Development portfolio and capacity to configure the services.
Oracle Management Cloud 2018 Associate | 1Z0-930: Passing this exams demonstrates the skills and knowledge to architect and implement Oracle Management Cloud. This individual can configure Application Performance Monitoring, Oracle Infrastructure Monitoring, Oracle Log Analytics, Oracle IT Analytics, Oracle Orchestration, Oracle Security Monitoring and Analytics and Oracle Configuration and Compliance.
Oracle Cloud Security 2018 Associate | 1Z0-933: Passing this exam validates understanding of Oracle Cloud Security portfolio and capacity to configure the services. This certification covers topics such as: Identity Security Operations Center Framework, Identity Cloud Service, CASB Cloud Service, Security Monitoring and Analytics Cloud Service, Configuration and Compliance Service, and services Architecture and Deployment.
Oracle Data Integration Platform Cloud 2018 Associate | 1Z0-935: Passing this exam validates understanding of Oracle Application Integration to implement the service. This certification covers topics such as: Oracle Cloud Application Integration basics, Application Integration: Oracle Integration Cloud (OIC), Service-Oriented Architecture Cloud Service (SOACS), Integration API Platform Cloud Service, Internet of Things - Cloud Service (IOTCS), and Oracle's Process Cloud Service.
Oracle Analytics Cloud 2018 Associate | 1Z0-936: Passing this exam provides knowledge required to perform provisioning, build dimensional modelling and create data visualizations. The certified professional can use Advanced Analytics capabilities, create a machine learning model and configure Oracle Analytics Cloud Essbase.
Explore All Certifications
How Does the DBA Keep Their Role Relevant?
By having the skills to meet the new demands for business optimization along with a reputation of continuous learning and improvement. Check out how training + certification keeps a DBA relevant. Read full article.
Benefits of Upgrading Your OCA certification to Database 12c Release 2
Building upon the competencies in the Oracle Database 12c OCA certification, the Oracle Certified Professional (OCP) for Oracle Database 12c includes the advanced knowledge and skills required of top-performing database administrators which includes development and deployment of backup, recovery and Cloud computing strategies. Find out how to upgrade with this exam!
What's New with Oracle Certification - May
Keep informed with new exams released into production,
get information on current promotions, and learn about new program announcements. New Exams and Certifications
Oracle Mobile Cloud Enterprise 2018 Associate Developer | 1Z0-927: This certification covers implementation topics of related Oracle Paas Services such as: Visual Builder Cloud Service, Java Cloud Service, Developer Cloud Service, Application Container Cloud Service, and Container Native Apps. This certification validates understanding of the Application Development portfolio and capacity to configure the services.
Oracle Management Cloud 2018 Associate | 1Z0-930: Passing this exams demonstrates the skills and knowledge to architect and implement Oracle Management Cloud. This individual can configure Application Performance Monitoring, Oracle Infrastructure Monitoring, Oracle Log Analytics, Oracle IT Analytics, Oracle Orchestration, Oracle Security Monitoring and Analytics and Oracle Configuration and Compliance.
Oracle Cloud Security 2018 Associate | 1Z0-933: Passing this exam validates understanding of Oracle Cloud Security portfolio and capacity to configure the services. This certification covers topics such as: Identity Security Operations Center Framework, Identity Cloud Service, CASB Cloud Service, Security Monitoring and Analytics Cloud Service, Configuration and Compliance Service, and services Architecture and Deployment.
Oracle Data Integration Platform Cloud 2018 Associate | 1Z0-935: Passing this exam validates understanding of Oracle Application Integration to implement the service. This certification covers topics such as: Oracle Cloud Application Integration basics, Application Integration: Oracle Integration Cloud (OIC), Service-Oriented Architecture Cloud Service (SOACS), Integration API Platform Cloud Service, Internet of Things - Cloud Service (IOTCS), and Oracle's Process Cloud Service.
Oracle Analytics Cloud 2018 Associate | 1Z0-936: Passing this exam provides knowledge required to perform provisioning, build dimensional modelling and create data visualizations. The certified professional can use Advanced Analytics capabilities, create a machine learning model and configure Oracle Analytics Cloud Essbase.
Explore All Certifications
How Does the DBA Keep Their Role Relevant?
By having the skills to meet the new demands for business optimization along with a reputation of continuous learning and improvement. Check out how training + certification keeps a DBA relevant. Read full article.
Benefits of Upgrading Your OCA certification to Database 12c Release 2
Building upon the competencies in the Oracle Database 12c OCA certification, the Oracle Certified Professional (OCP) for Oracle Database 12c includes the advanced knowledge and skills required of top-performing database administrators which includes development and deployment of backup, recovery and Cloud computing strategies. Find out how to upgrade with this exam!
The Most Important Stop on Your Java Journey
Howdy, Pardner. Have you moseyed over to JavaRanch lately? Pull up a stool at the OCJA or OCJP Wall of Fame and tell your tale or peruse the tales of others.
Ok - I'm not so great at the cowboy talk, but if you're serious about a Java career and haven't visited JavaRanch, you are missing out!
JavaRanch, a self-proclaimed "friendly place for Java greenhorns [beginners]" was created in 1997 by Kathy Sierra, co-author of at least 5 Java guides for Oracle Press. The ranch was taken over in subsequent years by Paul Wheaten who continues to run this space today.
In addition to a robust collection of discussion forums about all things Java, JavaRanch provides resources to learn and practice Java, book recommendations, and resources to create your first Java program and test your Java skills.
One of our favorite features of JavaRanch remains the Walls of Fame! This is where you can read the personal experiences of other candidates certified on Java. Learn from their processes and their mistakes. Be inspired by their accomplishments. Share your own experience.
Visit the Oracle Certified Java Associate Wall of Fame
Visit the Oracle Certified Java Professional Well of Fame
Get the latest Java Certification from Oracle
Oracle Certified Associate, Java SE 8 Programmer
Oracle Certified Professional, Java SE 8 Programmer
Oracle Certified Professional, Java SE 8 Programmer (upgrade from Java SE 7)
Oracle Certified Professional, Java SE 8 Programmer (upgrade from Java SE 6 and all prior versions)
Related Content
The Most Important Stop on Your Java Journey
Howdy, Pardner. Have you moseyed over to JavaRanch lately? Pull up a stool at the OCJA or OCJP Wall of Fame and tell your tale or peruse the tales of others.
Ok - I'm not so great at the cowboy talk, but if you're serious about a Java career and haven't visited JavaRanch, you are missing out!
JavaRanch, a self-proclaimed "friendly place for Java greenhorns [beginners]" was created in 1997 by Kathy Sierra, co-author of at least 5 Java guides for Oracle Press. The ranch was taken over in subsequent years by Paul Wheaten who continues to run this space today.
In addition to a robust collection of discussion forums about all things Java, JavaRanch provides resources to learn and practice Java, book recommendations, and resources to create your first Java program and test your Java skills.
One of our favorite features of JavaRanch remains the Walls of Fame! This is where you can read the personal experiences of other candidates certified on Java. Learn from their processes and their mistakes. Be inspired by their accomplishments. Share your own experience.
Visit the Oracle Certified Java Associate Wall of Fame
Visit the Oracle Certified Java Professional Well of Fame
Get the latest Java Certification from Oracle
Oracle Certified Associate, Java SE 8 Programmer
Oracle Certified Professional, Java SE 8 Programmer
Oracle Certified Professional, Java SE 8 Programmer (upgrade from Java SE 7)
Oracle Certified Professional, Java SE 8 Programmer (upgrade from Java SE 6 and all prior versions)
Related Content
Modern Customer Experience 2018 was Legendary
During his keynote at Modern Customer Experience 2018, Des Cahill, Head CX Evangelist, stated that CX should stand for Continuous Experimentation. He encouraged 4,500 enthusiastic marketers, customer service, sales, and commerce professional us to try new strategies, to take risks, strive to be remarkable, and triumph through sheer determination.
Casey Neistat echoed Des, challenging us to “do what you can’t,” while best-selling author Cheryl Strayed inspired us to look past our fears and be brave. “Courage isn’t success,” she reminded us, “it’s doing what’s hard regardless of the outcome.”
CX professionals today face numerous challenges: the relentless rise of customer expectations, the accelerating pace of innovation, evolving regulations like GDPR, increase ROI, plus the constant pressure to raise the bar. Modern Customer Experience not only inspired attendees to become the heroes of their organization, but it armed each with the tools to do so.
If you missed Carolyne-Matseshe Crawford, VP of Fan Experience at Fanatics talk about how her company’s culture pervades the entire customer experience, or how Magen Hanrahan VP of Product Marketing at Kraft Heinz is obsessed with data driven marketing tactics, give them a watch. And don’t miss Comcast’s Executive VP, Chief Customer Experience Officer, Charlie Herrin, who wants to build proactive customer experience and dialogue into Comcast’s products themselves with artificial intelligence.
The Modern Customer Experience X Room showcased CX innovation, like augmented and virtual reality, artificial intelligence, and the Internet of Things. But it wasn’t all just mock-ups and demos, a Mack Truck, a Yamaha motorcycle, and an Elgin Street Sweeper were on display, showcasing how Oracle customers put innovation to use to create legendary customer experiences.
Attendees were able to let off some steam during morning yoga and group runs. They relived the 90s with Weezer during CX Fest, and our Canine Heroes from xxxxx were a highlight of everyone’s day.
But don’t just take it from us. Here’s what a few of our attendees had to say about the event.
“Modern Customer Experience gives me the ability to learn about new products on the horizon, discuss challenges, connect with other MCX participants, learn best practices and understand we’re not alone in our journey.” – Matt Adams, Sales Cloud Manager, ArcBest
“Modern Customer Experience really allows me to do my job more effectively. Without it, I don’t know where I would be! It’s the best conference of the year.” – Joshua Parker, Digital Marketing and Automation Manager, Rosetta Stone
We’re still soaking it all in. You can watch all the highlights from Modern Customer Experience keynotes on YouTube, and peruse the event’s photo slideshow. Don’t forget to share your images on social media, with #ModernCX and sign up for alerts when registration for Modern Customer Experience 2019 opens!
Modern Customer Experience 2018 was Legendary
During his keynote at Modern Customer Experience 2018, Des Cahill, Head CX Evangelist, stated that CX should stand for Continuous Experimentation. He encouraged 4,500 enthusiastic marketers, customer service, sales, and commerce professional us to try new strategies, to take risks, strive to be remarkable, and triumph through sheer determination.
Casey Neistat echoed Des, challenging us to “do what you can’t,” while best-selling author Cheryl Strayed inspired us to look past our fears and be brave. “Courage isn’t success,” she reminded us, “it’s doing what’s hard regardless of the outcome.”
CX professionals today face numerous challenges: the relentless rise of customer expectations, the accelerating pace of innovation, evolving regulations like GDPR, increase ROI, plus the constant pressure to raise the bar. Modern Customer Experience not only inspired attendees to become the heroes of their organization, but it armed each with the tools to do so.
If you missed Carolyne-Matseshe Crawford, VP of Fan Experience at Fanatics talk about how her company’s culture pervades the entire customer experience, or how Magen Hanrahan VP of Product Marketing at Kraft Heinz is obsessed with data driven marketing tactics, give them a watch. And don’t miss Comcast’s Executive VP, Chief Customer Experience Officer, Charlie Herrin, who wants to build proactive customer experience and dialogue into Comcast’s products themselves with artificial intelligence.
The Modern Customer Experience X Room showcased CX innovation, like augmented and virtual reality, artificial intelligence, and the Internet of Things. But it wasn’t all just mock-ups and demos, a Mack Truck, a Yamaha motorcycle, and an Elgin Street Sweeper were on display, showcasing how Oracle customers put innovation to use to create legendary customer experiences.
Attendees were able to let off some steam during morning yoga and group runs. They relived the 90s with Weezer during CX Fest, and our Canine Heroes from xxxxx were a highlight of everyone’s day.
But don’t just take it from us. Here’s what a few of our attendees had to say about the event.
“Modern Customer Experience gives me the ability to learn about new products on the horizon, discuss challenges, connect with other MCX participants, learn best practices and understand we’re not alone in our journey.” – Matt Adams, Sales Cloud Manager, ArcBest
“Modern Customer Experience really allows me to do my job more effectively. Without it, I don’t know where I would be! It’s the best conference of the year.” – Joshua Parker, Digital Marketing and Automation Manager, Rosetta Stone
We’re still soaking it all in. You can watch all the highlights from Modern Customer Experience keynotes on YouTube, and peruse the event’s photo slideshow. Don’t forget to share your images on social media, with #ModernCX and sign up for alerts when registration for Modern Customer Experience 2019 opens!
Oracle's No-Cost Platinum-Level Support Is the New Baseline in the Cloud Market
Companies may give up their servers, storage, and entire data centers when they move to the cloud, but their need for support services doesn’t go away, it changes. Recognizing a growing need for enterprise-class support in the cloud, Oracle is making its Platinum-level support services available at no additional cost to all customers of Oracle Fusion software-as-a-service applications.
“Our objective is to put out a service capability that is simply the best—bar none,” said Oracle CEO Mark Hurd, in announcing that a range of support services would be available for Oracle Fusion enterprise resource planning, enterprise performance management, human capital management, supply chain, manufacturing, and sales and service cloud applications.
The SaaS support services include 24/7 rapid-response technical support, proactive technical monitoring, success planning, end-user adoption guidance, and education resources.
“Most of our customers are going to cloud,” Hurd said in a briefing with journalists at Oracle’s headquarters in Redwood Shores, California. As that happens, he said, “it’s important for someone in the industry, particularly an industry leader in these mission-critical applications, to take a position” on what level of service that transition demands.
“SaaS application support offerings need to become more agile and responsive,” Hurd added. “We need to provide our SaaS customers with everything they need for rapid, low-cost implementations and a successful rollout to their users.”
Catherine Blackmore, Oracle group vice president of North America Customer Success, said Oracle will also offer new advanced services, including dedicated support and certified expertise, for customers that need a higher level of support. “We have a shared interest in our customers’ success, so we’re going above and beyond to ensure our customers have everything they need to succeed,” she said.
Cloud Levels the Playing Field
Oracle also announced the names of first-time cloud customers and others that are expanding their use of Oracle Cloud services. They include Alsea, Broadcom, Exelon, Gonzaga University, Heineken Urban Polo, Providence St. Joseph Health, Sinclair Broadcast Group, and T-Mobile US.
In a Q&A with the journalists, Hurd was asked about his outlook for SaaS adoption outside of the United States and, in particular, in the Latin America region. He said modern cloud applications can be “game changing” for businesses in places where outdated software applications are still the norm.
“You don’t need armies of experts and system integrators,” Hurd said.
Oracle develops thousands of features that are made available regularly to its SaaS application customers. “That’s a feature stream you don’t have to manage from a data center that you don’t have to operate,” Hurd said.
Self-Driving Technology
Hurd pointed to Oracle’s development of autonomous technologies, including the recently introduced Oracle Autonomous Data Warehouse Cloud Service, as another big area of focus at the company. “It gets upgraded, optimized, secured, patched, and tuned, all automatically without any human intervention,” he said.
As the next step in the delivery of autonomous cloud services, Oracle announced the availability of three new Oracle Cloud Platform services with built-in artificial intelligence and machine learning algorithms: Oracle Autonomous Analytics Cloud, Oracle Autonomous Integration Cloud, and Oracle Autonomous Visual Builder Cloud.
Oracle's No-Cost Platinum-Level Support Is the New Baseline in the Cloud Market
Companies may give up their servers, storage, and entire data centers when they move to the cloud, but their need for support services doesn’t go away, it changes. Recognizing a growing need for enterprise-class support in the cloud, Oracle is making its Platinum-level support services available at no additional cost to all customers of Oracle Fusion software-as-a-service applications.
“Our objective is to put out a service capability that is simply the best—bar none,” said Oracle CEO Mark Hurd, in announcing that a range of support services would be available for Oracle Fusion enterprise resource planning, enterprise performance management, human capital management, supply chain, manufacturing, and sales and service cloud applications.
The SaaS support services include 24/7 rapid-response technical support, proactive technical monitoring, success planning, end-user adoption guidance, and education resources.
“Most of our customers are going to cloud,” Hurd said in a briefing with journalists at Oracle’s headquarters in Redwood Shores, California. As that happens, he said, “it’s important for someone in the industry, particularly an industry leader in these mission-critical applications, to take a position” on what level of service that transition demands.
“SaaS application support offerings need to become more agile and responsive,” Hurd added. “We need to provide our SaaS customers with everything they need for rapid, low-cost implementations and a successful rollout to their users.”
Catherine Blackmore, Oracle group vice president of North America Customer Success, said Oracle will also offer new advanced services, including dedicated support and certified expertise, for customers that need a higher level of support. “We have a shared interest in our customers’ success, so we’re going above and beyond to ensure our customers have everything they need to succeed,” she said.
Cloud Levels the Playing Field
Oracle also announced the names of first-time cloud customers and others that are expanding their use of Oracle Cloud services. They include Alsea, Broadcom, Exelon, Gonzaga University, Heineken Urban Polo, Providence St. Joseph Health, Sinclair Broadcast Group, and T-Mobile US.
In a Q&A with the journalists, Hurd was asked about his outlook for SaaS adoption outside of the United States and, in particular, in the Latin America region. He said modern cloud applications can be “game changing” for businesses in places where outdated software applications are still the norm.
“You don’t need armies of experts and system integrators,” Hurd said.
Oracle develops thousands of features that are made available regularly to its SaaS application customers. “That’s a feature stream you don’t have to manage from a data center that you don’t have to operate,” Hurd said.
Self-Driving Technology
Hurd pointed to Oracle’s development of autonomous technologies, including the recently introduced Oracle Autonomous Data Warehouse Cloud Service, as another big area of focus at the company. “It gets upgraded, optimized, secured, patched, and tuned, all automatically without any human intervention,” he said.
As the next step in the delivery of autonomous cloud services, Oracle announced the availability of three new Oracle Cloud Platform services with built-in artificial intelligence and machine learning algorithms: Oracle Autonomous Analytics Cloud, Oracle Autonomous Integration Cloud, and Oracle Autonomous Visual Builder Cloud.
How Blockchain Will Disrupt the Insurance Industry
The insurance industry relies heavily on the notion of trust among transacting parties. For example, when you go to buy car insurance you get asked for things like your zip code, name, age, daily mileage, and make & model of your car. Other than, maybe, the make & model of your car you can pretty much falsify other information about yourself for a better insurance quote. Underwriters trust that you are providing the correct information, which is one of the many risks in the underwriting business.
Enterprise blockchain platforms such as one from Oracle essentially enables trust-as-a-service in such interactions. Participants (insurer and insured) need to come together to do business, but they do not necessarily trust each other. Blockchain provides a scalable mechanism to securely and easily enable trust in such scenarios. There are 4 key properties of Blockchain that enable trust-as-a-service:
- Transparency of digital events and transactions it manages,
- Immutability of records stored on the blockchain. through append-only time-stamped and hashed records,
- Security and assurance that records stored on blockchain aren't compromised through built-in consensus and encryption mechanisms,
- Privacy through cryptography
Blockchain can be a good solution for a number of insurance use cases such as:
- Reducing frauds in underwriting and claims by validating data from customers and suppliers in the value chain
- Reducing claims by offering tokenized incentives to promote safer driving behavior by capturing data from insured entities like motor vehicles
- Enabling pay-per-mile billing for insurance by keeping verifiable records of miles traveled
- And, in the not so distant future, using blockchain to determine liability in case of an accident between two autonomous vehicles by using blockchain to manage timestamped immutable records of decisions made by deep-learning models from both autonomous vehicles right before the accident.
Besides these use cases, blockchain has potential to eliminate intermediaries, improve transparency of records, eliminate manual paperwork, and error-prone processes, which together can deliver orders of magnitude improvement in operational efficiency for businesses. Of course, there are other types of insurance such as healthcare, reinsurance, catastrophic events insurance, property and casualty insurance, which would have some unique flavor of use cases but they would similarly benefit from blockchain to reduce risk and improve business efficiency.
There is no question that blockchain can, potentially, be a disruptive force in the insurance industry. It would have to overcome legal and regulatory barriers before we see mass adoption of blockchain among the industry participants.
If you are working on an interesting project related to the use of Blockchain for insurance industry feel free to get in touch by leaving a comment or contact us through social media or Oracle sales rep. We’d be glad to help you connect with our subject matter experts and with your industry peers who may be working on similar use cases with Oracle. For more information on Oracle Blockchain, please visit Oracle Blockchain home pages here, and here.
How Blockchain Will Disrupt the Insurance Industry
The insurance industry relies heavily on the notion of trust among transacting parties. For example, when you go to buy car insurance you get asked for things like your zip code, name, age, daily mileage, and make & model of your car. Other than, maybe, the make & model of your car you can pretty much falsify other information about yourself for a better insurance quote. Underwriters trust that you are providing the correct information, which is one of the many risks in the underwriting business.
Enterprise blockchain platforms such as one from Oracle essentially enables trust-as-a-service in such interactions. Participants (insurer and insured) need to come together to do business, but they do not necessarily trust each other. Blockchain provides a scalable mechanism to securely and easily enable trust in such scenarios. There are 4 key properties of Blockchain that enable trust-as-a-service:
- Transparency of digital events and transactions it manages,
- Immutability of records stored on the blockchain. through append-only time-stamped and hashed records,
- Security and assurance that records stored on blockchain aren't compromised through built-in consensus and encryption mechanisms,
- Privacy through cryptography
Blockchain can be a good solution for a number of insurance use cases such as:
- Reducing frauds in underwriting and claims by validating data from customers and suppliers in the value chain
- Reducing claims by offering tokenized incentives to promote safer driving behavior by capturing data from insured entities like motor vehicles
- Enabling pay-per-mile billing for insurance by keeping verifiable records of miles traveled
- And, in the not so distant future, using blockchain to determine liability in case of an accident between two autonomous vehicles by using blockchain to manage timestamped immutable records of decisions made by deep-learning models from both autonomous vehicles right before the accident.
Besides these use cases, blockchain has potential to eliminate intermediaries, improve transparency of records, eliminate manual paperwork, and error-prone processes, which together can deliver orders of magnitude improvement in operational efficiency for businesses. Of course, there are other types of insurance such as healthcare, reinsurance, catastrophic events insurance, property and casualty insurance, which would have some unique flavor of use cases but they would similarly benefit from blockchain to reduce risk and improve business efficiency.
There is no question that blockchain can, potentially, be a disruptive force in the insurance industry. It would have to overcome legal and regulatory barriers before we see mass adoption of blockchain among the industry participants.
If you are working on an interesting project related to the use of Blockchain for insurance industry feel free to get in touch by leaving a comment or contact us through social media or Oracle sales rep. We’d be glad to help you connect with our subject matter experts and with your industry peers who may be working on similar use cases with Oracle. For more information on Oracle Blockchain, please visit Oracle Blockchain home pages here, and here.