.:MattTopper.com:.

  • About Me
  • Links
  • Papers and Presentations

Discoverer with 10gR2 Database

Posted by Topper on 5/4/2006
Posted in: Discoverer, Oracle. Leave a Comment

I just had to do a quick demo with the default Discoverere Video Store tutorial and ran into a bit of a problem with the create scripts that I thought I’d warn the world about.

Basically in the new database release 10gR2, they no longer support setting a QUOTA on temporary tablespaces. So instead of tossing a warning and letting a script continue they are throwing an ORA-30041 error. Many 3rd party and even some of Oracle’s tools (Discoverer) have this built into the create user scripts.

Heres the steps that led me to the problem and also how I worked around it. Hopefully this will save some others from the pain in the future.

Step 1: Connect to the database as a database user and create an EUL now
Discoverer Connection

Step 2: I selected Yes to the previous screen and selected the create EUL button.
Create EUL

Step 3: I selected to create a new user
Create New User

This is where the Oracle scripts need to be changed, and since they are embedded into Discoverer (from what I could tell), I am unable to change them. But the error didn’t pop up until later.

Step 4: I selected the Users tablespace for the default and TEMP for the temporary.
Select Tablespaces

Step 5: The errror
The Error

So the fix was pretty simple, I just went into the database and dropped the user I had just created and ran the following script to create the user by hand. This is what I do normally but for some reason was being lazy today.


CREATE USER "DISCO_EUL" IDENTIFIED BY "DISCO_EUL"
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
PROFILE DEFAULT;
GRANT CREATE DATABASE LINK TO DISCO_EUL;
GRANT CREATE MATERIALIZED VIEW TO DISCO_EUL;
GRANT CREATE PROCEDURE TO DISCO_EUL;
GRANT CREATE SEQUENCE TO DISCO_EUL;
GRANT CREATE SESSION TO DISCO_EUL;
GRANT CREATE SYNONYM TO DISCO_EUL;
GRANT CREATE TABLE TO DISCO_EUL;
GRANT CREATE TRIGGER TO DISCO_EUL;
GRANT CREATE TYPE TO DISCO_EUL;
GRANT CREATE VIEW TO DISCO_EUL;
GRANT GLOBAL QUERY REWRITE TO DISCO_EUL;
GRANT QUERY REWRITE TO DISCO_EUL;
GRANT CREATE SEQUENCE TO DISCO_EUL;
GRANT CREATE SESSION TO "DISCO_EUL";
GRANT CREATE USER TO DISCO_EUL;
GRANT GRANT ANY PRIVILEGE TO DISCO_EUL;
GRANT ALTER USER TO DISCO_EUL;
GRANT "CONNECT" TO "DISCO_EUL";
GRANT "RESOURCE" TO "DISCO_EUL";

So I restarted the process to create the EUL, instead this time I selected to user a user that was already created.
Working User

And of course, this time it was successful…
Success

When I went to install the VIDEO5 data I received the same error and used the same work around to solve the problem. OK, thats enough for today.

Also, I haven’t forgotten to analyze the data differences between the two geocoders, I just realized they were in 2 different coordinate systems and I’m putting together a bigger article on how to do the conversions.

Oracle Spatial and GEOCODER.us “Free” Geocoding Service

Posted by Topper on 4/24/2006
Posted in: Discoverer, General, MapViewer / GIS, Oracle. 1 comment

In my “Spatially Enabling Your Oracle Business Intelligence Solution” presentation today a question was asked about free geocoding services. The Navteq and TeleAtlas spatial data is expensive and there are some free alternatives out there. One of those options for US data is the website geocoder.us . The data is gathered from the US census data and is definitely not as accurate as the commercial providers, it does an extremely good job at making it easy to geocode your data and is free for non-commercial purposes. Thats right FREE!!! If you do decide to use it for commercial purposes their pricing is more than reasonable in my opinion, as of today they charge $50 US Dollars to geocode 20,000 addresses. There developer documentation is available online and they provide four different web service interfaces to access the data (http://geocoder.us/help/). As promised, here is a simple function that uses their CSV webservice to geocode an address and return it as the Oracle Spatial native datatype sdo_geometry.

CREATE OR REPLACE FUNCTION geocode_address_geocoder_us (
street varchar2 --Includes street number and street name
,city varchar2 --Name of the city for the address
,state varchar2 --US Standard Postal Abbreviation for the state
-- Official List: http://www.usps.com/ncsc/lookups/abbr_state.txt
,zipcode varchar2 --Either the 5 digit or zip+4 notation for the address
)
RETURN sdo_geometry IS

l_geocoder_url varchar2(100) := 'http://rpc.geocoder.us/service/csv?address='; --URL to the csv geocoder.us interface
l_returned_address varchar2(2000); --String of the returned URL from geocoder.us
l_address_not_found varchar2(100) := 'couldn''t find this address! sorry'; --The error string that is returned
-- if an address is not found
l_not_found_position integer; -- Position of not found string
l_latitude varchar2(50);
l_longitude varchar2(50);
l_geo_location sdo_geometry; --Geographical location
l_srid number := '8265'; --The SRID is the Oracle Spatial Projection code for NAD83,
-- the projection that all US census data is in
BEGIN
--Make a call to the csv webservice
l_returned_address := utl_http.request( l_geocoder_url || urlencode( street || ',' || city || ', ' || state || ' ' || zipcode) );

--Check the return string to see if the address was found
l_not_found_position := instr(l_returned_address, l_address_not_found, 1, 1);

--If we find the address not found string we raise a NO_DATA_FOUND exception
if ( l_not_found_position > 0 ) then
RAISE NO_DATA_FOUND;
else
--The data returned is a comma separated list

--The first element returned in the string is the latitude of the address, so we substring out the element
l_latitude := substr(l_returned_address, 0, instr(l_returned_address, ',', 1, 1) - 1);

--The second element returned in the string is the longitude of the address, so we substring out the element
l_longitude := substr(l_returned_address, instr(l_returned_address, ',', 1, 1) + 1, instr(l_returned_address, ',', 1, 1));

--We not create the point location for the address we have geocoded
l_geo_location := sdo_geometry (2001, l_srid, sdo_point_type (l_longitude, l_latitude, null), null, null);

RETURN l_geo_location;
end if;

EXCEPTION
WHEN NO_DATA_FOUND THEN
RAISE;
WHEN OTHERS THEN
RAISE;
END geocode_address_geocoder_us;
/

The code uses a function from an askTom article to urlencode the query string sent to the geocoder.us webservice. The function is available here: http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:10444643777538. This function is included inside of HTMLDB and Oracle Portal, but I can’t assume your using those products so there you have it. The geocoder.us service will attempt to make changes to the address if it doesn’t follow the address listed in the census data. I will warn that this function does not take into account any of those changes to the address that the geocoder returns. I can write a procedure, if need be, that takes that into account if anyone needs one.

Tomorrow night, I’m going to do some analysis to compare how close the geocoder.us data matches the free geocoder data available from Navteq for San Francisco.

Oracle Portal Issue

Posted by Topper on 11/16/2005
Posted in: Oracle, Portal. Leave a Comment

I’ve been at a customer developing a lot of custom menus based on portal security. Portal has a few views in it that sets up all of the page/component security for users that come in really handy. The problem is that each time the view is called it calls an external function to get the current user. This makes it a pain if you are trying to debug a statement in SQL*Plus. After a bunch of headaches I found that if I execute the statement execute WWCTX_API.SET_CONTEXT(‘{oid username}’,'{oid password}’);
I can execute queries agaist the WWSBR_ALL_FOLDERS and WWV_USER_CORNERS tables until my hearts content and get the information I need. Ahh…one less pain of dealing with portal and pl/sql, my day is complete.

BTW, the error I was getting is an ORA-06512, if your getting the same error number this might be the trick.

Side Project

Posted by Topper on 10/13/2005
Posted in: General, Music, Technology. Leave a Comment

So I’ve had this idea for a side project for over a year now and haven’t had the drive to really work on it. Well, I’ve decided to start it up finally and get some things rolling. But first I need to decide on a logo, so here they are, add some comments and vote away:

#1

– or –

#2

If your a big tech nerd like me you’ll know exactly what I’m going to try and do, if you want email me and help me out.

The Coolest MP3 Player Ever

Posted by Topper on 10/13/2005
Posted in: Technology. Leave a Comment

I bookmarked this a long time ago and even joined the mailing list hoping to get one. What is it you ask? Only the coolest Mp3 player known to man, the Pez MP3 Player. As much money as an iPod Shuffle, but with the beautiful small form factor of a Pez dispenser.

PEZ Pal Boy character.
512 mb (holds around 120 songs)
USB 2.0
Plays MP3, WMA, WMA w/DRM
Compatible with Mac OS X
Compatible with Windows 98, ME, 2000, XP
Compatible with subscription services like Rhapsody To Go
Uses 1 AAA battery
Plug and Play
Drag and Drop
Can be used as a USB drive to store data files
Repeat play or Random Play
Store music in nested directories
Comes pre-loaded with great indie music
Lanyard hook
Comes with earbud headphones and USB cable

The coolest part is that the head is just like any other Pez head and its interchangable with the normal Pez heads. You know my birthday is coming up…

UPDATE: My hint worked, I ended up getting one for my birthday.

Everyone must be busy with Oracle World

Posted by Topper on 9/18/2005
Posted in: General. Leave a Comment

The Orablogs posts have been really lacking this weekend, everyone must be busy traveling for Oracle World or touring the city. I’m guessing the blogging will get much stronger through the end of the week.

Google Maps and GTOs

Posted by Topper on 8/22/2005
Posted in: MapViewer / GIS, Technology. Leave a Comment

So I’ve been looking for a good excuse to play with the google maps API a little bit. After all I haven’t touched spatial in a while and its supposed to be my specialty. (Note to self, you still need to setup that 10.1.2 database with all the new Oracle spatial features and get playing) Anyways, I decided to throw together a little site that would allow the members of LS1GTO to put down where they live, their handle on the boards and their year and color. I geocoded all of the cities on the 2000 census, I would have done it at the zip code level, but I couldn’t find a good dataset. The google maps api is pretty slick and really easy to use. It definitely does start to get bogged down when you have many members your looking to map. Does anyone have any good free resources of Oracle spatial data for the US? I’d like to do this in mapviewer and spatial, largely due to the performance benefits, but I can’t find a decent dataset. I might just make my own, it sure would be cool if somone would but out a free Oracle/Navteq competitor to google maps using the mapviewer APIs (anyone from Oracle listening, I’ll write the code, you just provide the hardware and data). Anyways, heres the quick and dirty version of the site:

https://matttopper.com/gto-maps/

Kyle Riabko

Posted by Topper on 6/21/2005
Posted in: Music. Leave a Comment

Ever buy one of those CDs that you just can’t stop listening too? I spent over $200 at Aware store a couple weeks ago and bought like 18 CDs, out of all of them I just can’t stop listening to the Kyle Riabko – Before I Speak CD. There is just something different about it that keeps me listening. I highly suggest you go pick it up and have a listen.

Waverunner is sold

Posted by Topper on 6/21/2005
Posted in: General. Leave a Comment

Well, I finally sold the waverunner, I shouldn’t say finally since it was only up for sale for 24 hours and the first guy who looked at it bought it. Just one step closer to moving down to Alexandria.

BIRT

Posted by Topper on 1/10/2005
Posted in: General. Leave a Comment

I always wondered why there has never been a large scale open source BI and Reporting Tools. I know its a huge undertaking, to cover everything under the BI umbrella, while attempting to remain open and extendable is definitely a challenge. Well from the depth of Actuate and Eclipse comes:
BIRT – Business Intelligence and Reporting Tools

I’ve read through all their docs, and it really looks like these guys have their act together, everything I’ve been asking “other vendors” for. Make it standards base, open it up, make it extendable, and allow me to customize the hell out of it for my needs. Let me design custom report types and add my own.

I love the fact that it stores the report definitions in XML, allowing me to transform the documents in any way I want if I upgrade in the future or want to add standard headers, footers, etc. What I do wonder is how they plan on storing the reports in a clustered environment, will they mount a single file system across all of the application servers? Will it be part of a deployment tool that deploys individual copies to all of the servers? Or will it use a database for storing it in the backend? Each has their advantages and disadvantages; this is something we’ve always struggled with deciding on.

Also it looks like their presentation services will be open. The presentation layer is separated from the data, allowing me to export it to any format I want, whether it PDF for print, html for the web or Excel for those auto execs that can’t live without it. I’m making the claim today that I’ll have the first BIRT->WMS mapping service.

I find it very interesting that most of the guys at Actuate are former Microstrategy guys, and I wonder if Microstrategy will go after them when they start beating the pants off of them in the market.

While they don’t plan to produce a production level product until 2006/2007, I think they will be highly competitive in an already crowded market. The BI arena just got a little more competitive, COTS vendors watch out these guys are going to come out slugging. Do you guys need any PMs or developers? Just let me know.

Posts navigation

← Older Entries
Newer Entries →
  • Recent Comments

    • Smrutee on Adding a new disk to a VMWare Virtual Machine in Linux
    • Mri Pat on Adding a new disk to a VMWare Virtual Machine in Linux
    • Suma on Adding a new disk to a VMWare Virtual Machine in Linux
    • Anand on Adding a new disk to a VMWare Virtual Machine in Linux
    • Adding a new disk to a VMWare Virtual machine in Linux « Muhammad Nadeem Chaudhry's Blog on Adding a new disk to a VMWare Virtual Machine in Linux
  • Archives

    • October 2011 (1)
    • March 2011 (1)
    • February 2011 (3)
    • January 2011 (2)
    • December 2010 (4)
    • November 2010 (4)
    • October 2010 (5)
    • September 2010 (4)
    • February 2010 (1)
    • December 2009 (1)
    • June 2008 (2)
    • January 2008 (5)
    • December 2007 (2)
    • November 2007 (1)
    • October 2007 (5)
    • September 2007 (1)
    • August 2007 (4)
    • June 2007 (2)
    • May 2007 (1)
    • April 2007 (3)
    • March 2007 (2)
    • January 2007 (1)
    • October 2006 (1)
    • September 2006 (3)
    • July 2006 (5)
    • June 2006 (3)
    • May 2006 (4)
    • April 2006 (1)
    • November 2005 (1)
    • October 2005 (2)
    • September 2005 (1)
    • August 2005 (1)
    • June 2005 (2)
    • January 2005 (3)
    • December 2004 (3)
  • Categories

    • Auto Industry
    • BI Server
    • BIEE
    • Business Intelligence
    • Data Integrator
    • Discoverer
    • General
    • Hadoop
    • Identity Management
    • MapViewer / GIS
    • Music
    • ora-click
    • Oracle
    • Oracle Access Manager
    • Oracle Adaptive Access Manger (OAAM)
    • Oracle Identity Manager
    • Oracle Virtual Directory
    • Personal
    • Portal
    • Technology
    • VMWare
Proudly powered by WordPress Theme: Parament by Automattic.