Parsing Suffix from a Name
Hi All,
I want to parse a Name with patterns
You can see the patterns in Name Column. I want the Middle Name has null which has suffix ('JR','SR','II','III','IV','VI','VII','VIII','IX')
<font color="red"> No need to consider after 'AND' / '&' name </font>
Current Table contains in this Format (All Middle_name has Suffix)
Name First_name Middle_name Last_name
AGLIARDI SR THERESA AGLIARDI SR THERESA
ANNE SR SLATON ANNE SR SLATON
ANDREW III UPHOLSTERY & SLIPCOVER ANDREW III UPHOLSTERY
ANGELOZZI JR ORPALT AND CLESTON ANGELOZZI JR ORPALTHelp me guys.......Thanks a lot
Require Table output to be updated as
Name First_name Middle_name Last_name
AGLIARDI SR THERESA AGLIARDI null THERESA
ANNE SR SLATON ANNE NULL SLATON
ANDREW III UPHOLSTERY & SLIPCOVER ANDREW NULL UPHOLSTERY
ANGELOZZI JR ORPALT AND CLESTON ANGELOZZI NULL ORPALTEdited by: Krux_rap on Apr 11, 2012 7:56 PM
hi,
it would be helpful if you described your requirements in a more systematical way. Examples are good but never complete.
So try to figure out your rules needed and write them down. After that, try to impement them step by step.
with t as (
select 'ARLIE G WATKINSON JR AND MARYA WATKINSON' s from dual union all
select 'ANTHONY SR - DONNA MARQUEZ' from dual)
first of all you try to get the three parts
select
regexp_replace(s,'([^ ]*)(.*?)([^ ]*$)','\1') first_name
,regexp_replace(s,'([^ ]*)(.*?)([^ ]*$)','\2') middle_name
,regexp_replace(s,'([^ ]*)(.*?)([^ ]*$)','\3') last_name
from t
FIRST_NAME MIDDLE_NAME LAST_NAME
ARLIE G WATKINSON JR AND MARYA WATKINSON
ANTHONY SR - DONNA MARQUEZ
in the next step you apply the rules you need
with t as (
select 'ARLIE G WATKINSON JR AND MARYA WATKINSON' s from dual union all
select 'ANTHONY SR - DONNA MARQUEZ' from dual)
select
regexp_replace(s,'([^ ]*)(.*?)([^ ]*$)','\1') first_name
,case
when -- last_name with leading blank is in middle_name
instr(regexp_replace(s,'([^ ]*)(.*?)([^ ]*$)','\2')
,' '||regexp_replace(s,'([^ ]*)(.*?)([^ ]*$)','\3')
) > 0
then -- take the part before the last_name as middle name
trim(
substr( regexp_replace(s,'([^ ]*)(.*?)([^ ]*$)','\2')
,1
,instr(regexp_replace(s,'([^ ]*)(.*?)([^ ]*$)','\2')
,' '||regexp_replace(s,'([^ ]*)(.*?)([^ ]*$)','\3')
when
regexp_like(s,'JR|SR|II|III|IV|VI|VII|VIII|IX')
then
null
else
regexp_replace(s,'([^ ]*)(.*?)([^ ]*$)','\2')
end middle_name
,regexp_replace(s,'([^ ]*)(.*?)([^ ]*$)','\3') last_name
from t
FIRST_NAME MIDDLE_NAME LAST_NAME
ARLIE G WATKINSON
ANTHONY MARQUEZso now you have to formulate the rule for changing the last_name and the first_name, e.g. is the first name is follow by a comma. After that, we can implement it.
at the kast end, you may optimize the query, e.g. the are shorter ways for the regexp, but i used the verbose versio for demonstration effect.
regards
chris
p.s.
btw, could anyone please explain me how to get a result from toad to copy in a thread which displays the data fitting in the columns they belong to?
Edited by: chris227 on 12.04.2012 01:39
Edited by: chris227 on 13.04.2012 00:46
s instead of ANTHONY SR - DONNA MARQUEZ in the case expression
Similar Messages
-
How do i parse data from the second jframe back to the first?
Hello.
I have a jFrame were I promt users to keep a list of Names in a jTable. (I keep data for something else, but lets say names.. ) Anyway, afterwords I want to add some extra parameters for each name. So I created a new frame, which is opened when user press an Edit button. The new frame opens and users can add for the specific name some extra data, like age, height, color, sex.. etc. that characterizes this person.
On this second form i have a save button, which when its pressed i would like to keep this information for this name, so as when user press edit again from the first frame on the same Name the data that previously entered will be loaded (lets say that the user can not enter the say name again)
I haven' t figured the code for the save Button, but with the rest I am fine.
Can you give any ideas with structures that I have to use and how the action listener will have to be??
When I set visible the new form i have made a constructor that loads the new form which have a label with the name of the person that is edited., but how do i parse data from the second form back to the first that is already opened??
Thanks very much..I found it.. it was not so hard afterall..
anyway, i quote the new code..
package namelist;
// Java core packages
import java.awt.event.*;
import java.util.*;
// Java extension packages
import javax.swing.*;
import javax.swing.table.*;
public class NamesGUI extends javax.swing.JFrame {
//Variables for managing the jTables
DefaultTableModel tableModel;
Vector rows,cols;
String[] colName1 = {"List of Names"};
ManageJTables mJT = new ManageJTables();
Hashtable h;
/** Creates new form ProsAgentGUI */
public NamesGUI() {
h = new Hashtable();
initComponents();
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
private void initComponents() {
Panel = new javax.swing.JPanel();
ToolBar = new javax.swing.JToolBar();
ADD = new javax.swing.JButton();
EDIT = new javax.swing.JButton();
REMOVE = new javax.swing.JButton();
jButton1 = new javax.swing.JButton();
TScrollPane = new javax.swing.JScrollPane();
Table = new javax.swing.JTable();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Names");
setBackground(new java.awt.Color(0, 51, 51));
Panel.setBorder(javax.swing.BorderFactory.createTitledBorder("List of Names"));
ToolBar.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
ADD.setText("ADD");
ADD.setToolTipText("");
ADD.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));
ADD.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
ADDActionPerformed(evt);
ToolBar.add(ADD);
EDIT.setText("EDIT");
EDIT.setToolTipText("");
EDIT.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));
EDIT.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
EDITActionPerformed(evt);
ToolBar.add(EDIT);
REMOVE.setText("REMOVE");
REMOVE.setToolTipText("");
REMOVE.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));
REMOVE.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
REMOVEActionPerformed(evt);
ToolBar.add(REMOVE);
jButton1.setText("jButton1");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
ToolBar.add(jButton1);
rows=new Vector();
cols= new Vector();
cols=mJT.addColumns(colName1, cols);
tableModel =new DefaultTableModel();
tableModel.setDataVector(rows,cols);
Table.setModel(tableModel);
TScrollPane.setViewportView(Table);
org.jdesktop.layout.GroupLayout PanelLayout = new org.jdesktop.layout.GroupLayout(Panel);
Panel.setLayout(PanelLayout);
PanelLayout.setHorizontalGroup(
PanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(ToolBar, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 210, Short.MAX_VALUE)
.add(TScrollPane, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 210, Short.MAX_VALUE)
PanelLayout.setVerticalGroup(
PanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(PanelLayout.createSequentialGroup()
.add(ToolBar, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 34, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(TScrollPane, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 159, Short.MAX_VALUE))
org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
.addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.add(Panel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
.addContainerGap(29, Short.MAX_VALUE)
.add(Panel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
pack();
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
System.out.println(h.toString());
public void updateNamesTable (int id, String na){
Integer i2 = new Integer(id);
Object o2 = (Object)i2;
if (h.containsKey(o2)){
Name a = (Name)h.get(o2);
a.name = na;
h.put(o2,a);
else {
Name aa = new Name();
aa.name=na;
h.put(o2,(Object)aa);
private void EDITActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String name = Table.getValueAt(Table.getSelectedRow(),0).toString();
int rowNum= Table.getSelectedRow();
Integer i = new Integer(rowNum);
Object o = (Object)i;
updateNamesTable (rowNum, name);
//public NameEditor(Name n, Hashtable h, int id)
NameEditor re = new NameEditor((Name)h.get(o), h, rowNum );
re.setVisible(true);
private void REMOVEActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
mJT.deleteRow(Table.getSelectedRow(), rows, Table);
private void ADDActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
mJT.addRow(rows, Table);
* @param args the command line arguments
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NamesGUI().setVisible(true);
// Variables declaration - do not modify
javax.swing.JButton ADD;
javax.swing.JButton EDIT;
javax.swing.JPanel Panel;
javax.swing.JButton REMOVE;
javax.swing.JScrollPane TScrollPane;
javax.swing.JTable Table;
javax.swing.JToolBar ToolBar;
javax.swing.JButton jButton1;
// End of variables declaration
public class NameEditor extends javax.swing.JFrame {
Hashtable h;
Name n;
int id;
/** Creates new form NameEditor */
public NameEditor() {
initComponents();
public NameEditor(Name n, Hashtable h, int id) {
this.h=h;
this.n=n;
this.id=id;
initComponents();
NameField.setText(n.name);
jTextField2.setText(n.weight);
jTextField1.setText(n.height);
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
private void initComponents() {
NameLabel = new javax.swing.JLabel();
NameField = new javax.swing.JTextField();
SaveBut = new javax.swing.JButton();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
jTextField2 = new javax.swing.JTextField();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Name Editor");
getAccessibleContext().setAccessibleName("Name Editor");
NameLabel.setText("Name: ");
NameField.setEditable(false);
NameField.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
NameFieldActionPerformed(evt);
SaveBut.setText("SAVE");
SaveBut.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
SaveButActionPerformed(evt);
jLabel3.setText("Height");
jLabel4.setText("Weight");
org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
.add(layout.createSequentialGroup()
.addContainerGap()
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(jLabel4)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED))
.add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jLabel3)
.add(NameLabel))
.add(16, 16, 16)))
.add(17, 17, 17)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(NameField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 138, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING, false)
.add(org.jdesktop.layout.GroupLayout.LEADING, jTextField2)
.add(org.jdesktop.layout.GroupLayout.LEADING, jTextField1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 46, Short.MAX_VALUE))))
.add(org.jdesktop.layout.GroupLayout.LEADING, layout.createSequentialGroup()
.add(127, 127, 127)
.add(SaveBut)))
.addContainerGap())
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.addContainerGap()
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(NameLabel)
.add(NameField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.add(30, 30, 30)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jLabel3)
.add(jTextField1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.add(12, 12, 12)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jLabel4)
.add(jTextField2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 27, Short.MAX_VALUE)
.add(SaveBut)
.addContainerGap())
pack();
public void updateNameTable (){
Integer i2 = new Integer(id);
Object o2 = (Object)i2;
h.put(o2,n);
private void SaveButActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
n.height= jTextField1.getText();
n.weight = jTextField2.getText();
private void NameFieldActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
* @param args the command line arguments
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NameEditor().setVisible(true);
// Variables declaration - do not modify
javax.swing.JTextField NameField;
javax.swing.JLabel NameLabel;
javax.swing.JButton SaveBut;
javax.swing.JLabel jLabel3;
javax.swing.JLabel jLabel4;
javax.swing.JTextField jTextField1;
javax.swing.JTextField jTextField2;
// End of variables declaration
} -
WCF Service and Sharepoint Form library : How i can read or access a form libray and query a item from file name and read form xml in WCF service ?
Ahsan RanjhaHi,
In SharePoint 2013, we can take use of REST API or Client Object Model to access the SharePoint objects like Form Library.
SharePoint 2013 REST API
http://msdn.microsoft.com/en-us/library/office/dn450841(v=office.15).aspx
http://blogs.technet.com/b/fromthefield/archive/2013/09/05/working-with-sharepoint-list-data-odata-rest-and-javascript.aspx
SharePoint 2013 Client Object Model
http://msdn.microsoft.com/en-us/library/office/fp179912(v=office.15).aspx
http://msdn.microsoft.com/en-us/library/office/jj193041(v=office.15).aspx
With the retrieved file, we can then use XmlDocument object to parse it and get the values you want:
http://weblogs.asp.net/jimjackson/opening-and-reading-an-xml-file-in-a-document-library
http://stackoverflow.com/questions/1968809/programatically-edit-infopath-form-fields
Best regards
Patrick Liang
TechNet Community Support -
Parsing XML from Socket input stream
I create a sax parser to which I send the InputStream from the socket
But my HandlerBase never gets the events. I get startDocument
but that is it, I never get any other event.
The code I have works just like expected when I make the InputStream
come from a file. The only differeence I see is that when I file is used the
InputStream is fully consumed while with the socket the InputStream
is kept open (I MUST KEEP THE SOCKET OPEN ALL THE TIME). If the parser
does not generate the events unless the InputStream is fully consumed,
isn't that against the whole idea of SAX (sax event driven) .
Has anyone been succesfull parsing XML from the InputStream of a socket?
if yes how?
I am using JAXP 1.0.1 but I can upgrade to JAXP 1.1.0
which uses SAX 2.0
Does anybody know if my needs can be met by JAXP 1.1.0?
ThanksI did the same with client/server model.
I have client program with SAX parser. Please try if you can make the server side. I was be able to write the program with help from this forum. Please search to see if you can get the forum from which I got help for this program.
// JAXP packages
import javax.xml.parsers.*;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
// JAVA packages
import java.util.*;
import java.io.*;
import java.net.*;
public class XMLSocketClient {
final private static int buffSize = 1024*10;
final private static int PORTNUM = 8888;
final private static int threadSleepValue = 1000;
private static void usage() {
System.err.println("Usage: XMLSocketClient [-v] serverAddr");
System.err.println(" -v = validation");
System.exit(1);
public static void main(String[] args) {
String address = null;
boolean validation = false;
Socket socket = null;
InputStreamReader isr_socket = null;
BufferedReader br_socket = null;
CharArrayReader car = null;
BufferedReader br_car = null;
char[] charBuff = new char[buffSize];
int in_buff = 0;
* Parse arguments of command options
for (int i = 0; i < args.length; i++) {
if (args.equals("-v")) {
validation = true;
} else {
address = args[i];
// Must be last arg
if (i != args.length - 1) {
usage();
// Initialize the socket and streams
try {
socket = new Socket(address, PORTNUM);
isr_socket = new InputStreamReader(socket.getInputStream());
br_socket = new BufferedReader(isr_socket, buffSize);
catch (IOException e) {
System.err.println("Exception: couldn't create stream socket "
+ e.getMessage());
System.exit(1);
* Check whether the buffer has input.
try {
while (br_socket.ready() != true) {
try {
Thread.currentThread().sleep(threadSleepValue);
catch (InterruptedException ie) {
System.err.println("Interrupted error for sleep: "+ ie.getMessage());
System.exit(1);
catch (IOException e) {
System.err.println("I/O error for in.read(): "+ e.getMessage());
System.exit(1);
try {
in_buff = br_socket.read(charBuff, 0, buffSize);
System.out.println("in_buff = " + in_buff);
System.out.println("charBuff length: " + charBuff.length);
if (in_buff != -1) {
System.out.println("End of file");
} catch (IOException e) {
System.out.println("Exception: " + e.getMessage());
System.exit(1);
System.out.println("reading XML file:");
StringBuffer display = new StringBuffer();
display.append(charBuff, 0, in_buff);
System.out.println(display.toString());
* Create BufferedReader from the charBuff
* in order to put into XML parser.
car = new CharArrayReader(charBuff, 0, in_buff); // these two lines have to be here.
br_car = new BufferedReader(car);
* Create a JAXP SAXParserFactory and configure it
* This section is standard handling of XML document by SAX XML parser.
SAXParserFactory spf = SAXParserFactory.newInstance();
spf.setValidating(validation);
XMLReader xmlReader = null;
try {
// Create a JAXP SAXParser
SAXParser saxParser = spf.newSAXParser();
// Get the encapsulated SAX XMLReader
xmlReader = saxParser.getXMLReader();
} catch (Exception ex) {
System.err.println(ex);
System.exit(1);
// Set the ContentHandler of the XMLReader
xmlReader.setContentHandler(new MyXMLHandler());
// Set an ErrorHandler before parsing
xmlReader.setErrorHandler(new MyErrorHandler(System.err));
try {
* Tell the XMLReader to parse the XML document
xmlReader.parse(new InputSource(br_car));
} catch (SAXException se) {
System.err.println(se.getMessage());
System.exit(1);
} catch (IOException ioe) {
System.err.println(ioe);
System.exit(1);
* Clearance of i/o functions after parsing.
try {
br_socket.close();
} catch (IOException e) {
System.out.println("Exception: " + e.getMessage());
try {
socket.close();
} catch (IOException e) {
System.out.println("Exception: " + e.getMessage());
try {
br_car.close();
} catch (IOException e) {
System.out.println("Exception: " + e.getMessage());
* The XML handler used by this program
class MyXMLHandler extends DefaultHandler {
// A Hashtable with tag names as keys and Integers as values
private Hashtable tags;
// Parser calls this once at the beginning of a document
public void startDocument() throws SAXException {
System.out.println("startDocument()");
tags = new Hashtable();
// Parser calls this for each element in a document
public void startElement(String namespaceURI, String localName,
String rawName, Attributes atts)
throws SAXException
String key = localName;
Object value = tags.get(key);
System.out.println("startElement()");
System.out.println("namespaceURI: " + namespaceURI);
System.out.println("localName: " + localName);
System.out.println("rawName: " + rawName);
if (value == null) {
// Add a new entry
tags.put(key, new Integer(1));
} else {
// Get the current count and increment it
int count = ((Integer)value).intValue();
count++;
tags.put(key, new Integer(count));
// Parser calls this once after parsing a document
public void endDocument() throws SAXException {
Enumeration e = tags.keys();
System.out.println("endDocument()");
while (e.hasMoreElements()) {
String tag = (String)e.nextElement();
int count = ((Integer)tags.get(tag)).intValue();
System.out.println("Tag <" + tag + "> occurs " + count
+ " times");
* Error handler of XML parser to report errors and warnings
* This is standard handling.
class MyErrorHandler implements ErrorHandler {
/** Error handler output goes here */
private PrintStream out;
MyErrorHandler(PrintStream out) {
this.out = out;
* Returns a string describing parse exception details
private String getParseExceptionInfo(SAXParseException spe) {
String systemId = spe.getSystemId();
if (systemId == null) {
systemId = "null";
String info = "URI=" + systemId +
" Line=" + spe.getLineNumber() +
": " + spe.getMessage();
return info;
* The following methods are standard SAX ErrorHandler methods.
* See SAX documentation for more info.
public void warning(SAXParseException spe) throws SAXException {
out.println("Warning: " + getParseExceptionInfo(spe));
public void error(SAXParseException spe) throws SAXException {
String message = "Error: " + getParseExceptionInfo(spe);
throw new SAXException(message);
public void fatalError(SAXParseException spe) throws SAXException {
String message = "Fatal Error: " + getParseExceptionInfo(spe);
throw new SAXException(message); -
Parsing results from sys.dm_exec_sql_text
There may not be a solution to this, but I was hoping that better minds than mine would have a clue:
Create a table Customer:
create table Customer ([ID] [int] IDENTITY(1,1) NOT NULL,
Name varchar(50),Address varchar(50));
Now populate it with a couple of rows. Next create a View that includes the batch:
create view Customer_view (id, name, address, Text)
as Select id, Name, Address, Text from Customer,
sys.dm_exec_sql_Text((Select sql_handle from sys.sysprocesses where spid = @@spid))
Finally, issue this query:
Select Name,Text from Customer_View where id = 1;
Select Address,Text from Customer_View where id = 1;
go
You will notice that the Text from both Selects is the same, i.e., the full batch:
"Select Name,Text from Customer_View where id = 1; Select Address,Text from Customer_View where id = 1;"
Is there a way to parse the output Text so that it only includes the Text for the specific Select statement. So for example, the Text from the first Select would contain only this:
"Select Name,Text from Customer_View where id = 1;"
and the Text from the second Select would contain only this:
"Select Address,Text from Customer_View where id = 1;"I don't know if you are still monitoring this thread but I came up with an interesting twist.
Go back to the original table and View from above:
create table Customer ([ID] [int] IDENTITY(1,1) NOT NULL, Name nvarchar(32),Address nvarchar(32));
insert into customer values ('Bertie Wooster', 'London, UK');
create view Customer_view (id, name, address, Text) as
Select id, Name, Address, Text from Customer,
sys.dm_exec_sql_Text((Select sql_handle from sys.sysprocesses where spid = @@spid));
select Name, Address, Text from customer_view where id = 1;
You will see that the result set for Text is the actual query:
select name, address, text from customer_view where id = 1;
Now add this UDF and add it to the View:
create function MyFunc1 (@str nvarchar(32)) returns nvarchar(32) as
begin return upper(@str); end
alter view Customer_view (id, name, address, Text)
as Select id, dbo.MyFunc1(Name), dbo.MyFunc1(Address), dbo.MyFunc1(Text) from Customer,
sys.dm_exec_sql_Text((Select sql_handle from sys.sysprocesses where spid = @@spid))
select Name, Address, Text from customer_view where id = 1;
Now the result set for Text is cut off at the FROM:
SELECT NAME, ADDRESS, TEXT FROM
Any idea what is going on here and how to get the original query?
Thanks. -
How can I parse XML from CLOB field? I need to replace or delete the node from XML document and update the database with new XML. I am using Oracle 9i release 2.
Here is the XML. In this XML if section1 and section2 exists then I need to delete the section1 node. If section2 doesn't exist, replace section1 with section2 node.
<Document ID='2' TypeID='2'>
<Body>
<Page Name='Page1'>
<Sec ID='section1' Title='Section 1' GroupID='' />
<Sec ID='section2' Title='Section 2' GroupID='' />
</Page>
</Body>
</Document>
Please help.. Thank you..In 9.2, you are limited into your options. Have a look into, among others, updateXML. Updating tp 10gR2 will give you more options to succeed.
-
Parsing data from indexed field
Hi,
A contractor is developing a program to parse data from a form that I created in LiveCycle. There are some tables in the form where text fields in the same column have the same base name and are assigned an index by LiveCycle. For instance, there might be a CompanyName column with 6 text fields in each of 6 rows, where the text fields are named as follows: CompanyName [0], CompanyName [1], CompanyName [2], CompanyName [3], CompanyName [4], CompanyName [5].
The programmer of the parsing program is having trouble parsing the data for those indexed fields from the XML. Any pointers you could give me (that I would pass on to the programmer) for how to parse data from fields with indexed names like these? I know just a little about what he is trying to do. He said he is using a third-party DLL called iTextSharp for the parsing. If any pointers come to mind on what he might do, please let me know.
Thanks,
EmilyWhen design Adobe forms, you can have multiple fields with same name; as you mentioned your fields can be named as
CompanyName [0], CompanyName [1], CompanyName [2], CompanyName [3], CompanyName [4], CompanyName [5]
However when the form is submitted the form data (in the form of XML) would look like as follows:
<xdp:xdp xmlns:xdp="http://ns.adobe.com/xdp/">
<xfa:datasets xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/">
<xfa:data>
<form1>
<page1>
<yourSubform>
<CompanyName>My Company 1</CompanyName>
<CompanyName>My Company 2</CompanyName>
<CompanyName>My Company 3</CompanyName>
<CompanyName>My Company 4</CompanyName>
<CompanyName>My Company 5</CompanyName>
<CompanyName>My Company 6</CompanyName>
</yourSubform>
</page1>
</form1>
</xfa:data>
</xfa:datasets>
</xdp:xdp>
Note that all the CompanyName fields are named without any indexing.
If you explain this format to your programmer, he will be able to understand and write a logic to retrieve all CompanyName field's values. -
Add suffix to Project names? Pre-fill Project description?
Hi. I'm still working on my Ap3 workflow. Either of the actions in the subject would be most helpful:
• *Add suffix to Project names*. I have 144 Projects I would like to rename by adding a few words to the end of their current names.
• *Pre-fill Project Description*. The Project Description field can be found on the Project Information HUD ({Shift}+i with a Project selected). I would like to have all new Projects start with a default Project description. This could be put in from the import panel.
I could alternatively make use of being able to append text to the Project Description field.
Thanks.Hi Dave,
When dealing with dropdowns the best event to use is the preOpen event. This means that there wouldn't be any script in the first dropdown.
Then in the second dropdown you would have a relative simple script that would look back at the user's selection in the first dropdown and then populate the display items in the second dropdown.
See examples here:
http://assure.ly/jcTahK
http://assure.ly/gcXx03
http://assure.ly/fYCuQ2
When adding an item to a dropdown, you can specify both the display item (what the user's sees) and the bound value (the value of the dropdown that is associated with the user's selection).
So,
this.additem("Clonmel", "(052) 1234567");
This would add a city "Clonmel" to the dropdown and the value of the dropdown would be "(052) 1234567", if the user selected Clonmel.
The textfield can then be given the same name as the dropdown and its binding set to Global (see the object > Binding palette when the textfield is selected).
Hope that helps,
Niall -
Discoverer Report: How to find Business Area name from Report Name.
Hi
I opened a report in Disco Desktop 4 -> Resonsibiolity --> Report Name.
So I know Report name but don’t know which Business Area it belongs to.
How to find Business Area Name from Report Name?
Cheers
VijayHi,
There is no relationship between reports and business areas. Each report can be built from many folders. Each folder can be in many business areas.
However you can try the following SQL which may give you the result you want for an v5 EUL. You will have to modify for Discoverer 4 EUL:
select distinct doc_name, obj.obj_name folder_name, bas.ba_name
from eul_us.eul5_documents doc
, eul_us.eul5_elem_xrefs xref
, eul_us.eul5_expressions exp
, eul_us.eul5_objs obj
, eul_us.eul5_ba_obj_links bol
, eul_us.eul5_bas bas
where xref.ex_from_id = doc.doc_id
and doc.doc_name = &your_report
and xref.ex_to_id = exp.exp_id
and obj.obj_id = exp.it_obj_id
and bol.bol_obj_id = obj.obj_id
and bas.ba_id = bol.bol_ba_id
Rod West -
I have a Macbook Pro running Leopard 10.5.8. I had a problem with my my operating system (my fault, I moved a file I shoudnt have) couldnt boot up but was able to boot up from a backup. I managed to repair my original system except now all the system folders, including hidden folders are littered with duplicate folders and files with the suffix (from old Mac). For the most part the dupes are an exact copy, but not always. I want to remove them to free up space and cant imagine duplicate folders in the /system/library are not hindering my computer. But I dont know where to start and am afraid of doing irreparable damage. Any ideas
pacull,
Use iCal>View>Show Notifications to choose what to do with the notification. -
Hello All,
we have created shared folder on multiple client machine in domain environment on different 2 OS like-XP,Vista, etc.
from some day's When we facing problem when we are access from host name that shared folder is accessible but same time same computer when we are trying to access the share folder with IP it asking for credentials i have type again and again
correct credential but unable to access that. If i re-share the folder then we are access it but when we are restarted the system then same problem is occurring.
I have checked IP,DNS,Gateway and more each & everything is well.
Pls suggest us.
Pankaj KumarHi,
According to your description, my understanding is that the same shared folder can be accessed by name, but can’t be accessed be IP address and asks for credentials.
Please try to enable the option below on the device which has shared folder:
Besides, check the Advanced Shring settings of shared folder and confrim that if there is any limitation settings.
Best Regards,
Eve Wang
Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Support, contact [email protected] -
In iTunes, is there any way to do a mass copy and paste of song titles from the "name" column to the "sort name" column? I know it can be done with individual titles but I have over 6,000 titles in my library.
Thank you. I have heard of Logic Pro 7, but I have never personally used it. I'm still growing in the world of Composition, and I know that it is something I will be studying in one of my Computer Music classes coming up for my degree. I think it is something I will look into getting once I can justify the price of it. I guess for the time being, I will continue to play and grow in my ability to use and take advantage of GB, and then see what I can do about or with Logic Pro when I'm ready. The thought of spending $1000 for a program is hard to bite, because I've already spent a lot to produce my music, not only electronic music, but also chamber music and so on. I had no idea it would be so expensive to dive deep into the world of composition! lol.
Finale 2007: $500
Sibelius 4: $500
Jam Packs: $400
Midi Keyboard Interface: $100
PowerBook: $1700
Printer for printing scores and analysis: $150
Logic Pro 7: Oy!
As you can see it adds up very quickly...that doesn't even include my personal instruments and study materials.
Thank you for your input, as I haven't really worked much with LP, and therefore didn't know which features are available. I will talk with some of my Composition buddies, and professors and see what they have to say as well, and who knows, I may be able to get the express version through one of them. -
Hi,
Is there any standard method to get a file type from file name?
File name can be C:\test.doc or C:\test(test is file) i.e. with or without file type extension.
...NaddyYou can use the Function module PC_SPLIT_COMPLETE_FILENAME
export paramter extension will tell the type of file
Sample Output
Import COMPLETE_FILENAME C:\TEST.TXT
Import CHECK_DOS_FORMAT
Export DRIVE C
Export EXTENSION TXT
Export NAME TEST
Export NAME_WITH_EXT TEST.TXT
Export PATH \ -
How to Run F110 Check Payment with Sorting from Vendor Name?
Hi All,
We have a problem when I run F110 to create checks for many vendors. How can I run the check number sorted from vendor name alphabetically?
We can print it according to the vendor name alphabetically however the check running number is not sorted.
Point will be rewarded for solution.
Thanks,Brother!
Call transaction : O7s1 or see in configuration menu: paymentmedi-> define Sort Variant.
Create your Sort Variant accouding top your requirement, Input the same in Configuration of paymen.
call transaction FBZP, then press the button " Payment Method in company Code"
Hope this will be helful
Thanks -
Can't parse xml from applet using dom on linux on Netscape 7 using jre 1.4.
Hi,
I can't seem to parse xml from an applet on linux on Netscape 7 using the JRE 1.4.
My code looks like the following:
StringBufferInputStream is = new StringBufferInputStream("<foo></foo>");
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = null;
try
builder = factory.newDocumentBuilder();
domDocument = builder.parse(is); // this line creates an exception
catch (Exception e)
System.out.println(e);
This code works fine from an applet on windows. On linux, the error message is:
java.security.AccessControlException: access denied (java.util.PropertyPermission entityExpansionLimit read)
I've tried both JRE 1.4.0_04 and 1.4.1_03
Thanks!
QThere's another posting about this same problem (platform unspecified), but the same error message. I was also having this problem (Windows 1.4.03) and swithced back to 1.4.01 and the problem went away. In the future, I may sign my applets to get a more generous security policy. But, I'm sure it'll be a lot of work (vs. a line of code somewhere).
Maybe you are looking for
-
I need to use my external drive on my Mac and a PC, so I formatted it in FAT 32. I found that Time Machine doesn't recognize this format and cannot back up to it. So, if I want to use Time Machine I need to go back to a Mac format. Is there any wa
-
Calling a url from a pl/sql proc
HI! I was wondering if anybody has code that they can share calling a url from a pl/sql proc. Thanks!!
-
Hey guys, I want to use some of the webservices provided by MDM (i.e. the Create-, the Update- and the Search-Service). And I want to use all three services inside one EJB. Now I face the problem that some packages I have to import to be able to use
-
How to reduce noise in a RAW photo?
Recently I came across a great article explaining the difference between a JPEG and a RAW file. I usually shoot in JPEG because that was all I was comfortable with. After reading the article I want to start shooting in RAW and be confident in it. I t
-
I keep trying to install OS X but it fails after 54 minutes. I restart the install because that's the only option on the screen but after another install attempt, I'm looped back to the fail message. Please help, I don't know how to fix the error or