Need help with tables beginner........
can some one help me straightned out these errors, am trying to teach myself some sql for and am using my buddies school books. this is the problem.
Create the following relations in SQLPLUS. The columns involved in composing the primary key for each table are marked with a *.
* FACULTY (*fss_num varchar2(20), name varchar2(20), address varchar2(20), age number,salary number(10,2))
* ATTENDS (*sss_num varchar2(20), *c_num number, sec_num number)
* SECTION (*c_num number,*sec_num number,fss_num varchar2(20))
* STUDENT (*sss_num varchar2(20), name varchar2(20), address varchar2(20), age number)
* COURSE (*c_num number, cdesc varchar2(20), credits number, size_limit number)
My solution: seems right am following another example but i get various errors.
DROP TABLE ATTENDS;
DROP TABLE STUDENT;
DROP TABLE SECTION;
DROP TABLE COURSE;
DROP TABLE FACULTY;
CREATE TABLE FACULTY
(FSS_NUM VARCHAR2(20) NOT NULL,
NAME VARCHAR2(20) NOT NULL,
ADDRESS VARCHAR2(20),
AGE NUMBER,
SALARY NUMBER(10,2),
CONSTRAINT FACULTY_PK PRIMARY KEY (FSS_NUM));
CREATE TABLE COURSE
(C_NUM NUMBER NOT NULL,
CDESC VARCHAR2(20),
CREDITS NUMBER,
SIZE_LIMIT NUMBER,
CONSTRAINT COURSE_PK PRIMARY KEY (C_NUM));
CREATE TABLE STUDENT
(SSS_NUM VARCHAR2(20) NOT NULL,
NAME VARCHAR2(20) NOT NULL,
ADDRESS VARCHAR2(20),
AGE NUMBER,
CONSTRAINT STUDENT_PK PRIMARY KEY (SSS_NUM));
CREATE TABLE ATTENDS
(SSS_NUM VARCHAR2(20) NOT NULL,
C_NUM NUMBER NOT NULL,
SEC_NUM NUMBER NOT NULL,
CONSTRAINT ATTENDS_PK PRIMARY KEY (SSS_NUM, C_NUM),
CONSTRAINT ATTENDS_FK1 FOREIGN KEY (SSS_NUM) REFERENCES STUDENT(SSS_NUM),
CONSTRAINT ATTENDS_FK2 FOREIGN KEY (C_NUM) REFERENCES COURSE(C_NUM));
CREATE TABLE SECTION
(C_NUM NUMBER NOT NULL,
SEC_NUM NUMBER NOT NULL,
FSS_NUM VARCHAR2(20) NOT NULL,
CONSTRAINT SECTION_PK PRIMARY KEY (C_NUM, SEC_NUM),
CONSTRAINT SECTION_FK1 FOREIGN KEY (C_NUM) REFERENCES COURSE(C_NUM));
Hi,
If you want to give Primary Key constraint for a column, no need to create NOT NULL constraint again for the same column.
If you create Primary Key constraint for a composite column, only possible to create Foreign Key on the same composite column.
Mistake.....if PRIMARY KEY(SSS_NUM, C_NUM), we should not either FOREIGN KEY(SSS_NUM) or FOREIGN KEY(C_NUM). We should create only like FOREIGN KEY(SSS_NUM, C_NUM).
Regards,
Sailaja
Similar Messages
-
Need help with table partitions
Hi all,
I'm new at partitions and tablespaces and I've been asked to create a partition for a table. First off, here's a sample table that I have.
create table M_TRANS (
TRAN_ID NUMBER,
MONTH_KEY INTEGER,
ACCOUNT_KEY INTEGER,
ACCOUNT_NUMBER CHAR(8),
LINE_KEY VARCHAR2(40),
SERVICE_TYPE VARCHAR2(10)
)I need to create a range partition based on Month_Key and list sub-partition based on last char of Line_Key.
MONTH_KEY has a data format of "YYYYMM" (200802).
LINE_KEY's last char should be in 0-9 / A-Z. 1 partition for each number 0-9 and 1 partition for alphabet values.
Upon reading articles, samples on this particular subject, I came up with this...
create table M_TRANS (
TRAN_ID NUMBER,
MONTH_KEY INTEGER,
ACCOUNT_KEY INTEGER,
ACCOUNT_NUMBER CHAR(8),
LINE_KEY NUMBER,
SERVICE_TYPE VARCHAR2(10)
PARTITION BY RANGE(MONTH_KEY)
SUBPARTITION BY LIST (LINE_KEY)
SUBPARTITION TEMPLATE(
SUBPARTITION P_0 VALUES 1 TABLESPACE TS_0,
SUBPARTITION P_1 VALUES 2 TABLESPACE TS_1,
SUBPARTITION P_2 VALUES 3 TABLESPACE TS_2,
SUBPARTITION P_3 VALUES 4 TABLESPACE TS_3,
SUBPARTITION P_4 VALUES 5 TABLESPACE TS_4,
SUBPARTITION P_5 VALUES 6 TABLESPACE TS_5,
SUBPARTITION P_6 VALUES 7 TABLESPACE TS_6,
SUBPARTITION P_7 VALUES 8 TABLESPACE TS_7,
SUBPARTITION P_8 VALUES 9 TABLESPACE TS_8,
SUBPARTITION P_9 VALUES 0 TABLESPACE TS_9,
SUBPARTITION P_AZ VALUES ('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z') TABLESPACE TS_AZ
PARTITION M_JAN VALUES 'JAN'
PARTITION M_FEB VALUES 'FEB'
PARTITION M_MAR VALUES 'MAR'
PARTITION M_APR VALUES 'APR'
PARTITION M_MAY VALUES 'MAY'
PARTITION M_JUN VALUES 'JUN'
PARTITION M_JUL VALUES 'JUL'
PARTITION M_AUG VALUES 'AUG'
PARTITION M_SEP VALUES 'SEP'
PARTITION M_OCT VALUES 'OCT'
PARTITION M_NOV VALUES 'NOV'
PARTITION M_DEC VALUES 'DEC'
);The only problem is that since the MONTH_KEY has a format of "YYYYMM", how do I compare just the last 2 numbers. Same goes with the LINE_KEY.
Can some help me? Thanks.
Regards,
A.SandiegoIn 10g and earlier, you need to create separate columns for the last 1-2 characters and use those columns as partitioning keys.
In 11g, you can use virtual columns:
CREATE TABLE M_TRANS (
TRAN_ID NUMBER,
MONTH_KEY INTEGER,
LINE_KEY VARCHAR2(40),
MONTH_ONLY as ((month_key/100-trunc(month_key/100))*100),
LAST_CHAR as (upper(substr(line_key,length(line_key),1)))
PARTITION BY RANGE(MONTH_ONLY)
SUBPARTITION BY LIST (LAST_CHAR)
SUBPARTITION TEMPLATE (
SUBPARTITION P_0 VALUES ('1'),
SUBPARTITION P_1 VALUES ('2'),
SUBPARTITION P_2 VALUES ('3'),
SUBPARTITION P_AZ VALUES ('A','B','C')
PARTITION M_JAN VALUES LESS THAN (2),
PARTITION M_FEB VALUES LESS THAN (3),
PARTITION M_MAR VALUES LESS THAN (4) -
Need help with table, xml files, click actions and visibility
Hi.
I am new to adobe livecycle and I need some guidance in a problem that I am facing.
I have an XML. The main tag 'employee' has 4 tags in it, name, age, ph# and address.
Address tag has 6 more tags in it.
I have to create a table which has 4 columns initially (all text fields). The rows are populated acccording to the XML.
1. S. No., which increments according to row number.
2. Name from XML.
3. Age from XML.
4. ph# from XML.
When any S. No. is clicked on, it should display the address details below that row, when it is clicked on again, it should hide those details and the original table view should be restored.
I googled a lot but am still not able to get how to do this.
Please help.I created a sample for you with what I think you want. Here is a file and the associated XML that goes with it.
Paul -
Need help with Table of Content
Hi,
I have recently started working with Robohelp 7. I just
completed my first project working with the tool. This project has
several Topics, and each topic has sub-topic under them. When I
generated the html files, I had given the Introductory sub-topic as
the default topic.
Now after the files are generated, I cannot open any other
topic in the table of content until I expand the topic containing
the default sub-topic. This issue is basically with Firefox
browser. It seems to work well with Safari. IE anyways opens the
folder containing the default topic.
I am not sure if any other user have faced similar problems?
Would like to hear from you guys too.Welcome to the forum
Whenever you install new software, check for updates before
starting work.
Go to Help | Updates and apply both patches.
Regenerate your help and try again. It should be OK. -
Hi,
I am working with two tables... Table1 is a history table and Table2 is current table which has only 2 rows...
I am asked to write a procedure such that when ever a third row is inserted to Table2 then the 1st row in Table2 has to be moved to Table1....
Both the tables have same attributes
I know i have to use for loop on table2 and check for the number of rows and then move the 1st row to table1... but what i am not getting is how to move it to table1 and how to delete it in table2...
Please help me out,,,
Thank You for trying to help me.Then you can write something like this:
SQL> create table t_history (id,description)
2 as
3 select 1, 'x' from dual
4 /
Tabel is aangemaakt.
SQL> create table t_current (id,description)
2 as
3 select 2, 'y' from dual union all
4 select 3, 'z' from dual
5 /
Tabel is aangemaakt.
SQL> create procedure add_record
2 ( p_id in t_current.id%type
3 , p_description in t_current.description%type
4 )
5 is
6 begin
7 insert into t_history
8 select min(id)
9 , max(description) keep (dense_rank first order by id)
10 from t_current
11 ;
12 update t_current
13 set id = p_id
14 , description = p_description
15 where id = (select min(id) from t_current)
16 ;
17 end add_record;
18 /
Procedure is aangemaakt.
SQL> exec add_record(4,'a')
PL/SQL-procedure is geslaagd.
SQL> select * from t_current
2 /
ID D
4 a
3 z
2 rijen zijn geselecteerd.
SQL> select * from t_history
2 /
ID D
1 x
2 y
2 rijen zijn geselecteerd.
SQL> exec add_record(5,'b')
PL/SQL-procedure is geslaagd.
SQL> select * from t_current
2 /
ID D
4 a
5 b
2 rijen zijn geselecteerd.
SQL> select * from t_history
2 /
ID D
1 x
2 y
3 z
3 rijen zijn geselecteerd.But if you take your profession seriously, I think you should persist to opt for the better solution: use a view.
Regards,
Rob. -
Need help with Tables Handling
This is a tricky problem, maybe not for you guys, here it is:
I have a table with 4 colums and N rows, i want to write data (int) on the 1st and 3rd columns and In the 4th column I want to show up the result of 1st X 3rd (1st times 3rd), I tried many times but so far I've got nothing good, some help would be appreciated, thank you! ; )I have a table with 4 colums and N rows, i want to
write data (int) on the 1st and 3rd columns and In
the 4th column I want to show up the result of 1st X
3rd (1st times 3rd), I tried many times but so far
I've got nothing good, some help would be
appreciated, thank you! ; )Here you go:
int n = 10; // number of rows
int[][] table = new int[n][4];
// 4th column from the first row = the 1st column multiplied with the 3rd
table[0][3] = table[0][0] * table[0][2]; -
Need help with tables in dreamweaver
So I can insert a table in dreamweaver but fine tuning it is
a problem.
I cannot find how to access individual cell properties to
apply borders on only the sides of the cells I want. Also I can
configure the width of the columns only by dragging the divider
left and right. It does not allow me to input figures anywhere to
set column widths.To set the widths in the HTML, look in the properties panel
and find the "cell" area near the bottom left. You can enter a
pixel value there.
To set borders for individual sides you should use CSS. Read
up in the help section about external style sheets. You can also
set your widths there if you like. -
Need help with saving data and keeping table history for one BP
Hi all
I need help with this one ,
Scenario:
When adding a new vendor on the system the vendor is suppose to have a tax clearance certificate and it has an expiry date, so after the certificate has expired a new one is submitted by the vendor.
So i need to know how to have SBO fullfil this requirement ?
Hope it's clear .
Thanks
BonganiHi
I don't have a problem with the query that I know I've got to write , the problem is saving the tax clearance certificate and along side it , its the expiry date.
I'm using South African localization.
Thanks -
Need help with JTextArea and Scrolling
import java.awt.*;
import java.awt.event.*;
import java.text.DecimalFormat;
import javax.swing.*;
public class MORT_RETRY extends JFrame implements ActionListener
private JPanel keypad;
private JPanel buttons;
private JTextField lcdLoanAmt;
private JTextField lcdInterestRate;
private JTextField lcdTerm;
private JTextField lcdMonthlyPmt;
private JTextArea displayArea;
private JButton CalculateBtn;
private JButton ClrBtn;
private JButton CloseBtn;
private JButton Amortize;
private JScrollPane scroll;
private DecimalFormat calcPattern = new DecimalFormat("$###,###.00");
private String[] rateTerm = {"", "7years @ 5.35%", "15years @ 5.5%", "30years @ 5.75%"};
private JComboBox rateTermList;
double interest[] = {5.35, 5.5, 5.75};
int term[] = {7, 15, 30};
double balance, interestAmt, monthlyInterest, monthlyPayment, monPmtInt, monPmtPrin;
int termInMonths, month, termLoop, monthLoop;
public MORT_RETRY()
Container pane = getContentPane();
lcdLoanAmt = new JTextField();
lcdMonthlyPmt = new JTextField();
displayArea = new JTextArea();//DEFINE COMBOBOX AND SCROLL
rateTermList = new JComboBox(rateTerm);
scroll = new JScrollPane(displayArea);
scroll.setSize(600,170);
scroll.setLocation(150,270);//DEFINE BUTTONS
CalculateBtn = new JButton("Calculate");
ClrBtn = new JButton("Clear Fields");
CloseBtn = new JButton("Close");
Amortize = new JButton("Amortize");//DEFINE PANEL(S)
keypad = new JPanel();
buttons = new JPanel();//DEFINE KEYPAD PANEL LAYOUT
keypad.setLayout(new GridLayout( 4, 2, 5, 5));//SET CONTROLS ON KEYPAD PANEL
keypad.add(new JLabel("Loan Amount$ : "));
keypad.add(lcdLoanAmt);
keypad.add(new JLabel("Term of loan and Interest Rate: "));
keypad.add(rateTermList);
keypad.add(new JLabel("Monthly Payment : "));
keypad.add(lcdMonthlyPmt);
lcdMonthlyPmt.setEditable(false);
keypad.add(new JLabel("Amortize Table:"));
keypad.add(displayArea);
displayArea.setEditable(false);//DEFINE BUTTONS PANEL LAYOUT
buttons.setLayout(new GridLayout( 1, 3, 5, 5));//SET CONTROLS ON BUTTONS PANEL
buttons.add(CalculateBtn);
buttons.add(Amortize);
buttons.add(ClrBtn);
buttons.add(CloseBtn);//ADD ACTION LISTENER
CalculateBtn.addActionListener(this);
ClrBtn.addActionListener(this);
CloseBtn.addActionListener(this);
Amortize.addActionListener(this);
rateTermList.addActionListener(this);//ADD PANELS
pane.add(keypad, BorderLayout.NORTH);
pane.add(buttons, BorderLayout.SOUTH);
pane.add(scroll, BorderLayout.CENTER);
addWindowListener( new WindowAdapter()
public void windowClosing(WindowEvent e)
System.exit(0);
public void actionPerformed(ActionEvent e)
String arg = lcdLoanAmt.getText();
int combined = Integer.parseInt(arg);
if (e.getSource() == CalculateBtn)
try
JOptionPane.showMessageDialog(null, "Got try here", "Error", JOptionPane.ERROR_MESSAGE);
catch(NumberFormatException ev)
JOptionPane.showMessageDialog(null, "Got here", "Error", JOptionPane.ERROR_MESSAGE);
if ((e.getSource() == CalculateBtn) && (arg != null))
try{
if ((e.getSource() == CalculateBtn) && (rateTermList.getSelectedIndex() == 1))
monthlyInterest = interest[0] / (12 * 100);
termInMonths = term[0] * 12;
monthlyPayment = combined * (monthlyInterest / (1 - (Math.pow (1 + monthlyInterest, -termInMonths))));
lcdMonthlyPmt.setText(calcPattern.format(monthlyPayment));
if ((e.getSource() == CalculateBtn) && (rateTermList.getSelectedIndex() == 2))
monthlyInterest = interest[1] / (12 * 100);
termInMonths = term[1] * 12;
monthlyPayment = combined * (monthlyInterest / (1 - (Math.pow (1 + monthlyInterest, -termInMonths))));
lcdMonthlyPmt.setText(calcPattern.format(monthlyPayment));
if ((e.getSource() == CalculateBtn) && (rateTermList.getSelectedIndex() == 3))
monthlyInterest = interest[2] / (12 * 100);
termInMonths = term[2] * 12;
monthlyPayment = combined * (monthlyInterest / (1 - (Math.pow (1 + monthlyInterest, -termInMonths))));
lcdMonthlyPmt.setText(calcPattern.format(monthlyPayment));
catch(NumberFormatException ev)
JOptionPane.showMessageDialog(null, "Invalid Entry!\nPlease Try Again", "Error", JOptionPane.ERROR_MESSAGE);
} //IF STATEMENTS FOR AMORTIZATION
if ((e.getSource() == Amortize) && (rateTermList.getSelectedIndex() == 1))
loopy(7, 5.35);
if ((e.getSource() == Amortize) && (rateTermList.getSelectedIndex() == 2))
loopy(15, 5.5);
if ((e.getSource() == Amortize) && (rateTermList.getSelectedIndex() == 3))
loopy(30, 5.75);
if (e.getSource() == ClrBtn)
rateTermList.setSelectedIndex(0);
lcdLoanAmt.setText(null);
lcdMonthlyPmt.setText(null);
displayArea.setText(null);
if (e.getSource() == CloseBtn)
System.exit(0);
private void loopy(int lTerm,double lInterest)
double total, monthly, monthlyrate, monthint, monthprin, balance, lastint, paid;
int amount, months, termloop, monthloop;
String lcd2 = lcdLoanAmt.getText();
amount = Integer.parseInt(lcd2);
termloop = 1;
paid = 0.00;
monthlyrate = lInterest / (12 * 100);
months = lTerm * 12;
monthly = amount *(monthlyrate/(1-Math.pow(1+monthlyrate,-months)));
total = months * monthly;
balance = amount;
while (termloop <= lTerm)
displayArea.setCaretPosition(0);
displayArea.append("\n");
displayArea.append("Year " + termloop + " of " + lTerm + ": payments\n");
displayArea.append("\n");
displayArea.append("Month\tMonthly\tPrinciple\tInterest\tBalance\n");
monthloop = 1;
while (monthloop <= 12)
monthint = balance * monthlyrate;
monthprin = monthly - monthint;
balance -= monthprin;
paid += monthly;
displayArea.setCaretPosition(0);
displayArea.append(monthloop + "\t" + calcPattern.format(monthly) + "\t" + calcPattern.format(monthprin) + "\t");
displayArea.append(calcPattern.format(monthint) + "\t" + calcPattern.format(balance) + "\n");
monthloop ++;
termloop ++;
public static void main(String args[])
MORT_RETRY f = new MORT_RETRY();
f.setTitle("MORTGAGE PAYMENT CALCULATOR");
f.setBounds(600, 600, 500, 500);
f.setLocationRelativeTo(null);
f.setVisible(true);
}need help with displaying the textarea correctly and the scroll bar please.
Message was edited by:
new2this2020What's the problem you're having ???
PS. -
Need help with trim and null function
Hi all,
I need help with a query. I use the trim function to get the first three characters of a string. How do I write my query so if a null value occurs in combination with my trim to say 'Null' in my results?
ThanksHi,
Thanks for the reply. What am I doing wrong?
SELECT trim(SUBSTR(AL1.user_data_text,1,3)),NVL
(AL1.user_data_text,'XX')
FROM Table
I want the XX to appear in the same column as the
trim.The main thing you're doing wrong is not formatting your code. The solution may become obvious if you do.
What you're saying is:
SELECT trim ( SUBSTR (AL1.user_data_text, 1, 3))
, NVL ( AL1.user_data_text, 'XX' )
FROM Tablewhich makes it clear that you're SELECTing two columns, when you only want to have one.
If you want that column to be exactly like the first column you're currently SELECTing, except that when that column is NULL you want it to be 'XX', then you have to apply NVL to that column, like this:
SELECT NVL ( trim ( SUBSTR (AL1.user_data_text, 1, 3))
, 'XX'
FROM Table -
Need help with conditional query
guys this is just an extension of this post that Frank was helping me with. im reposting because my requirements have changes slightly and im having a hell of a time trying to modify the query.
here is the previous post.
need help with query that can look data back please help.
CREATE TABLE "FGL"
"FGL_GRNT_CODE" VARCHAR2(60),
"FGL_FUND_CODE" VARCHAR2(60),
"FGL_ACCT_CODE" VARCHAR2(60),
"FGL_ORGN_CODE" VARCHAR2(60),
"FGL_PROG_CODE" VARCHAR2(60),
"FGL_GRNT_YEAR" VARCHAR2(60),
"FGL_PERIOD" VARCHAR2(60),
"FGL_BUDGET" VARCHAR2(60)
)data
Insert into FGL (FGL_GRNT_CODE,FGL_FUND_CODE,FGL_ACCT_CODE,FGL_ORGN_CODE,FGL_PROG_CODE,FGL_GRNT_YEAR,FGL_PERIOD,FGL_BUDGET) values ('240055','240055','7600','4730','02','11','00','400');
Insert into FGL (FGL_GRNT_CODE,FGL_FUND_CODE,FGL_ACCT_CODE,FGL_ORGN_CODE,FGL_PROG_CODE,FGL_GRNT_YEAR,FGL_PERIOD,FGL_BUDGET) values ('240055','240055','7240','4730','02','10','1','100');
Insert into FGL (FGL_GRNT_CODE,FGL_FUND_CODE,FGL_ACCT_CODE,FGL_ORGN_CODE,FGL_PROG_CODE,FGL_GRNT_YEAR,FGL_PERIOD,FGL_BUDGET) values ('240055','240055','7240','4730','02','10','1','0');
Insert into FGL (FGL_GRNT_CODE,FGL_FUND_CODE,FGL_ACCT_CODE,FGL_ORGN_CODE,FGL_PROG_CODE,FGL_GRNT_YEAR,FGL_PERIOD,FGL_BUDGET) values ('240055','240055','7600','4730','02','11','1','400');
Insert into FGL (FGL_GRNT_CODE,FGL_FUND_CODE,FGL_ACCT_CODE,FGL_ORGN_CODE,FGL_PROG_CODE,FGL_GRNT_YEAR,FGL_PERIOD,FGL_BUDGET) values ('360055','360055','7200','4730','02','10','1','400');
Insert into FGL (FGL_GRNT_CODE,FGL_FUND_CODE,FGL_ACCT_CODE,FGL_ORGN_CODE,FGL_PROG_CODE,FGL_GRNT_YEAR,FGL_PERIOD,FGL_BUDGET) values ('360055','360055','7600','4730','02','10','1','400');
Insert into FGL (FGL_GRNT_CODE,FGL_FUND_CODE,FGL_ACCT_CODE,FGL_ORGN_CODE,FGL_PROG_CODE,FGL_GRNT_YEAR,FGL_PERIOD,FGL_BUDGET) values ('240055','240055','7240','4730','02','10','14','200');
Insert into FGL (FGL_GRNT_CODE,FGL_FUND_CODE,FGL_ACCT_CODE,FGL_ORGN_CODE,FGL_PROG_CODE,FGL_GRNT_YEAR,FGL_PERIOD,FGL_BUDGET) values ('240055','240055','7600','4730','02','10','14','100');
Insert into FGL (FGL_GRNT_CODE,FGL_FUND_CODE,FGL_ACCT_CODE,FGL_ORGN_CODE,FGL_PROG_CODE,FGL_GRNT_YEAR,FGL_PERIOD,FGL_BUDGET) values ('240055','240055','7240','4730','02','10','14','200');
Insert into FGL (FGL_GRNT_CODE,FGL_FUND_CODE,FGL_ACCT_CODE,FGL_ORGN_CODE,FGL_PROG_CODE,FGL_GRNT_YEAR,FGL_PERIOD,FGL_BUDGET) values ('240055','240055','7240','4730','02','10','2','100');
Insert into FGL (FGL_GRNT_CODE,FGL_FUND_CODE,FGL_ACCT_CODE,FGL_ORGN_CODE,FGL_PROG_CODE,FGL_GRNT_YEAR,FGL_PERIOD,FGL_BUDGET) values ('240055','240055','7240','4730','02','11','2','600');
I need to find the greatest grant year for the grant by a period parameter.
once i find the greatest year i need to check the value of period 14 for that grant for the previous year and add it to the budget amount for that grant. however if their is an entry in the greatest year for period 00 then i need to ignore the period 14 of previous year and do this calculation current period +(current period - greatest year 00)
hope that makes sense so in other words with the new data above. if i was querying period two of grant year 11. i would end up with $800
because the greatest year is 11 it contains a period 0 with amount of $400 so my total should be
period 2 amount $ 600
period 0 amount $ 400 - period 2 amount of $600 = 200
600+200 = $800
if i query period 1 of grant 360055 i would just end up with 800 of grnt year 10.
i have tried to modify that query you supplied to me with no luck. I have tried for several day but im embarrased to say i just can get it to do what im trying to do .
can you please help me out.
here is the query supplied by frank kulash who gracefully put this together for me.
WITH got_greatest_year AS
SELECT fgl.* -- or whatever columns are needed
, MAX ( CASE
WHEN fgl_period = :given_period
THEN fgl_grnt_year
END
) OVER () AS greatest_year
FROM fgl
SELECT SUM (fgl_budget) AS total_budget -- or SELECT *
FROM got_greatest_year
WHERE ( fgl_grnt_year = greatest_year
AND fgl_period = :given_period
OR ( fgl_grnt_year = greatest_year - 1
AND fgl_period = 14
;MiguelHi, Miguel,
Are you waying that, when the greatest year that has :given_period also has period='00' (or '0', or whatever you want to use), then you want to double the budget from the given_period (as well as subtract the budget from the '00', and not count the pevious year's '14')? If so, add another condition to the CASE statement which decides what you're SUMming:
WITH got_greatest_year AS
SELECT TO_NUMBER (fgl_grnt_year) AS grnt_year
, fgl_period
, TO_NUMBER (fgl_budget) AS budget
, MAX ( CASE
WHEN fgl_period = :given_period
THEN TO_NUMBER (fgl_grnt_year)
END
) OVER () AS greatest_year
FROM fgl
, got_cnt_00 AS
SELECT grnt_year
, fgl_period
, budget
, greatest_year
, COUNT ( CASE
WHEN grnt_year = greatest_year
AND fgl_period = '00'
THEN 1
END
) OVER () AS cnt_00
FROM got_greatest_year
SELECT SUM ( CASE
WHEN grnt_year = greatest_year -- New
AND fgl_period = :given_period -- New
AND cnt_00 > 0 THEN budget * 2 -- New
WHEN grnt_year = greatest_year
AND fgl_period = :given_period THEN budget
WHEN grnt_year = greatest_year
AND fgl_period = '00' THEN -budget
WHEN grnt_year = greatest_year - 1
AND fgl_period = '14'
AND cnt_00 = 0 THEN budget
END
) AS total_budget
FROM got_cnt_00
;You'll notice this is the same as the previous query I posted, except for 3 lines maked "New". -
Need help with Template - unbalanced #EndEditable tag
I am unable to use this template to create a new page and get the "unbalanced #EndEditable tag" error.
If I open the file independently it looks great - otherwise I get the error.
Code for internal_students.dwt
There is an error at line 45, column 79 (absolute position 2188)
<div id="metanav"><!-- #BeginLibraryItem "/Library/metaNav.lbi" -->
<p><a href="../Library/contact/index.html">Contact Us</a></p>
<!-- #EndLibraryItem --></div>
<div id="navigation">
<div id="navigation_l">
<div id="navigation_r"><!-- #BeginLibraryItem "/Library/mainNav.lbi" --> <ul>
<li><a href="../index.html" class="first"><img src="../images/spacer.gif" alt="CAITE Homepage" width="75" height="20" border="0" /></a></li>
<li><a href="../about/index.html">About</a></li>
<li><a href="../news/index.html">News And Events</a></li>
<li><a href="../educators/index.html">For Educators</a></li>
<li><a href="../students/index.html">For Students</a></li>
<li><a href="../industry/index.html" class="last">For Industry</a></li>
</ul>
<!-- #EndLibraryItem --></div>
I need help with this as the site and templates were created 2/3 years before I arrived on the job.
Thank you
CherylOkay
- This is on-line page http://caite.cs.umass.edu/students/index.html
If you want code from template here it is:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/internal_about.dwt" codeOutsideHTMLIsLocked="false" -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<!-- InstanceBeginEditable name="doctitle" -->
<title>CAITE - Commonwealth Alliance for Information Technology Education</title>
<!-- InstanceEndEditable -->
<!-- InstanceBeginEditable name="head" -->
<meta name="Description" content="Commonwealth Alliance for Information Technology Education (CAITE) to design and carry out comprehensive programs that address under representation in information technology (IT) education and the workforce. CAITE will focus on women and minorities in groups that are underrepresented in the Massachusetts innovation economy" />
<meta name="Keywords" content="Commonwealth Alliance for Information Technology Education CAITE Massachusetts women minorities information technology IT" />
<meta name="robots" content="all, index, follow" />
<meta name="revisit-after" content="14 days" />
<meta name="author" content="Outreach Web Team" />
<!-- TemplateBeginEditable name="head" --><!-- TemplateEndEditable --><!-- InstanceEndEditable -->
<link rel="shortcut icon" href="/images/favicon.ico" />
<script type="text/javascript" src="../scripts/jquery.js"></script>
<script type="text/javascript" src="../scripts/jquery.easing.js"></script>
<script type="text/javascript" src="../scripts/jquery.pngfix.js"></script>
<script language="JavaScript" type="text/JavaScript">
<!--
$(document).ready(function() {
$("img[@src$=png], div#wrapper_l, div#wrapper_r, div#whatsnew").pngfix();
//-->
</script>
<link href="../css/screenstyle.css" rel="stylesheet" type="text/css" media="screen" />
<link href="../css/printstyle.css" rel="stylesheet" type="text/css" media="print" />
</head>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<body>
<div id="wrapper">
<div id="metanav"><!-- #BeginLibraryItem "/Library/metaNav.lbi" -->
<p><a href="../Library/contact/index.html">Contact Us</a></p>
<!-- #EndLibraryItem --></div>
<div id="navigation">
<div id="navigation_l">
<div id="navigation_r"><!-- #BeginLibraryItem "/Library/mainNav.lbi" --> <ul>
<li><a href="../index.html" class="first"><img src="../images/spacer.gif" alt="CAITE Homepage" width="75" height="20" border="0" /></a></li>
<li><a href="../about/index.html">About</a></li>
<li><a href="../news/index.html">News And Events</a></li>
<li><a href="../educators/index.html">For Educators</a></li>
<li><a href="../students/index.html">For Students</a></li>
<li><a href="../industry/index.html" class="last">For Industry</a></li>
</ul>
<!-- #EndLibraryItem --></div>
<!-- end navigation right -->
</div><!-- end navigation left -->
</div><!-- end navigation -->
<div id="wrapper_l">
<div id="wrapper_r">
<div id="innerwrapper">
<div id="internalBanner-print"> <h1>Commonwealth Alliance for Information Technology Education (CAITE)</h1></div>
<div id="internalBanner"><!-- InstanceBeginEditable name="internalBanner" -->
<div class="students-banner">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="125" height="188" align="left" valign="top" id="homeImage"><img src="../images/logo_vertical_small.png" alt="CAITE" width="105" height="188" /></td>
<td align="left" valign="top" id="internal-banner-quote"><div id="internalQuote">
<div id="internalQuote-inner">
<p>CAITE designs and carrys out comprehensive programs that address under-representation in information technology (IT).</p>
</div>
</div></td>
</tr>
</table>
</div>
<!-- InstanceEndEditable --></div> <!-- end banner -->
<div id="internalContent">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="317" align="left" valign="top" id="secondary-content">
<!-- InstanceBeginEditable name="SecondaryNav" --><!-- #BeginLibraryItem "/Library/studentNav.lbi" -->
<h3><a href="../students/index.html">For Students</a></h3>
<div id="secondaryNav">
<ul>
<li><a href="http://www.takeITgoanywhere.org" target="_blank">TakeITgoanywhere.org</a></li>
</ul>
</div><!-- #EndLibraryItem --><!-- InstanceEndEditable -->
</td>
<td align="left" valign="top" id="contentCell"><!-- InstanceBeginEditable name="mainContent" -->
<h1>For Students</h1>
<p>The University of Massachusetts Amherst is leading a Commonwealth Alliance for Information Technology Education (CAITE) to design and carry out comprehensive programs that address under representation in information technology (IT) education and the workforce. CAITE will focus on women and minorities in groups that are underrepresented in the Massachusetts innovation economy; that is, economically, academically, and socially disadvantaged residents.</p>
<p>The project will pilot a series of outreach programs supported by educational pathways in three regions (one rural, one suburban, and one urban). The project will include work with high school teachers, staff, and counselors. CAITE will identify best practices and disseminate, deploy, extend and institutionalize these best practices statewide and nationally.</p>
<p>Community colleges are the centerpiece of CAITE because of the central role they play in reaching out to underserved populations and in serving as a gateway to careers and further higher education.</p>
<p>This project will build a broad alliance built on its leadership in and partnership with the Commonwealth Information Technology Initiative (CITI), the Boston Area Advanced Technological Education Center (BATEC), regional Louis Stokes Alliances and NSF EGEP programs, and other partnerships and initiatives focused on information technology education and STEM pipeline issues</p>
<p> </p>
<!-- InstanceEndEditable --></td>
</tr>
</table>
</div>
<div id="alliances">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="30" align="left" valign="top"><h2><a href="../about/alliances.html">Alliances</a></h2></td>
</tr>
<tr>
<td align="center" valign="middle"><!-- #BeginLibraryItem "/Library/AllianceTable.lbi" --><p>
<table border="0" cellpadding="2" cellspacing="0">
<tr>
<td width="35" align="center" valign="middle"> </td>
<td align="center" valign="middle"><a href="http://www.citi.mass.edu/" target="_blank"><img src="../images/logo_citi.jpg" alt="Citi" width="65" height="50" border="0 /"></a></td>
<td align="center" valign="middle"><a href="http://www.batec.org/index.php" target="_blank"><img src="../images/logo_batec.jpg" alt="BATEC" width="69" height="46" border="0" /></a></td>
<td align="center" valign="middle"><a href="http://www.nsf.gov/index.jsp" target="_blank"><img src="../images/nsflogo.gif" alt="NSF" width="64" height="65" border="0" ></a></td>
<td align="center" valign="middle"><a href="http://www.nelsamp.neu.edu/" target="_blank"><img src="../images/nelsamplogo.gif" width="100" border="0"></a></td>
<td align="center" valign="middle"><p><a href="http://mysite.verizon.net/milnerm/" target="_blank"><img src="../images/umlsamp.png" width="85" height="63" border="0"></a></p> </td>
<td align="center" valign="middle"><a href="http://www.neagep.org/index.asp" target="_blank"><img src="../images/nealogo.gif" border="0" ></a></td>
</tr>
</table>
<!-- #EndLibraryItem --></td>
</tr>
</table>
</div>
</div> <!-- end inner wrapper -->
</div><!-- end wrapper right -->
</div><!-- end wrapper left -->
<div id="bottom">
<div id="bottom_l">
<div id="bottom_r"> </div><!-- end bottom right -->
</div><!-- end bottom left -->
</div> <!-- end bottom -->
</div><!-- end wrapper -->
<div id="copyright"><!-- #BeginLibraryItem "/Library/copyright.lbi" -->
<p>Sponsored by CAITE an NSF CISE Broadening Participation in Computing Alliance<br />
© copyright 2008 <a href="http://www.umass.edu/" target="_blank">University of Massachusetts, Amherst</a></p>
<font color="#666666"><br>
</font>
<p><font color="#666666" size=2> This material is based upon work supported by the National Science Foundation under Grant No.s NSF-0634412 and NSF-0837739. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.</font> </p>
<!-- #EndLibraryItem --></div>
<!-- end copyright -->
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-7435501-1");
pageTracker._trackPageview();
} catch(err) {}</script>
</body>
<!-- InstanceEnd --></html> -
Need help with home work see what you got
1. The MEMBERS table has the phone number broken into three fields:
CountryCode - e,g., '1' for the United States
AreaCode - e.g., three digits for the United States
Phone - e.g., 7 digits, with or without a dash between the first three digits (Exchange) and last four digits (Line)
Any or all of the fields may be missing (null) or blank or contain only spaces.
Write a T-SQL statement to concatenate the three fields into a complete phone number
with the format: CountryCode(AreaCode)Exchange-Line, e.g., 1(816)123-4567
If no Phone is present, return a blank string.
If no area code is present, return only the Phone number. Do not return an empty pair of parentheses or the CountryCode.
2. The PERSON_CAMPAIGN table contains a row for each war/conflict the member served in. A member may have served in multiple conflicts
For this purpose, each row contains:
PersonID - unique member identifier
Campaign - name of war/conflict
Write a T-SQL statement to return one row per member with all campaigns concatenated into a single field and separated by commas
E.g., PersonID Campaigns
12345678 Global War on Terror, Iraq, Afghanistan
3. The MEMBER_STATISTICS table contains one row per post.
For this purpose, each row contains the post's:
Division - a way of grouping posts by their member size
Department - the state in which the post is located
PostNumber - unique post identifier
Reinstated - count of members whose annual subscription had lapsed for at least two years but who have now subscribed for the current year
Write a T-SQL statement to determine the top ten posts in each division based on the number of reinstated members, with a minimum of 50 reinstated members.
Rank them by highest to lowest reinstated count.
Return their Division, Rank, Department, PostNumber, ReinstatedI got 3 home work questions think i have the first two need help with the last one please.
Kinda stuck on #3 hard I can see data not sure witch to sum or count?
1. The MEMBERS table has the phone number broken into three fields:
CountryCode - e,g., '1' for the United States
AreaCode - e.g., three digits for the United States
Phone - e.g., 7 digits, with or without a dash between the first three digits (Exchange) and last four digits (Line)
Any or all of the fields may be missing (null) or blank or contain only spaces.
Write a T-SQL statement to concatenate the three fields into a complete phone number
with the format: CountryCode(AreaCode)Exchange-Line, e.g., 1(816)123-4567
If no Phone is present, return a blank string.
If no area code is present, return only the Phone number. Do not return an empty pair of parentheses or the CountryCode.
ANSWER******************
Notes: created a funtion to format the phone
Then used the this function in a select to concatenate Phone
CREATE FUNCTION dbo.FORMATPHONE (@CountryCode int, @AreCode int, @Phone VARCHAR(14))
RETURNS VARCHAR(14)
AS BEGIN
DECLARE @ReturnPhone VARCHAR(14)
DECLARE @NewPhone VARCHAR(14)
-- Note case sets newphone to null if phone null or '' also to see if phone has '-' in it if not inserts into newphone
case
when @Phone is null or @Phone = ''
Then SET @NewPhone = Null
when @Phone = substring(@Phone,4,1)='-'
Then SET @NewPhone = @Phone
else
SET @NewPhone = substring(@Phone,1,3)+'-'+ substring(@Phone,4,4)
End
case
when @NewPhone is null then SET @ReturnPhone = @NewPhone
elese case
when @AreCode is null or @AreCode = '' then SET @ReturnPhone = @NewPhone
else
SET @ReturnPhone = @CountryCode + '(' + @AreCode + ')' + @NewPhone
END
END
RETURN @ReturnPhone
END
select dbo.FORMATPHONE(CountryCode,AreCode,Phone)
from MEMBERS
2. The PERSON_CAMPAIGN table contains a row for each war/conflict the member served in. A member may have served in multiple conflicts
For this purpose, each row contains:
PersonID - unique member identifier
Campaign - name of war/conflict
Write a T-SQL statement to return one row per member with all campaigns concatenated into a single field and separated by commas
E.g., PersonID Campaigns
12345678 Global War on Terror, Iraq, Afghanistan
ANSWER******************
SELECT PersonID,
STUFF(( SELECT ',' + Campaign AS [text()]
FROM PERSON_CAMPAIGN
WHERE (PersonID = Results.ID)
FOR XML PATH('')
), 1, 1, '' )
AS Campaigns
FROM PERSON_CAMPAIGN Results
3. The MEMBER_STATISTICS table contains one row per post.
For this purpose, each row contains the post's:
Division - a way of grouping posts by their member size
Department - the state in which the post is located
PostNumber - unique post identifier
Reinstated - count of members whose annual subscription had lapsed for at least two years but who have now subscribed for the current year
Write a T-SQL statement to determine the top ten posts in each division based on the number of reinstated members, with a minimum of 50 reinstated members.
Rank them by highest to lowest reinstated count.
Return their Division, Rank, Department, PostNumber, Reinstated -
Need help with Berkeley XML DB Performance
We need help with maximizing performance of our use of Berkeley XML DB. I am filling most of the 29 part question as listed by Oracle's BDB team.
Berkeley DB XML Performance Questionnaire
1. Describe the Performance area that you are measuring? What is the
current performance? What are your performance goals you hope to
achieve?
We are measuring the performance while loading a document during
web application startup. It is currently taking 10-12 seconds when
only one user is on the system. We are trying to do some testing to
get the load time when several users are on the system.
We would like the load time to be 5 seconds or less.
2. What Berkeley DB XML Version? Any optional configuration flags
specified? Are you running with any special patches? Please specify?
dbxml 2.4.13. No special patches.
3. What Berkeley DB Version? Any optional configuration flags
specified? Are you running with any special patches? Please Specify.
bdb 4.6.21. No special patches.
4. Processor name, speed and chipset?
Intel Xeon CPU 5150 2.66GHz
5. Operating System and Version?
Red Hat Enterprise Linux Relase 4 Update 6
6. Disk Drive Type and speed?
Don't have that information
7. File System Type? (such as EXT2, NTFS, Reiser)
EXT3
8. Physical Memory Available?
4GB
9. Are you using Replication (HA) with Berkeley DB XML? If so, please
describe the network you are using, and the number of Replica’s.
No
10. Are you using a Remote Filesystem (NFS) ? If so, for which
Berkeley DB XML/DB files?
No
11. What type of mutexes do you have configured? Did you specify
–with-mutex=? Specify what you find inn your config.log, search
for db_cv_mutex?
None. Did not specify -with-mutex during bdb compilation
12. Which API are you using (C++, Java, Perl, PHP, Python, other) ?
Which compiler and version?
Java 1.5
13. If you are using an Application Server or Web Server, please
provide the name and version?
Oracle Appication Server 10.1.3.4.0
14. Please provide your exact Environment Configuration Flags (include
anything specified in you DB_CONFIG file)
Default.
15. Please provide your Container Configuration Flags?
final EnvironmentConfig envConf = new EnvironmentConfig();
envConf.setAllowCreate(true); // If the environment does not
// exist, create it.
envConf.setInitializeCache(true); // Turn on the shared memory
// region.
envConf.setInitializeLocking(true); // Turn on the locking subsystem.
envConf.setInitializeLogging(true); // Turn on the logging subsystem.
envConf.setTransactional(true); // Turn on the transactional
// subsystem.
envConf.setLockDetectMode(LockDetectMode.MINWRITE);
envConf.setThreaded(true);
envConf.setErrorStream(System.err);
envConf.setCacheSize(1024*1024*64);
envConf.setMaxLockers(2000);
envConf.setMaxLocks(2000);
envConf.setMaxLockObjects(2000);
envConf.setTxnMaxActive(200);
envConf.setTxnWriteNoSync(true);
envConf.setMaxMutexes(40000);
16. How many XML Containers do you have? For each one please specify:
One.
1. The Container Configuration Flags
XmlContainerConfig xmlContainerConfig = new XmlContainerConfig();
xmlContainerConfig.setTransactional(true);
xmlContainerConfig.setIndexNodes(true);
xmlContainerConfig.setReadUncommitted(true);
2. How many documents?
Everytime the user logs in, the current xml document is loaded from
a oracle database table and put it in the Berkeley XML DB.
The documents get deleted from XML DB when the Oracle application
server container is stopped.
The number of documents should start with zero initially and it
will grow with every login.
3. What type (node or wholedoc)?
Node
4. Please indicate the minimum, maximum and average size of
documents?
The minimum is about 2MB and the maximum could 20MB. The average
mostly about 5MB.
5. Are you using document data? If so please describe how?
We are using document data only to save changes made
to the application data in a web application. The final save goes
to the relational database. Berkeley XML DB is just used to store
temporary data since going to the relational database for each change
will cause severe performance issues.
17. Please describe the shape of one of your typical documents? Please
do this by sending us a skeleton XML document.
Due to the sensitive nature of the data, I can provide XML schema instead.
18. What is the rate of document insertion/update required or
expected? Are you doing partial node updates (via XmlModify) or
replacing the document?
The document is inserted during user login. Any change made to the application
data grid or other data components gets saved in Berkeley DB. We also have
an automatic save every two minutes. The final save from the application
gets saved in a relational database.
19. What is the query rate required/expected?
Users will not be entering data rapidly. There will be lot of think time
before the users enter/modify data in the web application. This is a pilot
project but when we go live with this application, we will expect 25 users
at the same time.
20. XQuery -- supply some sample queries
1. Please provide the Query Plan
2. Are you using DBXML_INDEX_NODES?
Yes.
3. Display the indices you have defined for the specific query.
XmlIndexSpecification spec = container.getIndexSpecification();
// ids
spec.addIndex("", "id", XmlIndexSpecification.PATH_NODE | XmlIndexSpecification.NODE_ATTRIBUTE | XmlIndexSpecification.KEY_EQUALITY, XmlValue.STRING);
spec.addIndex("", "idref", XmlIndexSpecification.PATH_NODE | XmlIndexSpecification.NODE_ATTRIBUTE | XmlIndexSpecification.KEY_EQUALITY, XmlValue.STRING);
// index to cover AttributeValue/Description
spec.addIndex("", "Description", XmlIndexSpecification.PATH_EDGE | XmlIndexSpecification.NODE_ELEMENT | XmlIndexSpecification.KEY_SUBSTRING, XmlValue.STRING);
// cover AttributeValue/@value
spec.addIndex("", "value", XmlIndexSpecification.PATH_EDGE | XmlIndexSpecification.NODE_ATTRIBUTE | XmlIndexSpecification.KEY_EQUALITY, XmlValue.STRING);
// item attribute values
spec.addIndex("", "type", XmlIndexSpecification.PATH_EDGE | XmlIndexSpecification.NODE_ATTRIBUTE | XmlIndexSpecification.KEY_EQUALITY, XmlValue.STRING);
// default index
spec.addDefaultIndex(XmlIndexSpecification.PATH_NODE | XmlIndexSpecification.NODE_ELEMENT | XmlIndexSpecification.KEY_EQUALITY, XmlValue.STRING);
spec.addDefaultIndex(XmlIndexSpecification.PATH_NODE | XmlIndexSpecification.NODE_ATTRIBUTE | XmlIndexSpecification.KEY_EQUALITY, XmlValue.STRING);
// save the spec to the container
XmlUpdateContext uc = xmlManager.createUpdateContext();
container.setIndexSpecification(spec, uc);
4. If this is a large query, please consider sending a smaller
query (and query plan) that demonstrates the problem.
21. Are you running with Transactions? If so please provide any
transactions flags you specify with any API calls.
Yes. READ_UNCOMMITED in some and READ_COMMITTED in other transactions.
22. If your application is transactional, are your log files stored on
the same disk as your containers/databases?
Yes.
23. Do you use AUTO_COMMIT?
No.
24. Please list any non-transactional operations performed?
No.
25. How many threads of control are running? How many threads in read
only mode? How many threads are updating?
We use Berkeley XML DB within the context of a struts web application.
Each user logged into the web application will be running a bdb transactoin
within the context of a struts action thread.
26. Please include a paragraph describing the performance measurements
you have made. Please specifically list any Berkeley DB operations
where the performance is currently insufficient.
We are clocking 10-12 seconds of loading a document from dbd when
five users are on the system.
getContainer().getDocument(documentName);
27. What performance level do you hope to achieve?
We would like to get less than 5 seconds when 25 users are on the system.
28. Please send us the output of the following db_stat utility commands
after your application has been running under "normal" load for some
period of time:
% db_stat -h database environment -c
% db_stat -h database environment -l
% db_stat -h database environment -m
% db_stat -h database environment -r
% db_stat -h database environment -t
(These commands require the db_stat utility access a shared database
environment. If your application has a private environment, please
remove the DB_PRIVATE flag used when the environment is created, so
you can obtain these measurements. If removing the DB_PRIVATE flag
is not possible, let us know and we can discuss alternatives with
you.)
If your application has periods of "good" and "bad" performance,
please run the above list of commands several times, during both
good and bad periods, and additionally specify the -Z flags (so
the output of each command isn't cumulative).
When possible, please run basic system performance reporting tools
during the time you are measuring the application's performance.
For example, on UNIX systems, the vmstat and iostat utilities are
good choices.
Will give this information soon.
29. Are there any other significant applications running on this
system? Are you using Berkeley DB outside of Berkeley DB XML?
Please describe the application?
No to the first two questions.
The web application is an online review of test questions. The users
login and then review the items one by one. The relational database
holds the data in xml. During application load, the application
retrieves the xml and then saves it to bdb. While the user
is making changes to the data in the application, it writes those
changes to bdb. Finally when the user hits the SAVE button, the data
gets saved to the relational database. We also have an automatic save
every two minues, which saves bdb xml data and saves it to relational
database.
Thanks,
Madhav
[email protected]Could it be that you simply do not have set up indexes to support your query? If so, you could do some basic testing using the dbxml shell:
milu@colinux:~/xpg > dbxml -h ~/dbenv
Joined existing environment
dbxml> setverbose 7 2
dbxml> open tv.dbxml
dbxml> listIndexes
dbxml> query { collection()[//@date-tip]/*[@chID = ('ard','zdf')] (: example :) }
dbxml> queryplan { collection()[//@date-tip]/*[@chID = ('ard','zdf')] (: example :) }Verbosity will make the engine display some (rather cryptic) information on index usage. I can't remember where the output is explained; my feeling is that "V(...)" means the index is being used (which is good), but that observation may not be accurate. Note that some details in the setVerbose command could differ, as I'm using 2.4.16 while you're using 2.4.13.
Also, take a look at the query plan. You can post it here and some people will be able to diagnose it.
Michael Ludwig -
Need help with my usecase based on transient ViewObject
I am using 11.1.1.4.0 Jdev version. I need help with my usecase.Been trying it for 2 days but couldn't figure out the issue.
I have a transientVO . In this VO Rows will be populated programmatically. CountryId is an attribute of this VO. I have created a viewAccessor "CountriesVA" from Country VO of HR schema.
I have a LOV for the countryId which is based on this VA ,getting countries from CountryTable.
This is the model part which works fine.
Before the page load i have called a method to create a row for this transientVO.Once the row is created i can see the SOC in my page which i have created as below.
Now i want to insert a row in the transientVO if user selects a country and restrict duplicate entry . (As One row is already created 1st time there will be no rows created.after that rows will be inserted)
The issue is :: Suppose there are 2 countries. A & B .When user does the following actions :
Insert A . Done //as 1st entry
Insert B . Done //as 1st time entry
Insert A . duplicate not inserted
Insert B . getting inserted // the bug.
<af:selectOneChoice value="#{bindings.CountryId.inputValue}"
label="#{bindings.CountryId.label}"
required="#{bindings.CountryId.hints.mandatory}"
shortDesc="#{bindings.CountryId.hints.tooltip}" id="soc1"
immediate="true" autoSubmit="true"
valueChangeListener="#{pageFlowScope.managedBean.countryIdVC}">
public void countryIdVC(ValueChangeEvent valueChangeEvent) {
// Add event code here...
String oldValue=null;
setEL("#{bindings.CountryId.inputValue}", valueChangeEvent.getOldValue());
if(evaluateEL("#{bindings.CountryId.attributeValue}")!=null)
oldValue =evaluateEL("#{bindings.CountryId.attributeValue}").toString();
setEL("#{bindings.CountryId.inputValue}", valueChangeEvent.getNewValue());
String newValue=evaluateEL("#{bindings.CountryId.attributeValue}").toString();
BindingContainer bindings = BindingContext.getCurrent().getCurrentBindingsEntry();
DCIteratorBinding dciter = (DCIteratorBinding) bindings.get("ViewObj1Iterator");
//access the underlying RowSetIterator
RowSetIterator rsi = dciter.getRowSetIterator();
boolean duplicate=true;
if(oldValue!=null){
rsi.getCurrentRow().setAttribute("CountryId", oldValue);
// Row row= rsi.findByKey(new Key(new Object[] { newValue}), 1)[0];
Key key =new Key(new Object[] { newValue});
Row row=rsi.getRow(key);
if(row==null){
System.err.println(duplicate);
duplicate=false;
}else{
rsi.setCurrentRow(row);
if(!duplicate){
//get handle to the last row
Row lastRow = rsi.last();
//obtain the index of the last row
int lastRowIndex = rsi.getRangeIndexOf(lastRow);
//create a new row
Row newRow = rsi.createRow();
newRow.setAttribute("CountryId", newValue);
//initialize the row
newRow.setNewRowState(Row.STATUS_INITIALIZED);
//add row to last index + 1 so it becomes last in the range set
rsi.insertRowAtRangeIndex(lastRowIndex +1, newRow);
//make row the current row so it is displayed correctly
rsi.setCurrentRow(newRow);I read the reply from Andrejus Baranovskis and thought of studying and implementing that in my useCase.Well it worked . I implemented the same Logic but rowIteration was done in AppModule.
Con-Fusion, Bugs, Facts &amp; Workarounds: Iterating through View Object RowIterator Bug.(NOT ADF BUG, Development B…
http://docs.oracle.com/cd/E15523_01/web.1111/b31974/bcservices.htm#sm0206
9.7.6 What You May Need to Know About Programmatic Row Set Iteration
The problem is solved ,the above links helped me solve the problem.
what i did is i have created a method in appmodule to iterate rows and all the method y operation bindings and my logic works fine ....
MY Advice to all Adf developers ,though i am not an expert but i can assure you to follow the above process for rowIteration.If you use the iterator binding in the manage bean to navigate the rows u'll face issues which are unexpected.
In AppModule :::::
public boolean createRow(String oldValue,String newValue){
System.err.println(oldValue+""+newValue);
ViewObjectImpl vo=getViewObj1();
boolean duplicate=false;
if(oldValue!=null){
RowSetIterator iter = vo.createRowSetIterator(null);
System.err.println("iterating rows ");
while (iter.hasNext()) {
Row r = iter.next();
System.err.println(iter.getRangeIndexOf(r)+" row is "+r.getAttribute("CountryId"));
if(r.getAttribute("CountryId").toString().equals(newValue)){
duplicate=true;
break;
// Do something with the current row.
// close secondary row set iterator
iter.closeRowSetIterator();
return duplicate;
In ManageBean :::::
public void countryIdVC(ValueChangeEvent valueChangeEvent) {
// Add event code here...
String oldValue=null;
System.err.println("Old Value"+valueChangeEvent.getOldValue());
setEL("#{bindings.CountryId.inputValue}", valueChangeEvent.getOldValue());
if(evaluateEL("#{bindings.CountryId.attributeValue}")!=null)
oldValue =evaluateEL("#{bindings.CountryId.attributeValue}").toString();
setEL("#{bindings.CountryId.inputValue}", valueChangeEvent.getNewValue());
String newValue=evaluateEL("#{bindings.CountryId.attributeValue}").toString();
BindingContainer bindings = BindingContext.getCurrent().getCurrentBindingsEntry();
//access the name of the iterator the table is bound to. Its "allDepartmentsIterator"
//in this sample
DCIteratorBinding dciter = (DCIteratorBinding) bindings.get("ViewObj1Iterator");
//access the underlying RowSetIterator
RowSetIterator rsi = dciter.getRowSetIterator();
if(oldValue!=null){
rsi.getCurrentRow().setAttribute("CountryId", oldValue);
OperationBinding operation = bindings.getOperationBinding("createRow");
operation.getParamsMap().put("oldValue", oldValue);
operation.getParamsMap().put("newValue", newValue);
if(!(Boolean)operation.execute()){
//get handle to the last row
Row lastRow = rsi.last();
//obtain the index of the last row
int lastRowIndex = rsi.getRangeIndexOf(lastRow);
//create a new row
Row newRow = rsi.createRow();
newRow.setAttribute("CountryId", newValue);
//initialize the row
newRow.setNewRowState(Row.STATUS_INITIALIZED);
//add row to last index + 1 so it becomes last in the range set
System.err.println("Inserting row at index "+lastRowIndex+1);
rsi.insertRowAtRangeIndex(lastRowIndex +1, newRow);
//make row the current row so it is displayed correctly
rsi.setCurrentRow(newRow);
else{
System.err.println("Data found So not inserting,only setting current Row");
Key key =new Key(new Object[] { newValue});
rsi.setCurrentRow(rsi.getRow(key));
Maybe you are looking for
-
I can not delete my history and adding new bookmarks. Upgrading to later Firefox versions and/or re-installing didn't rectify it either. The address bar still shows the web addresses of old and whenever I make new bookmarks, it's always gone as if it
-
ENCORE CS6 gives error message during the burning of Blu-ray Disc
I did it again - upgraded my Production Premium CS5 to CS6. I will not forget CS4 that never came to work. It was not a workable version, but at best an Alfa or maybe Beta version. I was therefore naturally afraid to upgrade my reasonably well functi
-
I need a dummies guide to flashing
i have just this morning got my nokia n900, second hand from ebay. before i put any files on there i want to restore it completely, but this flashing thing is really confusing me. I've done a search of the boards but it baffles me, so if anyone could
-
Database backup restore problem
This question was asked in Setember but was not answered and is now archived. I'm using final cut server 1.1.1 on snow leopard Server. i can not restore my backup file(XXXXXX.zip) below is the error display.... Checking for other backup processes...
-
Serious Administrator password problems can't get into the Portal!
Hi All Currently we have 3 Portal Servers DEV, TEST & PRD and we have upgraded them all to Stack 11. However on or DEV system we have a problem we now cannot log in using the Administrator account all I get is: "user authentication failed" I have tri