Help with simple PL/SQL package
Hi, I'm trying to create a simple PL/SQL package to loop over a list of names and do some fuzzy pattern matching to attempt to clean up the data. Unfortunately..I don't know anything about PL/SQL, and hitting problems getting this to work. Could someone lend a hand?
p.s.
table TMP_UTL_MATCH_INPUT has a list of names to attempt matching in column called CLEAN_MERCHANT
table TMP_UTL_MATCH_OUTPUT should hold the original input row # and value, a matching output row # and value, and calculated edit_distance and jaro_winkler similaritise
table TMP_UTL_MATCH_STATUS is simply updated after each value so I can track how far in the process it's gotten (I suspect this algorithm will take a long time....)
Thanks in advance for any help!
Scott
create or replace
PROCEDURE "PROCESS_UTL_MATCH_DATA"("START_ROW" IN INTEGER DEFAULT 1) IS
--initialize variables here
num_rows integer;
edit_distance_similarity number;
jaro_distance_similarity number;
-- main body
BEGIN
select count(*) into num_rows from tmp_utl_match_input;
declare name_array as varray(num_rows) of varchar2(40);
select clean_merchant into name_array from TMP_UTL_MATCH_INPUT;
truncate table tmp_utl_match_status;
insert into tmp_utl_match_status values (0);
FOR i in 1..num_rows-1 LOOP
FOR j IN i+1..num_rows LOOP
edit_distance_similarity = utl_match.edit_distance_similarity(name_array(i), name_array(j));
jaro_winkler_similarity = utl_match.jaro_winkler_similarity(name_array(i), name_array(j);
if (edit_distance_similarity > 50 or jaro_winkler_similarity > 50)
then
insert into tmp_utl_match_output values (i, name_array(i), j, name_array(j), edit_distance_similarity, jaro_winkler_similarity);
END IF;
END LOOP;
update tmp_utl_match_status set current_row_num = i;
commit;
END LOOP;
EXCEPTION
WHEN OTHERS THEN
NULL; -- enter any exception code here
END;
If you would not defeat Oracle's ability to tell you what errors the procedure may raise, it could help you debug this easier. Do that by deleting or commenting out the EXCEPTION.
Another issue I see is you're trying to call a DDL statement directly. You cannot truncate a table directly. Instead you need to use EXECUTE IMMEDIATE.
Another issue I see is you have a DECLARE statement that has statements following it that are not declarations. Once your declarations are done, you need a BEGIN followed by code followed by END. Either that, or put your "name_array as varray(num_rows) of varchar2(40);" statement above your BEGIN.
It would also help to list your version of Oracle, and any errors you've received so far. Arm us with the same information you have, it makes it easier for us to help you.
Plus, put \ tags around your code, that will preserve the formatting.
Such as:
SELECT column1,
column2,
column3
FROM some_table
WHERE column1 > 1000
AND column2 IS NOT NULL:
as opposed to:SELECT column1,
column2,
column3
FROM some_table
WHERE column1 > 1000
AND column2 IS NOT NULL:
Edited by: Starlight Rider on May 5, 2011 1:04 PM
Similar Messages
-
Pl help with simple pl/sql quey
Hi ,
I am getting stuck with this simple pl/sql query , can anyone pl help me with this.
This is the query i have,
select ia.deal_id, actual_clear_dt
from inc_site_freq isf
join INC_ASSET ia on isf.inc_asset_id = ia.inc_asset_id
and freq in (866.0125, 866.5125, 867.0125, 867.5125, 868.0125)
and deal_id=21363
the above query displays data of about 10 rows which may or may not have combination of null and dates for actua_clear_dt.
if its a combination of null and dates then all the actual_clear_dt should be null
if it has only dates should display all dates
Please help. Thanks.Vin wrote:
Hi ,
I am getting stuck with this simple pl/sql query , can anyone pl help me with this.
This is the query i have,
select ia.deal_id, actual_clear_dt
from inc_site_freq isf
join INC_ASSET ia on isf.inc_asset_id = ia.inc_asset_id
and freq in (866.0125, 866.5125, 867.0125, 867.5125, 868.0125)
and deal_id=21363
the above query displays data of about 10 rows which may or may not have combination of null and dates for actua_clear_dt.
if its a combination of null and dates then all the actual_clear_dt should be null
if it has only dates should display all dates
Please help. Thanks.A little indention/formatting would help you see and comprehend it better, and including the { code } tags when posting here would help US see and comprehend it better:
select
ia.deal_id,
actual_clear_dt
from
inc_site_freq isf
join INC_ASSET ia
on isf.inc_asset_id = ia.inc_asset_id
and freq in (866.0125,
866.5125,
867.0125,
867.5125,
868.0125)
and deal_id=21363 -
Please help with dynamic pl/sql
Trying to write a generic pl/sql package that can be used on any table I specify at runtime. The procedures are simple and there are only two. I don't understand advanced pl/sql enought to write it myself dynamically. Could someone please give me ideas on this? Because I don't know the syntax of dynamic pl/sql, books aren't helping much with a project I have due tomorrow :)
Yes, it will all be done at the same time, but I would like them to be able to run independent of each other in case i want one and not the other and vice versa. In procedure 1, the only thing to be done is to get the text in column_1 of tableA to column_1 in tableB.
I have a regular procedure for procedure 1 that I think will work:
CREATE OR REPLACE PROCEDURE UPDATE_COLUMN_1
IS
v_column_1 tableB.column_1%TYPE;
v_name tableC.name%TYPE;
CURSOR c_name_column_1 IS
SELECT column_1, name from tableA;
BEGIN
OPEN c_name_column_1;
LOOP
Fetch c_name_column_1 INTO v_column_1, v_name;
EXIT WHEN c_name_column_1%NOTFOUND;
UPDATE tableB
SET column_1 = v_column_1,
lst_updt = sysdate,
updt_by = 'anna'
WHERE name = v_name;
END LOOP;
CLOSE c_name_column_1;
END UPDATE_COLUMN_1;
My main email is in my husband's name. I will get it faster than my hotmail account. [email protected] -
Designer 9.0.2.7 - problems with capturing PL/SQL packages
Hello,
I would appreciate any help regarding the following issue:
We tried to capture in Designer 9.0.2.7 the existing PL/SQL packages from an Oracle 9i database and we have met some problems.
Even the package has a body containing two public procedures, when capturing, the Designer generates warnings that say the PL/SQL package body is empty. Therefore, the Designer capture the body content and write it in the PL/SQL Block of the PL/SQL Definition property, but the content of the body is preceded with the " character.
This makes problem when generating the "ddl" for the package (the package is not created correctly in the DB).
In addition, when generating the "ddl", the "END package_name" is added twice.
Other problem is that the package specification information from Designer is just "END package_name;"
For some of the packages containing only a list of public procedures, without any other variables declarations, the Designer does not capture these procedures as separate subprograms in the package definition, as it does other times. In this case, the package body is entirely captured in the PL/SQL Block and with the " character before content.
Is it some settings that can be done or some rules about the format of the PL/SQL procedures in order for Designer to capture all packages in same manner and correctly?
Thank you,
ClaudiaHi Keith,
I am connecting to the database as the package owner..
I have noticed earlier that I have problems when capturing triggers also.. The content of one large trigger contains 36371 characters and when capturing it from DB, the content was truncated to 28020 characters in Designer.
Our ideas with capturing the DB packages/procedures were to use the Designer as version control system.
We wanted to have all objects used in a project in Designer.. entities, tables, triggers, packages, procedures, Forms files, etc. in order to make a configuration for a project release.
Thank you,
Claudia -
Urgent help with simple BPEL process for reading data from database
Hello there,
I need help with BPEL project.
i have created a table Employee in Database.
I did create application, BPEL project and connection to the database properly using Database Adapter.
I need to read the records from the database and convert into xml fomat and it should to go approval for BPM worklist.
Can someone please describe me step by step what i need to do.
Thx,
DpsI have created a table in Database with data like Empno,name,salary,comments.
I created Database Connection in jsp page and connecting to BPEL process.
It initiates the process and it goes automatically for approval.
Please refer the code once which i created.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%@page import="java.util.Map" %>
<%@page import="com.oracle.bpel.client.Locator" %>
<%@page import="com.oracle.bpel.client.NormalizedMessage" %>
<%@page import="com.oracle.bpel.client.delivery.IDeliveryService" %>
<%@page import="javax.naming.Context" %>
<%@page import="java.util.Hashtable" %>
<%@page import="java.util.HashMap" %>
<%@ page import="java.sql.*"%>
<%@ page import= "jspprj.DBCon"%>
<html>
<head>
<title>Invoke CreditRatingService</title>
</head>
<body>
<%
DBCon dbcon=new DBCon();
Connection conn=dbcon.createConnection();
Statement st=null;
PreparedStatement pstmt=null;
Hashtable env= new Hashtable();
ResultSet rs = null;
Map payload =null;
try
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.evermind.server.rmi.RMIInitialContextFactory");
env.put(Context.PROVIDER_URL, "opmn:ormi://localhost:port:home/orabpel");//bpel server
env.put("java.naming.security.principal", "username");
env.put("java.naming.security.credentials", "password");//bpel console
Locator locator = new Locator("default","password",env);
IDeliveryService deliveryService =
(IDeliveryService)locator.lookupService(IDeliveryService.SERVICE_NAME );
// construct the normalized message and send to Oracle BPEL Process Manager
NormalizedMessage nm = new NormalizedMessage();
java.util.HashMap map = new HashMap();
st=conn.createStatement();
out.println("connected");
String query1="Select * from EMPLOYEE";
rs=st.executeQuery(query1);
/*reading Data From Database and converting into XML format
so that no need of going to BPEL console and entering the details.
while (rs.next()){
String xml1 = "<AsynchBPELProcess1ProcessRequest xmlns='http://xmlns.oracle.com/AsynchBPELProcess1'>"+
"<Empno>"+rs.getString(1)+"</Empno>"+
"<EmpName>"+rs.getString(2)+"</EmpName>"+
"<Salary>"+rs.getString(3)+"</Salary>"+
"<Comments>"+rs.getString(4)+"</Comments>"+
"</AsynchBPELProcess1ProcessRequest>";
out.println(xml1);
nm.addPart("payload", xml1 );
// EmployeeApprovalProcess is the BPEL process in which human task is implemented
deliveryService.post("EmployeeApprovalProcess", "initiate", nm);
// payload = res.getPayload();
out.println( "BPELProcess CreditRatingService executed!<br>" );
// out.println( "Credit Rating is " + payload.get("payload") );
//Incase there is an exception while invoking the first server invoke the second server i.e lsgpas13.
catch(Exception ee) {
//("BPEL Server lsgpas14 invoking error.\n"+ee.toString());
%>
</body>
</html>
Its working fine.And i want it for Bulk approvals.please help me step by step procedure if any other way to implement this. -
Help with anonymus pl/sql layout using javascript
Hi people.
i want to display some records on a region (using apex 4.2) , this anonymous pl/sql script below shows 3 records from database, but the layout only shows me the first record with it's data, the others 2 records, only show me labels.
i have verified this same query creating a report and it shows the 3 records correctly.
i guess i am doing something wrong with this javascript routine or i am surely missing something,
in this link you can see the layout i am getting. (http://sdrv.ms/Xrv0J8).
the other little help i need is to display in one row for each record. actually i am getting one row for each label and one row for each data record. i have read and found is something about /div, but i don't no how to change it to get desired results, any suggestion is welcome.
thanks in advance for any help.
i am completely new in apex and java script, but i have several years experience in pl/sql.
The Script :
Begin
Declare
Cursor Deliv Is
Select item,
To_char (Delivery, 'month dd, yyyy hh24:mi:ss') Delivery,
Current_date
From pending_items;
Begin
For A In Deliv Loop
Begin
Sys.Htp.P ('<script type="text/javascript">');
Sys.Htp.P ('function cdtd() {');
Sys.Htp.P (' var xmas = new Date("' || a.delivery || '")');
Sys.Htp.P (' var now = new Date();');
Sys.Htp.P (' var timeDiff = xmas.getTime() - now.getTime();');
Sys.Htp.P (' if (timeDiff <= 0) {');
Sys.Htp.P (' clearTimeout(timer);');
-- Sys.Htp.P (' document.write("Some Text Here!");');
Sys.Htp.P (' // Run any code needed for countdown completion here');
Sys.Htp.P (' }');
Sys.Htp.P (' var seconds = Math.floor(timeDiff / 1000);');
Sys.Htp.P (' var minutes = Math.floor(seconds / 60);');
Sys.Htp.P (' var hours = Math.floor(minutes / 60);');
Sys.Htp.P (' var days = Math.floor(hours / 24);');
Sys.Htp.P (' hours %= 24;');
Sys.Htp.P (' minutes %= 60;');
Sys.Htp.P (' seconds %= 60;');
Sys.Htp.P (' document.getElementById("daysBox").innerHTML = days;');
Sys.Htp.P (' document.getElementById("hoursBox").innerHTML = hours;');
Sys.Htp.P (' document.getElementById("minsBox").innerHTML = minutes;');
Sys.Htp.P (' document.getElementById("secsBox").innerHTML = seconds;');
Sys.Htp.P (' var timer = setTimeout("cdtd()",1000);');
Sys.Htp.P ('}');
Sys.Htp.P ('</script>');
Sys.Htp.P ('Days ');
Sys.Htp.P ('<div id="daysBox"></div>');
Sys.Htp.P ('Hours');
Sys.Htp.P ('<div id="hoursBox"></div>');
Sys.Htp.P ('Minutes');
Sys.Htp.P ('<div id="minsBox"></div>');
Sys.Htp.P ('Seconds');
Sys.Htp.P ('<div id="secsBox"></div>');
Sys.Htp.P ('<script type="text/javascript">');
Sys.Htp.P ('cdtd();</script>');
End;
End Loop;
End;
End;Let's focus on your delivery dates and javascript for now.
Why you would put your javascript in htp.p calls in a plsql region is quite beyond me. When you edit the page there is a javascript region where you can put global variables and functions, an excellent spot for this then, and a lot more maintainable than this.
Now it's also obvious that your query on pending items will return more than one record. So, using a report would serve you well in this case. However, using code like this:
document.getElementById("daysBox").innerHTML = days;
document.getElementById("hoursBox").innerHTML = hours;
document.getElementById("minsBox").innerHTML = minutes;
document.getElementById("secsBox").innerHTML = seconds;will not serve you. getElementById is meant to return one element uniquely identified by an ID. If you have a report with multiple rows, and elements on each row with the same ID, you are doing something wrong. You would need the delivery date per row, and I guess that you put out your code with htp.p because you do not know how to deal with that and passing it in to the javascript procedure.
But wouldn't it be more oppurtune for you to simply create a report with a source sql where you calculate each part of the date, and then refresh this region with a certain interval. If you'd refresh every 5 minutes, wouldn't that be more than fast enough to keep track of things? Don't forget, refreshing a region will execute the sql again.
It's not that you can't accomplish a multirecord report with a countdown per row, but are you comfortable enough with javascript and jquery to code and maintain that versus leveraging plsql and dynamic actions (there is even a dynamic action timer plugin provided by oracle)? -
I was wondering if someone could help me with a simple bit of action script 3. I need to make a movie clip (single_mc) disappear when the user clicks on the mouse (stop_btn). Here’s what I have so far.
function setProperty(event:MouseEvent):void
single_mc.alpha=0;
stop_btn.addEventListener(MouseEvent.CLICK, setProperty);
Also I was wonder if you could recommend an Action script 3 book for me. I would like one that is not a training book, but has situations and then the script written out. For example: I click a button and a movie symbol disappears from the stage. I am a graphic artist, that from time to time, needs simple interaction in flash, but cant justify the time to learn the script.
Thanks for your timeuse the snippets panel to help with you with sample code for basic tasks.
function setProperty(event:MouseEvent):void
single_mc.visible=false;
stop_btn.addEventListener(MouseEvent.CLICK, setProperty); -
Please help with simple Drag N Drop
I’m desperate and need some help with this simple drag
and drop. Here is the scenario…this animation is for a
kindergarten course. I have 6 different colored teddy bears on the
floor and the bears are to be placed on the middle shelf in the
room, in no particular order. I have the code in place to drag the
bears, and they return to their original location if dropped in the
wrong area. Everything works, except I can’t make the bears
stick to the target area. The target area has to be the same for
all 6 bears. Can someone help me out with this?
I have a feeling that the problem has something to do with my
instance names, but I have tried everything I can think of and
cannot get it to work. Is there some way I can post, send, or
attach my .fla file for someone to look at? I’m desperate.
PLEASE HELP!var startX3:Number;
var startY3:Number;
var counter3:Number=0;
vf_A.addEventListener(MouseEvent.MOUSE_DOWN, pickUp3);
vf_A.addEventListener(MouseEvent.MOUSE_UP, dropIt3);
vf_E.addEventListener(MouseEvent.MOUSE_DOWN, pickUp3);
vf_E.addEventListener(MouseEvent.MOUSE_UP, dropIt3);
vf_I.addEventListener(MouseEvent.MOUSE_DOWN, pickUp3);
vf_I.addEventListener(MouseEvent.MOUSE_UP, dropIt3);
vf_O.addEventListener(MouseEvent.MOUSE_DOWN, pickUp3);
vf_O.addEventListener(MouseEvent.MOUSE_UP, dropIt3);
vf_U.addEventListener(MouseEvent.MOUSE_DOWN, pickUp3);
vf_U.addEventListener(MouseEvent.MOUSE_UP, dropIt3);
function pickUp3(event:MouseEvent):void {
event.target.startDrag(true);
reply2_txt.text="";
event.target.parent.addChild(event.target);
startX2=event.target.x;
startY2=event.target.y;
function dropIt3(event:MouseEvent):void {
event.target.stopDrag();
var myTargetName:String="target"+event.target.name;
var myTarget:DisplayObject=getChildByName(myTargetName);
if (event.target.dropTarget != null &&
event.target.dropTarget.name == "instance112") {
reply2_txt.text="Good Job!";
event.target.removeEventListener(MouseEvent.MOUSE_DOWN,
pickUp3);
event.target.removeEventListener(MouseEvent.MOUSE_UP,
dropIt3);
event.target.buttonMode=false;
event.target.x=myTarget.x;
event.target.y=myTarget.y;
var mySound:Sound = new vowels_NAR_goodjob();
mySound.play();
counter3++;
} else {
reply2_txt.text="Try Again!";
event.target.x=startX2;
event.target.y=startY2;
var mySound2:Sound = new vowel_NAR_nopetryagain();
mySound2.play();
if (counter2==5) {
reply2_txt.text="Great Job! You did it!";
gotoAndPlay(3300);
vf_A.buttonMode=true;
vf_E.buttonMode=true;
vf_I.buttonMode=true;
vf_O.buttonMode=true;
vf_U.buttonMode=true; -
Help with some PL/SQL Triggers
hello there, I'm totally new using PL/SQL so I need your help with two triggers.
For instance
1. Compare two dates, and verify that there are different, you must send a message Error
2. When I insert a new record, a trigger must obtain data from other tables and add it (on a new record)
Maybe not the answers, maybe the way to go!
Thks!Hi,
Welcome to the forum
1. Compare two dates, and verify that there are different, you must send a message Errorwhy trigger ?
Trigger is Only for when DML Performed :)
try 1st one in procedure..
create or replace procedure testing(p_date in date)
is
v_date date;
begin
select to_date(hiredate,'mm-dd-rr') into v_date
from emp
where to_date(hiredate,'mm-dd-rr')=to_date(p_date,'mm-dd-rr');
dbms_output.put_line(v_date);
exception
when others then
dbms_output.put_line('No Data Found');
end;
2. When I insert a new record, a trigger must obtain data from other tables and add it (on a new record)i didn't understand can you please explain me in detail ?
Thanks
Venkadesh -
Please help with workflow inspired SQL
Hi everyone, I need some help with a piece of sql I need to create. It will be used in a workflow scenario and is therefore a bit hairy and has some limitations. So here goes..
I have 2 current tables that will be used in this query. The first is a table used as a supervisor cross reference, and the second will be used for signing authority, or approval authorization. In short...the first table will give you the supervisor for the particular employee or employee in the where clause. This tells us who to route to. The second table has the operators authority level. As an example.... 1, 2, 3, or 4. A 1 could signify that this supervisor can approve for up to $5,000, and a 4 could signify that this person can approve up to $250,000. thats the basic idea.
So what I need to do in ONE statement is get the requestor's supervisor, and then check his/hers authority level for level 1, 2, 3 or 4. The authority level needed will be passed into the query, so I will have that as well as the requestor. And here is the hard part...... If no rows are returned (the supervisor does not have authority to approve) I need the query to apply the same logic to the next supervisor. In other words, the supervisor's supervisor. Every requestor will have a supervisor. Every supervisor will also have a supervisor....so it goes until we get to the CEO. So the query needs to keep going until it finds a row matching the signing authority.
So the limitations are......this needs to happen in one SQL query, and this query can only return ONE field!
Here are some creates and inserts to give you something to work with. Been suffering with this one for a few days so your help is GREATLY appreciated.
Supervisor cross reference table
CREATE TABLE PS_ROLEXLATOPR (ROLEUSER VARCHAR2(30) DEFAULT ' ' NOT
NULL,
DESCR VARCHAR2(30) DEFAULT ' ' NOT NULL,
OPRID VARCHAR2(30) DEFAULT ' ' NOT NULL,
EMAILID VARCHAR2(70) DEFAULT ' ' NOT NULL,
FORMID VARCHAR2(70) DEFAULT ' ' NOT NULL,
WORKLIST_USER_SW VARCHAR2(1) DEFAULT 'Y' NOT NULL,
EMAIL_USER_SW VARCHAR2(1) DEFAULT 'Y' NOT NULL,
FORMS_USER_SW VARCHAR2(1) DEFAULT 'Y' NOT NULL,
EMPLID VARCHAR2(11) DEFAULT ' ' NOT NULL,
ROLEUSER_ALT VARCHAR2(30) DEFAULT ' ' NOT NULL,
ROLEUSER_SUPR VARCHAR2(30) DEFAULT ' ' NOT NULL,
EFFDT_FROM DATE,
EFFDT_TO DATE) TABLESPACE PTTBL STORAGE (INITIAL 40000 NEXT 100000
MAXEXTENTS UNLIMITED PCTINCREASE 0) PCTFREE 10 PCTUSED 80
INSERT INTO PS_ROLEXLATOPR
DESCR,
OPRID ,
EMAILID ,
FORMID ,
WORKLIST_USER_SW ,
EMAIL_USER_SW ,
FORMS_USER_SW ,
EMPLID ,
ROLEUSER_ALT ,
ROLEUSER_SUPR ,
EFFDT_FROM
VALUES
DESCR,
'ABC123',
'XYZ123',
Signing Authority table..
CREATE TABLE PS_ZZ_WF_AUTHORITY (OPRID VARCHAR2(30) NOT NULL,
EMPLID VARCHAR2(11) NOT NULL,
EMAILID VARCHAR2(70) NOT NULL,
ZZ_SIGN_AUTHORITY VARCHAR2(1) NOT NULL) TABLESPACE APLARGE STORAGE
(INITIAL 40000 NEXT 100000 MAXEXTENTS UNLIMITED PCTINCREASE 0)
PCTFREE 10 PCTUSED 80
insert into PS_ZZ_WF_AUTHORITY
OPRID,
EMPLID,
EMAILID,
ZZ_SIGN_AUTHORITY
Values
'XYZ123',
'Any_Email',
'1'
)Hi,
Welcome to the forum!
Thanks for posting the CREATE TABLE and INSERT statements; that's very helpful!
Whenever you have a question, also post the results you want to get from the sample data your posted.
Always say what version of Oracle you're suing.
In the sample data you posted, I only see one row in each table. Does that really give a good picture of the problem? If the problem involves going up the chain of command 1, 2, 3 or more levels, then shouldn't you have a chain of at least 3 people to show the problem and test the results?
I think what you need is CONNECT BY Query , which works on a table with a parent-child relationship. Given a parent, you can find that ow's children, the children's children, their children, and so on, however many generations there are.
I don't think I can demonstrate this with your sample data, so I'll use the scott.emp table, whcih you should be able to query.
The emp table contains a hierarcy of employees, including this data:
NAME EMPNO MGR SAL JOB
KING 7839 5000 PRESIDENT
JONES 7566 7839 2975 MANAGER
SCOTT 7788 7566 3000 ANALYST
ADAMS 7876 7788 1100 CLERK
FORD 7902 7566 3000 ANALYST
SMITH 7369 7902 800 CLERK
BLAKE 7698 7839 2850 MANAGER
ALLEN 7499 7698 1600 SALESMAN
WARD 7521 7698 1250 SALESMAN
MARTIN 7654 7698 1250 SALESMAN
TURNER 7844 7698 1500 SALESMAN
JAMES 7900 7698 950 CLERK
CLARK 7782 7839 2450 MANAGER
MILLER 7934 7782 1300 CLERKThis show, among other things, that the employee with ename='KING' (empno=7839) has no boss.
JONES (empno=7566) does have a boss (mgr=7839), namely KING.
SCOTT (empno=7788) has a bos (mgr=7566), who is JONES.
I got the results above using this CONNECT BY query:
SELECT LPAD ( ' '
, 3 * (LEVEL - 1)
) || ename AS name
, empno
, mgr
, sal
, job
FROM scott.emp
START WITH mgr IS NULL
CONNECT BY mgr = PRIOR empno
;This is an example of a Top-Down Query , where we start with a parent, then find its children, grandchildren, and so on.
In your probelm, you want to do a Bottom-Up Query ; given a child, you want to see if its parent has a certain level of authority. If not, you need to look at that parent's parent, and keep going until to either reach someone with the right qualifications, or you reach the end of the chain of command.
That's similar to this problem: given a set of employees in scott.emp (say, everyone with job='CLERK') we want to find their closest ancestor who has a sal of 3000 or more. Look at the data above: you can see that SMITH is a CLERK, and SMITH'S boss, FORD, has sal=3000, so we want a row of output that shows SMITH and FORD.
For a different example, looks at MILLER. MILLER's boss, CLARK, only has sal=2450, so we need to look at CLARK's boss, KING.
One way to do that in a CONNECT BY query is:
SELECT CONNECT_BY_ROOT ename AS subordinate
, ename
, LEVEL - 1 AS steps_apart
FROM scott.emp
WHERE CONNECT_BY_ISLEAF = 1
START WITH job = 'CLERK'
CONNECT BY empno = PRIOR mgr
AND PRIOR sal < 3000
;Output:
SUBORDINAT ENAME STEPS_APART
SMITH FORD 1
ADAMS SCOTT 1
JAMES KING 2
MILLER KING 2You should be all set to write the query now.
Just kidding. I'll bet there's a lot of stuff in this message that's new to you. It's all documented in the SQL Language manual:
http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/index.htm
If you'd like help, post your version, a more complete set of sample data, and the results you want from that data.
Explain, with specific examples, how you get the results you posted from the data you posted.
Do as much of the query as you can, and post your code. -
Help with simple INSERT statement?
How can I do an insert into Oracle without having to
specify EVERY field name in the table? This isn't necessary
with Access or
SQL Server, which will insert null's in the non-specified
fields, the Oracle SQL
tool tells me that there aren't enough field values when I run
this SQL Statement:
INSERT INTO TABLE_NAME VALUES (1234, 'test', 'test')
There are over 10 different fields, but I get the error message:
Native Error Code 947, Not enough values.
TIA
Kris
nullKristofer Goss (guest) wrote:
: How can I do an insert into Oracle without having to
: specify EVERY field name in the table? This isn't necessary
: with Access or
: SQL Server, which will insert null's in the non-specified
: fields, the Oracle SQL
: tool tells me that there aren't enough field values when I run
: this SQL Statement:
: INSERT INTO TABLE_NAME VALUES (1234, 'test', 'test')
: There are over 10 different fields, but I get the error
message:
: Native Error Code 947, Not enough values.
: TIA
: Kris
You may omit the columns list, but if you do then the VALUES
clause must provide values for every column in the table.
FOR EXAMPLE: if your table were created as follows:
COLUMN_1 NOT NULL, VARCHAR2(4)
COLUMN_2 NUMBER(6)
COLUMN_3 DATE
COLUMN_4 VARCHAR2(4)
You could submit a statement like:
insert into my_table VALUES ('ALLA', , , 'XYZ');
You could also submit a statement like:
insert into my_table (column_1, column_4) VALUES ('ALLA', 'XYZ');
If you do not want to store any value in a particular column,
then that column must be allowed to accept NULLs.
Hope this helps.
null -
Hello everyone.
First time posting, i hope someone would be able to help me out. There are 5 classes that i have to do, but i only need help with one of them. I've been stuck on this one pretty long and can't continue without it.
Instructions:
Has boolean data member face, either HEADS or TAILS.
Has a Random data member flipper which is instantiated in the constructor.
Class constructor has no parameters and randomly chooses the result HEADS or TAILS. (See method flip())
Method getFace() returns the face showing on the coin.
void method flip() randomly selects HEADS or TAILS.
package coinflip;
import java.util.Random;
* @author Blank
public class Coin {
boolean face = false;
int flip_coin;
Random flipper = new Random();
int getFace() {
return flip_coin;
Coin() {
if (flip_coin == 0) {
face = true;
} else {
face = false;
public void flip() {
flip_coin = flipper.nextInt(2);
}i really don't know why the random isn't working. I hope someone would be able to find my errors and instruct me on how to fix them. I would be able to continue the rest of the classes as soon as i got this figured out.
Oh and can someone teach me how to import this class into a main one? So i can test it out. This is what i have for it.public class Main {
* @param args the command line arguments
public static void main(String[] args) {
Coin flipCoin = new Coin();
for(int i=0;i<6;i++){
System.out.println(flipCoin.getFace());
}Many Thanks!
Edited by: Java_what on Feb 16, 2009 2:26 PMConstructors are only executed once. What im confused about is:
Class constructor has no parameters and randomly chooses the result HEADS or TAILS. (See method flip())
I thought i would flip() into the constructor. Mind helping me out on the whole class because it seems i am clueless about this whole class.
Edit:
public class Coin {
boolean face = false;
int flip_coin;
Random flipper = new Random();
int getFace() {
flip();
return flip_coin;
Coin() {
//flip();
public void flip() {
flip_coin = flipper.nextInt(2);
}K i reread what you wrote about the constructor and method. So i placed flip() method in getFace(); because its being called in the main(it gives me random numbers). The problem now is following the directions.
I just dont understand this description. Class constructor has no parameters and randomly chooses the result HEADS or TAILS. (See method flip())
What do you think it means.
Edited by: Java_what on Feb 16, 2009 4:14 PM -
Help with simple applet - dragging box
Hi I need help with a simple applet concept.
I have a picture drawn in the background, but I need to draw a square and resize it when I drag.
So with the picture in the background I click, drag the mouse, and it draws a rectangle from the starting point to where the mouse is while the mouse is clicked.
The only problem is I can't figure out how to do this without redrawing the whole picture. If I don't repaint, it just keeps stretching around rectangles and leaving them there.
I don't really need exact code, just an idea on how to do this without repainting the background every time the mouse is moved (because the picture in the background is complicated to draw and takes like a second).
Thanks
[nvm, found out about xormode]
Edited by: BugMenOTdhzj on Nov 30, 2009 4:47 PMBugMenOTdhzj wrote:
..the picture in the background is complicated to draw and takes like a second).Paint the 'picture in the background' to a BufferedImage, then when it comes to paint()/paintComponent(), draw the BI to the Graphics object (clipped, if necessary (1)), then draw the rectangle to the Graphics object. This would be further optimised at time of rendering, by drawing both the 'picture in the background' BI and rectangle to a second BI, and finally writing that 2nd BI to the Graphics object.
1) There are potentially other improvements that can be made, particularly with clipping, but I suspect if you try as I suggested, the rendering will be very quick and responsive. I have 40 FPS sound trace animations that do a great deal more on each call to paintComponent(), before bursting the final BI to screen. -
Need help with simple XML validation
I am new to Spry and need some help creating a simple
validation. There is a form field which must not contain a value
already in the database. I have a script which accepts a parameter
and returns a boolean result. Here is the XML:
<samples>
<sample>
<ISFOUND>0</ISFOUND>
</sample>
</samples>
1. How do I call this script when the form field changes and
pass the form value as the parameter?
2. How do I check the returned value in the XML and throw an
error if true?
I appreciate any help with this. Please let me know if there
is a better way to achieve the same result.
Thanks,
RichI enabled the call to the XML response. However, I am having
trouble identifying when the call is complete so I can parse the
result. How do I run my check after the data load and display the
proper message? -
Beginner needs help with simple code.
I just statrted learnind java, and I need some help with this simple program. For some reason everytime I enter my Farenheit value, the Celsius conversion returns as 0.0. Would really appreciate the help. Thanks.
Here's the code:
public class TempConverter
public static void main(String[] args)
double F = Double.parseDouble(args[0]);
System.out.println("Temperature in Farenheit is: " + F);
double C = 5 / 9;
C *= (F - 32);
System.out.println("Temperature in Celsius is: " + C);
}double C = 5 / 9This considers "5" and "9" to be integers and does an integer division, discarding the remainder. The result of that division is 0. Trydouble C = 5.0/9.0;
Maybe you are looking for
-
How to load a XML into Checkpoint in UFT API using custom code
I am automating a webservice using UFT-12. In which I am trying to load a xml into the checkpoint at run time. but I am not able to find out a way of doing it.Can any1 help me on this?
-
Can I install a Netgear pc card in a mac?
I got a netgear super G notebook network card. Can I install it in the card slot in my titanium powerbook? I already have airport installed inside the powerbook, but it's 802.11B as opposed to the faster G.
-
Acrobat Pro 8 Outlook convert to PDF
I have several thousand emails that I want to convert to PDF using the PDF Maker plug-in. I want all the messages and their attachements converted, I don't need PDF/A or an index. The problem that I have is the volume of emails is so large that PDF M
-
Hi, How can i visible the Edit --> Dynamic Selections field in Menu Bar of T. code FS10N...it is coming invisible... Thanks..
-
Trouble downloading After Effects CC
I'm trying to download After Effects CC, but the Adobe Application Manager software crashes before anything can begin. I've tried restarting and everything else I know to do. I'm using a Mid 2012 MacBook Pro with a 2.3 GHz Intel Core i7 processor uti