"stringing a query"
Is it possible, or how do I compile the results of a query
column into one string.
for example... If I query a table and the query results
brings back 5 rows for column a:
(results)
Column A
1
2
3
3
4
How do I get coldfusion to enter all five results into one
variable.
So my end result is I want a new variable (lets call it
"var1") to be as follows:
var1 = 1 2 3 3 4
thanks
if you want to create a comma-delimited list, use
<CFSET foo = ValueList(myQueryName.myVariables)>
To create a space-delimited list, use
<CFSET foo = ValueList(myQueryName.myVariables, "
")>
Similar Messages
-
Powershell use Connection String to query Database and write to Excel
Right now I have a powershell script that uses ODBC to query SQL Server 2008 / 2012 database and write to EXCEL
$excel = New-Object -Com Excel.Application
$excel.Visible = $True
$wb = $Excel.Workbooks.Add()
$ws = $wb.Worksheets.Item(1)
$ws.name = "GUP Download Activity"
$qt = $ws.QueryTables.Add("ODBC;DSN=$DSN;UID=$username;PWD=$password", $ws.Range("A1"), $SQL_Statement)
if ($qt.Refresh()){
$ws.Activate()
$ws.Select()
$excel.Rows.Item(1).HorizontalAlignment = $xlCenter
$excel.Rows.Item(1).VerticalAlignment = $xlTop
$excel.Rows.Item("1:1").Font.Name = "Calibri"
$excel.Rows.Item("1:1").Font.Size = 11
$excel.Rows.Item("1:1").Font.Bold = $true
$filename = "D:\Script\Reports\Status_$a.xlsx"
if (test-path $filename ) { rm $filename }
$wb.SaveAs($filename, $xlOpenXMLWorkbook) #save as an XML Workbook (xslx)
$wb.Saved = $True #flag it as being saved
$wb.Close() #close the document
$Excel.Quit() #and the instance of Excel
$wb = $Null #set all variables that point to Excel objects to null
$ws = $Null #makes sure Excel deflates
$Excel=$Null #let the air out
I would like to use connection string to query the database and write results to EXCEL, i.e.
$SQL_Statement = "SELECT ..."
$conn = New-Object System.Data.SqlClient.SqlConnection
$conn.ConnectionString = "Server=10.10.10.10;Initial Catalog=mydatabase;User Id=$username;Password=$password;"
$conn.Open()
$cmd = New-Object System.Data.SqlClient.SqlCommand($SQL_Statement,$conn)
do{
try{
$rdr = $cmd.ExecuteReader()
while ($rdr.read()){
$sql_output += ,@($rdr.GetValue(0), $rdr.GetValue(1))
$transactionComplete = $true
catch{
$transactionComplete = $false
}until ($transactionComplete)
$conn.Close()
How would I read the columns and data for $sql_output into an EXCEL worksheet. Where do I find these tutorials?Hi Q.P.Waverly,
If you mean to export the data in $sql_output to excel document, please try to format the output with psobject:
$sql_output=@()
do{
try{
$rdr = $cmd.ExecuteReader()
while ($rdr.read()){
$sql_output+=New-Object PSObject -Property @{data1 = $rdr.GetValue(0);data2 =$rdr.GetValue(1)}
$transactionComplete = $true
catch{
$transactionComplete = $false
}until ($transactionComplete)
$conn.Close()
Then please try to use the cmdlet "Export-Csv" to export the data to excel like:
$sql_output | Export-Csv d:\data.csv
Or you can export to worksheet like:
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $true
$workbook = $excel.Workbooks.Add()
$sheet = $workbook.ActiveSheet
$counter = 0
$sql_output | ForEach-Object {
$counter++
$sheet.cells.Item($counter,1) = $_.data1$sheet.cells.Item($counter,2) = $_.data2}
Refer to:
PowerShell and Excel: Fast, Safe, and Reliable
If there is anything else regarding this issue, please feel free to post back.
Best Regards,
Anna Wang -
How to convert LongRaw to String when querying using DB Adapter?
Hi All,
How do we use a DB Adapter to query on LONG Raw data? Is there a way to implicitly convert data to a string before returning the resultSet?
JDev: 11.1.1.4
Regards.Hi,
LONG RAW data will be retrieved as base64binary, you can use and Embed Java to convert it back to string.
How to convert String to base64Binary in BPEL process
Or you can use doTranslateFromNative oracle extension function, you will need a NXSD template to use it.
http://docs.oracle.com/cd/E15523_01/integration.1111/e10224/bp_appx_functs.htm#CJACABGA
Cheers,
Vlad -
A text with strings from query - how???
There is on-demand process, that return text to text-area element.
DECLARE
LIST_OF_APP varchar2(32000) := '';
BEGIN
BEGIN
FOR i IN (SELECT TITLE, TIMEOFCHECK FROM ACTIVEWINDOWSOFUSERS WHERE NUMBEROFPROCCESS=:STATE_SR AND MYUSER=:USERID_SR ) loop
LIST_OF_APP := LIST_OF_APP||~??????~ ||i.TITLE ||', '|| i.TIMEOFCHECK;
END LOOP;
exception when no_data_found then null;
END;
htp.prn(LIST_OF_APP);
end;
But my text return to me as ONE ROW, and I don't know - how to split it into different rows. I know ~empsep~, ~colsep~ - but have no idea about STRING SEP!
I've try `~rowsep~` - but it doesn't work.
Help me. Please,please,please...<script type="text/javascript">
function application_in_detail(state,uid){
var get = new htmldb_Get(null,&APP_ID.,'APPLICATION_PROCESS=GetApplications',0);
get.add('STATE_SR',state);
get.add('USERID_SR',uid);
gReturn = get.get();
if(gReturn)
{//document.write(gReturn);
var resp=gReturn.split('mysep');
var resText='';
for (i=0; i < resp.length; i++)
{resText=resText+resp[i]+CHR(13)}
html_GetElement('TITLES').value=resText; }
get=null;
</script>
It falls with "error on the page"..
I believe that I am close to end - but what have I to put on th e place CHR(13)??? -
Create field list as a string in Query of Query
Can you please correct this query
<cfquery name="getView" datasource="#Application.DSN_GDX#">
select * from vstr_entity_mast_y where tax_year=2011
</cfquery>
<cfset checkedImgStr = "<img src=../stir_images/checked.jpg>">
<cfset loopStr = "">
<cfset variables.listIds = "BNSR,BNSS,VIEW">
<cfloop index="Fld" list="#variables.listIds#">
<cfset loopStr = loopStr&'<img src=../stir_images/checked.jpg>'& " as [#Fld#],">
</cfloop>
<cfset P_loopStr = replace(loopStr, "<img src=../stir_images/checked.jpg>", "'<img src=../stir_images/checked.jpg>'", "all")>
<cfquery name="getPrivByUser" dbtype="query">
select entity_id, entity_name,#P_loopStr# leid
from getView
</cfquery>
I am getting this error:
Encountered "<. Incorrect Select Statement, Expecting a 'FROM', but encountered '<' instead, A select statement should have a 'FROM' construct.In view of the comma at the end of loopStr, I will assume that leid is a column name. Then the likely cause of the error is ColdFusion escaping the single quotes you added. To prevent this, modify the select statement to
select entity_id, entity_name,#preserveSingleQuotes(P_loopStr)# leid -
String Search Query in any columns in any table in a database
Hi All,
I am trying to search a word which starts with 'FRA' in any columns and any tables.
I am unable tofind what is generating a join datasets in the webservice from teh database as it is not apparent within teh 100 tables.
I ahve looked into
Re: How to search in all rows and all columns?
Re: SQL Search Query - HELP!
but none of these queries is working out for me as I am a user with no tables on its own but rather a user quering other tables.I think its a tweak on which dat adisctionary I can view
select distinct substr (table_name, 1, 14) "Table",
substr (t.column_value.getstringval (), 1, 50) "Column/Value"
from all_cons_columns,
table
(xmlsequence
(dbms_xmlgen.getxmltype ('select ' || column_name
|| ' from ' || table_name
|| ' where upper('
|| column_name
|| ') like upper(''%' || 'fra'
|| '%'')'
).extract ('ROWSET/ROW/*')
) t
order by "Table";
running teh above query got me thsi error:
ORA-19202: Error occurred in XML processing
ORA-00942: table or view does not exist
ORA-06512: at "SYS.DBMS_XMLGEN", line 288
ORA-06512: at line 1
19202. 00000 - "Error occurred in XML processing%s"
*Cause: An error occurred when processing the XML function
*Action: Check the given error message and fix the appropriate problem
Any help is much appreciated
Edited by: CrackerJack on Sep 3, 2012 5:55 PM
Edited by: CrackerJack on Sep 3, 2012 5:55 PMHi,
CrackerJack wrote:
Hi All,
I am trying to search a word which starts with 'FRA' in any columns and any tables.
I am unable tofind what is generating a join datasets in the webservice from teh database as it is not apparent within teh 100 tables.
I ahve looked into
Re: How to search in all rows and all columns?
Re: SQL Search Query - HELP!
but none of these queries is working out for me as I am a user with no tables on its own but rather a user quering other tables.I think its a tweak on which dat adisctionary I can view In all_<b>cons</b>_columns, "cons" stands for "constraints". That view only includes columns that have a constraint on them.
Use all_<b>tab</b>_columns if you're interested in all columns in all tables.
select distinct substr (table_name, 1, 14) "Table",
substr (t.column_value.getstringval (), 1, 50) "Column/Value"
from all_cons_columns,
table
(xmlsequence
(dbms_xmlgen.getxmltype ('select ' || column_name
|| ' from ' || table_name
|| ' where upper('
|| column_name
|| ') like upper(''%' || 'fra'
|| '%'')'
).extract ('ROWSET/ROW/*')
) t
order by "Table";You may have noticed that this site noramlly compresses whitespace.
Whenever you post formatted text (such as query results) on this site, type these 6 characters:
\(small letters only, inside curly brackets) before and after each section of formatted text, to preserve spacing.
When referencing a table in a differenct schema, you must qualify the table name with the owner (unless there happens to be a synonym). For example, if you are connected as some user other than scott, and you want to use the emp table that is in the scott schema; then you can't just say "SELECT ... FROM emp;", because that would look for the emp table in yur own schema. You have to say "SELECT ... FROM <b>scott.</b>emp;" instead. If the table is in your own schema, then the scema name is optional. The OWNER column in all_tab_columns gives the schema name.
running teh above query got me thsi error:
ORA-19202: Error occurred in XML processing
ORA-00942: table or view does not exist
ORA-06512: at "SYS.DBMS_XMLGEN", line 288
ORA-06512: at line 1
19202. 00000 - "Error occurred in XML processing%s"
*Cause: An error occurred when processing the XML function
*Action: Check the given error message and fix the appropriate problemSorry, I don't know what causes that error.
If I use the data dictionary view cols (as in {message:id=3325696} which you cited), it runs correctly.
If use what I though was the equivalent data dictionary view, user_tab_columns, or if I use all_tab_columns or other data dictionary views, then I get those errors. I'm using Oracle 10.2.0.1.0.
Edited by: Frank Kulash on Sep 3, 2012 10:45 PM
John Spencer noticed the same problem 5 years ago. See {message:id=1969268} -
Performance Issue - Index is not used when a zero padded string is queried
Hi All,
I have a table T1 which has many columns. One such column say C1 is a varchar2(20). T1 has 10 million rows and there is an index called I1 on C1. Stats are current for both tables and indexes. These are the scenarios:
Scenario 1
select * from T1 where C1 = '0013206263' --Uses index I1
187 ms
Scenario 2
select * from T1 where C1 = '8177341863' --Uses index I1
203 ms
*Scenario 3*
*select * from T1 where C1 = '0000000945' --Uses Fulll Table Scan --Very Slow*
*45 seconds*
When I force the sql to use the index through a hint, it is working fine:
Scenario 4
select /*+ INDEX (t1 i1) */ * from T1 where C1 = '0013206263' --Uses index I1
123 ms
Scenario 5
select /*+ INDEX (t1 i1) */ * from T1 where C1 = '8177341863' --Uses index I1
201 ms
*Scenario 6*
*select /*+ INDEX (t1 i1) */ * from T1 where C1 = '0000000945' --Uses index I1*
*172ms*Is there any reason for this performance issue? Why does the optimizer goes for FTS in Scenario 3?
Edited by: user539954 on May 14, 2009 12:22 PM
Edited by: user539954 on May 14, 2009 12:32 PMuser539954 wrote:
Please see the replies below:
- How many distinct values for C1 out of that 10 million rows? I'm guessing that histograms were created for C1, correct?
=>7 million distinct c1 values. I have not gathered a histogram yet. Should I try that?
SQL> explain plan for select * from T1 where C1 = '0000000954';
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)|
| 0 | SELECT STATEMENT | | 244K| 19M| 26228 (5)|
| 1 | TABLE ACCESS FULL| T1 | 244K| 19M| 26228 (5)|
SQL> explain plan for select * from T1 where C1 = '0033454555';
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)|
| 0 | SELECT STATEMENT | | 532 | 43624 | 261 (0)|
| 1 | TABLE ACCESS BY INDEX ROWID| T1 | 532 | 43624 | 261 (0)|
| 2 | INDEX RANGE SCAN | I1 | 532 | | 2 (0)|
It's possible you do have a histogram, even though you didn't plan on creating it, if you're running 10g.
In the absence of a histogram and with 7M distinct keys in 10M rows, Oracle should have predicted 2 rows for both queries, not 244,000 and 532.
If you do have a histogram, you probably need to get rid of it.
Regards
Jonathan Lewis
http://jonathanlewis.wordpress.com
http://www.jlcomp.demon.co.uk
"Science is more than a body of knowledge; it is a way of thinking"
Carl Sagan
To post code, statspack/AWR report, execution plans or trace files, start and end the section with the tag {noformat}{noformat} (lowercase, curly brackets, no spaces) so that the text appears in fixed format. -
Example to use Query String in Oracle Access Manager Policy.
Hi All,
Can any one please tell me what is the use of Query String and Query String Variable in OAM Policy?
If possible please explain with a sample example.
Thanks in Advance.
Siva Pokuri.Query string is used to protect URL with complete query string.
Ex: in case you want to protect http://hi.com/first.html?uid=abc&pqr=123 URL then you will specify query string as uid=abc&pqr=123.
In case you want to protect a URL with one of the query parameter as xyz and you do not care of other query parameters, then query string variables are used.
Ex: in case you want to protect http://hi.com/first.html?uid=abc&pqr=123 and http://hi.com/first.html?uid=abc&pqr=456 both with same policy then you will create a policy to protect first.html and in query string variables you will specify uid=abc.
Let me know if you have any problems in understanding this.
Thanks
Kiran Thakkar -
What I am trying to do is to check whether does that variable exist in the querystring, if it does change the value to another value.
How am I suppose to do abt doing that?Well, it's not too complex to do it with java... here is a simple example:
public class QueryStringChanger
public static String changeParameter(String query, String key, String value)
String[] keyValuePairs = query.split("&");
StringBuffer newQuery = new StringBuffer();
for (int k = 0; k < keyValuePairs.length; k++)
if (keyValuePairs[k].indexOf(key) != -1)
String[] thePair = keyValuePairs[k].split("=");
keyValuePairs[k] = thePair[0] + "=" + value;
if (k != 0) newQuery.append("&");
newQuery.append(keyValuePairs[k]);
return newQuery.toString();
public static void main(String[] args)
if (args.length != 3)
System.out.println("Syntax: java QueryStringChanger 'the query string' theKey theValue\n"+
"Example: java QueryStringChanger page=1&area=3&title=Not+So+Good title Pretty+Darn+Good");
System.exit(1);
System.out.println(changeParameter(args[0], args[1], args[2]));
System.exit(0);
}Not so sure what you would gain from a HashTable though... -
Set query string programmatically
Is there a way to set the query string of a report programmatically at runtime? Something like clientDoc.setQueryString( query ).
ThanksWell, it's not too complex to do it with java... here is a simple example:
public class QueryStringChanger
public static String changeParameter(String query, String key, String value)
String[] keyValuePairs = query.split("&");
StringBuffer newQuery = new StringBuffer();
for (int k = 0; k < keyValuePairs.length; k++)
if (keyValuePairs[k].indexOf(key) != -1)
String[] thePair = keyValuePairs[k].split("=");
keyValuePairs[k] = thePair[0] + "=" + value;
if (k != 0) newQuery.append("&");
newQuery.append(keyValuePairs[k]);
return newQuery.toString();
public static void main(String[] args)
if (args.length != 3)
System.out.println("Syntax: java QueryStringChanger 'the query string' theKey theValue\n"+
"Example: java QueryStringChanger page=1&area=3&title=Not+So+Good title Pretty+Darn+Good");
System.exit(1);
System.out.println(changeParameter(args[0], args[1], args[2]));
System.exit(0);
}Not so sure what you would gain from a HashTable though... -
_layouts/Authenticate.aspx losing Query String Parameters in redirection
Hi,
we are losing query strings when _layouts/Authenticate.aspx redirects to a application page after user authentication.
Example shown below
http Request is shown below
/_layouts/Authenticate.aspx?Source=http://ourwebsite.com/somepage.aspx?paramapp=testapp¶mdata=testdata
redirection happens fine, but all the query string expect the first gets truncated.
In the above the example paramdata gets truncatedHi Chandan,
please have a check if should this situation applied, i just talked with my colleague regarding this,
if you are using OOB, there are a set on AAM that may not eligible to do so, for example there is an encoding feature on it, sharepoint by design may not able to receive this because security concern.
"When the AAM redirect is configured requests for data that doesn't exist in the local farm is directed to another farm. If this request contains a query string, the query string is dropped"
Regards,
Aries
Microsoft Online Community Support
Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread. -
Query running fine in one environment but failing in other environment
Hi,
I have a query which i am trying to execute in two different environments.
Test :- Oracle Database 11g Release 11.2.0.1.0 - 64bit Production
Prod:- Oracle Database 11g Release 11.2.0.1.0 - 64bit Production
Now query executes finely in one environment and fails in other environment.
It gives following error.
ORA-01861: literal does not match format string
01861. 00000 - "literal does not match format string"
The query is too long and contains CHAR-DATE and DATE-CHAR conversions.
The same query works fine on TEST environment and and fails on PROD environment.
Any help related to it would be appreciated.
Thanks,
MaheshMaheshGx wrote:
Hi,
I have a query which i am trying to execute in two different environments.
Test :- Oracle Database 11g Release 11.2.0.1.0 - 64bit Production
Prod:- Oracle Database 11g Release 11.2.0.1.0 - 64bit Production
Now query executes finely in one environment and fails in other environment.
It gives following error.
ORA-01861: literal does not match format string
01861. 00000 - "literal does not match format string"
The query is too long and contains CHAR-DATE and DATE-CHAR conversions.
The same query works fine on TEST environment and and fails on PROD environment.
Any help related to it would be appreciated.
Thanks,
MaheshThat's called a bug. One caused by the person who developed the code. They relied on implicit conversion between strings and dates when
production quality code will always use to_char and to_date functions with a format mask. -
FS - Error code 3006 from SQL-Query
Hello world!
Can someone inform me which possible errors in a query cause the following error message after the query is activated?
Internal Error (3006) Message [131-183]
Until now I had only error code 1003, which signals syntax errors etc. in the query.
By the way: Does anywhere exists a list of error codes/messages occuring in SAP B1?
Thank you!
Frank RomeniError codes and their description can be found in SDK help files
I have pasted them below for your ref
-39
End of File
-43
File not Found
-47
File is Busy
-50
File Cannot Open
-51
File Corrupted
-99
Division by Zero
-100
Out of Memory
-101
Print Error
-103
Print Canceled
-104
Money Overflow
-111
Invalid Memory Access
-199
General Error
-213
Bad Directory
-214
File Already Exists
-216
Invalid File Permission
-217
Invalid Path
-1001
Data Source - Bad Column Type
-1003
Data Source - Alias Not Found
-1004
Data Source - Value Not Found
-1005
Data Source - Bad Date
-1012
Data Source - No Default Column
-1013
Data Source - Zero/Blank Value
-1015
Data Source - Integer Overflow
-1016
Data Source - Bad Value
-1022
Data Source - Other File Not Related
-1023
Data Source - Other Key Not In Main Key
-1025
Data Source - Array Record Not Found
-1027
Data Source - Value Must Be Positive
-1028
Data Source - Value Must Be Negative
-1029
Data Source - Column Cannot be updated
-1100
Data Source - Cannot Allocate Environment
-1101
Data Source - Bad Connection
-1102
Data Source - Connection Not Opened
-1103
Data Source - DB Already Exists
-1104
Data Source - Cannot Create Database
-1200
Data Source - Data Bind General Error
-2001
Data Source - Bad Parameters
-2003
Data Source - Too Many Tables
-2004
Data Source - Table Not Found
-2006
Data Source - Bad Table Definition
-2007
Data Source - Bad Data Source
-2010
Data Source - Bad Data Source Offset
-2013
Data Source - No Fields In Table
-2014
Data Source - Bad Field Index
-2015
Data Source - Bad Index Number
-2017
Data Source - Bad Alias
-2020
Data Source - Bad Alias
-2022
Data Source - Bad Field Level
-2024
Data Source - Not Matching Data Source
-2025
Data Source - No Keys In Table
-2027
Data Source - Partial Data Found
-2028
Data Source - No Data Found
-2029
Data Source - No Matching Field
-2035
Data Source - Duplicate Keys
-2038
Data Source - Record Lock
-2039
Data Source - Data Was Changed
-2045
Data Source - End of Sort
-2049
Data Source - Not Opened for Write
-2056
Data Source - No Matching With Current Data Source
-2062
Data Source - Bad Container Offset
-3001
Query - Field Not Found
-3003
Query - Bad Data Source
-3004
Query - Bad Token
-3005
Query - Token After End
-3006
Query - Unexpected End
-3008
Query - Too Long Query
-3009
Query - Extra Right Parenthesis
-3010
Query - Missing Right Parenthesis
-3012
Query - No Operation Code
-3013
Query - No Field In Comparison
-3014
Query - Bad Condition
-3015
Query - Bad Sort List
-3017
Query - No String
-3018
Query - Too Many Fields
-3019
Query - Too Many Indexes
-3020
Query - Too Many Tables
-3021
Query - Reference Not Found
-3022
Query - Bad Range Set
-3023
Query - Bad Parsing
-3025
Query - Data Bind is Missing
-3026
Query - Bad Input
-3027
Query - Progress Aborted
-3028
Query - Bad Table Index
-3032
Query - General Failure
-3033
Query - Empty Record
-3036
Query - Bad Parameter
-3037
Query - Missing Table in List
-3040
Query - Bad Operation
-3041
Query - Bad Expression
-3042
Query - Name Already Exists
-3044
Query - Time Expired
3001
Form - Is Not Initialized
3002
Form - Bad Data Source
3003
Form - Exceeded Data Sources Limit
3006
Form - Invalid Form Item
3007
Form - Exceeded Forms Limit
3009
Form - Too Many Saved Data
3012
Form - Invalid Form
3015
Form - Cannot Get Multi-Line Edit
3016
Form - Bad Item Type
3017
Form - Bad Parameter
3023
Form - No Message Callback
3029
Form - Item Is Not Selectable
3031
Form - Bad Value
3033
Form - Item Not Found
4007
Grid - Invalid
4008
Grid - Bad Size
4009
Grid - No Data
4011
Grid - Invalid Parameters
4013
Grid - Not Super Title
4014
Grid - Super Title 2 Exits
4015
Bad Item Unique ID
4016
Grid - Bad Data
4017
Grid - Column is Already Folded
4018
Grid - Column is Already Expanded
4019
Grid - Line Exists
4020
Grid - Not Enough Data
4022
Grid - Super Title Exists
4027
Grid - Row Is Not Collapsible
8004
Status Bar - No Such Info
8005
Status Bar - Info Occupied
8006
Status Bar - No Message Bar
8007
Status Bar - Progress Stopped
8008
Status Bar - Too Many Progress
5001
Graph - Invalid
5002
Graph - Bad Form Item
5005
Graph - Bad Parameters
-7008
Form not found
-7000
Invalid Form
-7031
Form - Reserved /Illegal form Unique ID
-7032
Form - Invalid Mode
-7006
The item is not a user defined item and cannot be manipulated in such manner
-7005
Invalid table name
-7004
XML batch load failed
-7003
Menu operation Add failed
-7002
Function not supported
-7001
Invalid Item
-7034
Could not clear item in group
-7033
Out of boundaries
-7020
This method cannot be invoked by a Cell object
-7019
Invalid form unique ID. Should not begin with an F_ prefix
-7018
Invalid Field Value
-7017
Invalid Field Name
-7016
This datasource object is not a user-defined object
-7015
Invalid Column
-7014
A Column object with the specified unique ID already exists in the system.
-7013
The string value entered should be less then 10 characters.
-7012
An Item object with the specified unique ID already exists in the system.
-7011
The string value entered should be less then 11 characters.
-7010
A form with the requested unique ID already exists in the system.
-7009
The string value entered should be less the 32 characters.
-7040
Cannot Load XML File
-7051
Unexpected usage of the specified XML TAG.
-7050
This action type is not valid or not implemented yet.
-7043
Cannot load the Menu resource from the specified XML file.
-7042
Cannot load the Item resource from the specified XML file.
-7041
Cannot load the Form resource from the specified XML file.
-7071
Failed to create the items group.
-7070
UID
-7069
Failed to change the form current pane level.
-7068
Failed to change the form color.
-7067
Failed to change the Form mode.
-7066
Failed to fix the form default button.
-7065
Failed to change the form Visible state.
-7064
Could not change the form title.
-7063
The change of form dimensions has failed
-7062
Unknown Form attribute
-7061
XML batch resource update is not supported yet.
-7060
Reached Max Number of user data sources.
-7094
Failed to add the items child objects.
-7093
Failed to batch add the items
-7092
Failed to bind the item to the data source
-7091
Wrong Item Attribute
-7090
Unknown Field Type
-7114
Type of Column is Not Supported.
-7113
Failed to add the column child objects.
-7112
Failed to add the new columns.
-7111
Failed to bind the column to a data source
-7110
Invalid column attributes
-7133
The specified menu position is not valid
-7132
Invalid menu type
-7131
Failed to add the menu object
-7130
The specified menu already exists.
-7030
Invalid Row Number
-7029
Operation not supported on system form.
-7028
Out of boundary of DB data source offset.
-7027
The menu item is not a user defined menu item and cannot be manipulated in such manner.
-7026
Menu item was not found
-7025
Unknown Form State
-7024
Failed setting form bounds
-7023
Invalid Target
-7022
Could not commit action because the item is currently in focus.
-7021
Operation could not be set on extended edit text item.
-7200
Your connection string doesn't much UI development work mode.
-7201
The specified connection string is not valid. -
Spatial vs. materialized views/query rewrite
Dear all,
we are trying to use Spatial (Locator) functionality together with performance optimization using materialized views and query rewrite, and it does not seem to work. Does anybody has experience with this?
The problem in more detail:
* There is a spatial attribut (vom Typ GEOMETRY) in our table;
* we define a materialized view on that table;
* we run a query that could be better answered using the materialized view with query rewrite;
*the optimizer does not choose the plan using the materialized view, query rewrite does not take place;
This happenes, even if neither the materialized view, nor the query contains the spatial attribut.
The explanation given by the procedure DBMS_MVIEW.Explain_Rewrite is:
"QSM-01064 query has a fixed table or view Cause: Query
rewrite is not allowed if query references any fixed tables or views"
We are using Oracle 9R2, Enterprise Edition, with locator. Nevertheless, it would also be interesting, if there is any improvement in 10g?
A more complicated task, using materialized views to optimize spatial operations (e.g., sdo_relate) would also be very interesting, as spatial joins are very expensive operations.
Thanks in advance for any comments, ideas!
Cheers,
Gergely LukacsHi Dan,
thanks for your rapid response!
A simple example is:
alter session set query_rewrite_integrity=trusted;
alter session set query_rewrite_enabled=true;
set serveroutput on;
/* Creating testtable */
CREATE TABLE TESTTABLE (
KEY1 NUMBER (4) NOT NULL,
KEY2 NUMBER (8) NOT NULL,
KEY3 NUMBER (14) NOT NULL,
NAME VARCHAR2 (255),
X NUMBER (9,2),
Y NUMBER (9,2),
ATTR1 VARCHAR2 (2),
ATTR2 VARCHAR2 (30),
ATTR3 VARCHAR2 (80),
ATTR4 NUMBER (7),
ATTR5 NUMBER (4),
ATTR6 NUMBER (5),
ATTR7 VARCHAR2 (40),
ATTR8 VARCHAR2 (40),
CONSTRAINT TESTTABLE_PK
PRIMARY KEY ( KEY1, KEY2, KEY3 ));
/* Creating materialized view */
CREATE MATERIALIZED VIEW TESTTABLE_MV
REFRESH COMPLETE
ENABLE QUERY REWRITE
AS SELECT DISTINCT ATTR7, ATTR8
FROM TESTTABLE;
/* Creating statistics, just to make sure */
execute dbms_stats.gather_table_stats(ownname=> 'TESTSCHEMA', tabname=> 'TESTTABLE', cascade=>TRUE);
execute dbms_stats.gather_table_stats(ownname=> 'TESTSCHEMA', tabname=> 'TESTTABLE_MV', cascade=>TRUE);
/* Explain rewrite procedure */
DECLARE
Rewrite_Array SYS.RewriteArrayType := SYS.RewriteArrayType();
querytxt VARCHAR2(1500) :=
'SELECT COUNT(*) FROM (
SELECT DISTINCT
ATTR8 FROM
TESTTABLE
i NUMBER;
BEGIN
DBMS_MVIEW.Explain_Rewrite(querytxt, 'TESTTABLE_MV', Rewrite_Array);
FOR i IN 1..Rewrite_Array.count
LOOP
DBMS_OUTPUT.PUT_LINE(Rewrite_Array(i).message);
END LOOP;
END;
The message you get is:
QSM-01009 materialized view, string, matched query text
Cause: The query was rewritten using a materialized view, because query text matched the materialized view text.
Action: No action required.
i.e. query rewrite works!
/* Adding geometry column to the testtable -- not to the materialized view, and not to the query! */
ALTER TABLE TESTTABLE
ADD GEOMETRYATTR mdsys.sdo_geometry;
/* Explain rewrite procedure */
DECLARE
Rewrite_Array SYS.RewriteArrayType := SYS.RewriteArrayType();
querytxt VARCHAR2(1500) :=
'SELECT COUNT(*) FROM (
SELECT DISTINCT
ATTR8 FROM
TESTTABLE
i NUMBER;
BEGIN
DBMS_MVIEW.Explain_Rewrite(querytxt, 'TESTTABLE_MV', Rewrite_Array);
FOR i IN 1..Rewrite_Array.count
LOOP
DBMS_OUTPUT.PUT_LINE(Rewrite_Array(i).message);
END LOOP;
END;
The messages you get are:
QSM-01064 query has a fixed table or view
Cause: Query rewrite is not allowed if query references any fixed tables or views.
Action: No action required.
QSM-01019 no suitable materialized view found to rewrite this query
Cause: There doesn't exist any materialized view that can be used to rewrite this query.
Action: Consider creating a new materialized view.
i.e. query rewrite does not work!
If this works, the next issue is to use materialized views for optimizing spatial operations, e.g., a spatial join. I can supply you with an example, if necessary (only makes sense, I think, after the first problem is solved).
Thanks in advance for any ideas, comments!
Cheers,
Gergely -
How to parse select lines in an html string?
I've been writing a program to deal with demographic data and the first server it calls returns an xml string. However, the backup server returns an html string instead of an xml string, so the formatting is a bit different. I was going to use a regex as I did with the xml server, but regex's don't work that well with html. i was wondering if you could offer some advice on how to effectively parse the html string? It is in this format <html>
<head>
<meta name="Description" content="ZIP Code Demographics"/>
<meta name="Keywords" content="zip, zip code, zipcode, demographics, 2000, county, lookup, city, state"/>
<title>ZIP Code Demographics Lookup</title>
<link rel="stylesheet" type="text/css" href="http://www.MelissaData.com/style.css" />
</head>
<body topmargin="0" onload="document.getElementById('text1').focus()">
<div align="center">
<!--Start of top.asp 9/2/08 Ray-->
<script type='text/javaScript' src='http://www.melissadata.com/cgi-bin/lib.js'></script>
<table align="center" border="0" cellpadding="0" cellspacing="0" width="744" style="font-size:8pt; font-family:Arial; color: #666666">
<tr valign='middle' height='24'>
<td align="left" rowspan=2><a href="/index.htm">
<img border="0" src="http://www.melissadata.com/home/new1207/MelissaData-logo.gif" alt="Melissa Data Home Page" /></a><img border="0" src="http://www.melissadata.com/home/new1207/1-800-number.gif" width="112" height="22" alt="Call 1-800-MELISSA for Data Quality Solutions" /></td>
<td colspan='2' align="right">
<font size="1" face="Verdana">
<script type="text/javaScript">var r=uCookie("r"); var s=uCookie("s"); var n=uCookie("n");
//document.write (document.cookie);
if (r == "YES" && s == "IN" && n != "" ) document.write ("Hello <b>" + n.replace(/\+/g," ") + "<\/b> [<font size=1><a href=/user/signout.aspx>Sign out<\/a>, <a href=/user/user_account.aspx>My Account<\/a></font>]");else document.write (" <a href=/user/signin.aspx>Sign In<\/a> ");
</script></font></td></tr>
<tr height='24'>
<form method="get" action="http://w2.melissadata.com/cgi-bin/search.asp">
<td align="right" height=30>
<a href="/netcart/order1.aspx"><img border="0" src="http://www.melissadata.com/home/new1207/Hompage-shoppincart.gif" alt="Shopping Cart" /></a>
<a style="color: #666666" href="/netcart/order1.aspx">Buy</a>
| <a style="color: #666666" href="/cgi-bin/newsletters.asp">Newsletters</a> | Search
<input name="indata" style="font-size:7pt; font-family:Arial" size="10" /><input type="image" src="http://www.melissadata.com/home/new1207/hompage-arrow.gif" style="vertical-align: middle" value="Search" name="submit1" />
</td></form></tr>
</table>
<style="font-size:10pt; font-family:Arial; color: #0066cc" type="text/css">
<table align="center" border="0" cellpadding="4" cellspacing="0" width="744">
<tr>
<td align="center" width="106">
<b><a style="text-decoration: none" href="/products/index.htm">Products</a></b></td>
<td align="center" width="106">
<b><a style="text-decoration: none" href="/solutions/index.htm">Solutions</a></b></td>
<td align="center" width="106">
<b><a style="text-decoration: none" href="/download.htm">Downloads</a> </b></td>
<td align="center" width="106">
<b><a style="text-decoration: none" href="/tech/tech.html">Support</a> </font></td>
<td align="center" width="106">
<b><a style="text-decoration: none" href="/resources/index.htm">Resources</a></b></td>
<td align="center" width="106">
<b><a style="text-decoration: none" href="/lookups/index.htm">Lookups</a></b></td>
<td align="center" width="106">
<b><a style="text-decoration: none" href="/cgi-bin/contact.asp">Contact Us</a></b></td></tr>
</table></style>
<!-- Start Image BanAd.asp-->
<div align=center><a href='/cgi-bin/BanAd.asp?id=135'><img alt='Click here' src='/cgi-bin/BanImage.asp?id=135'></a></div><!-- End Image BanAd.asp-->
<!--TitleBorder in Shared.asp -->
<table width="744" cellspacing=0 border=1 bgcolor="#F7F7F7"><tr><td align=left><font color="#ce0000" size="5">ZIP Code Demographics Lookup</font></td><form><td width=120 align=center><input title='Help for ZIP Code Demographics Lookup' type=button onClick=openHelpWindow('/lookups/help/zipdemo2000.asp') value=Help> <a title='Lookups home page' href=/lookups/index.htm>Index</a></td></form></tr></table>
<!--TitleBorder End-->
<form action="ZipDemo2000.asp" name="Demo2000">
<table width="400" class="Disp">
<tr><td align="center"><b>Enter a 5-Digit ZIP Code</b>
<input class="Disp" title="Enter a ZIP Code" id="text1" size="5" name="ZipCode" maxlength="5"/> <input type="submit" value="Submit"/>
</td></tr>
</table>
</form>
<table cellspacing="0" cellpadding="1" width="750" border="2" bgcolor="#ffffcc">
<tr bgcolor="lightblue"><td colspan="4" align="center">Year 2000 Demographics of <br><b>ZIP Code 90041</b><br><b>LOS ANGELES, California</b><br><a href=mapzipv.asp?zip=90041>Map of ZIP Code</a></td></tr>
<tr bgcolor="#bbffff"><td>TOTAL POPULATION [1]</td><td >P001</td></tr>
<tr bgcolor="#bbffff"><td>Universe: Total population</td><td >P001</td></tr>
<tr><td> Total</td><td align=right ><b> 27,864</b></td></tr>
<tr bgcolor="#bbffff"><td>URBAN AND RURAL [6]</td><td >P002</td></tr>
<tr bgcolor="#bbffff"><td>Universe: Total population</td><td >P002</td></tr>
<tr><td> Total:</td><td align=right ><b> 27,864</b></td></tr>
<tr><td> Urban:</td><td align=right ><b> 27,864</b></td></tr>
<tr><td> Inside urbanized areas</td><td align=right ><b> 27,864</b></td></tr>
<tr><td> Inside urban clusters</td><td align=right ><b> 0</b></td></tr>
<tr><td> Rural</td><td align=right ><b> 0</b></td></tr>
<tr><td> Not defined for this file</td><td align=right ><b> 0</b></td></tr>
<tr bgcolor="#bbffff"><td>RACE [8]</td><td >P007</td></tr>
<tr bgcolor="#bbffff"><td>Universe: Total population</td><td >P007</td></tr>
<tr><td> Total:</td><td align=right ><b> 27,864</b></td></tr>
<tr><td> White alone</td><td align=right ><b> 13,429</b></td></tr>
<tr><td> Black or African American alone</td><td align=right ><b> 630</b></td></tr>
<tr><td> American Indian and Alaska Native alone</td><td align=right ><b> 242</b></td></tr>
<tr><td> Asian alone</td><td align=right ><b> 7,123</b></td></tr>
<tr><td> Native Hawaiian and Other Pacific Islander alone</td><td align=right ><b> 42</b></td></tr>
<tr><td> Some other race alone</td><td align=right ><b> 4,738</b></td></tr>
<tr><td> Two or more races</td><td align=right ><b> 1,660</b></td></tr>
<tr bgcolor="#bbffff"><td>HISPANIC OR LATINO BY RACE [17]</td><td >P008</td></tr>
<tr bgcolor="#bbffff"><td>Universe: Total population</td><td >P008</td></tr>
<tr><td> Total:</td><td align=right ><b> 27,864</b></td></tr>
<tr><td> Not Hispanic or Latino:</td><td align=right ><b> 17,109</b></td></tr>
<tr><td> White alone</td><td align=right ><b> 8,468</b></td></tr>
<tr><td> Black or African American alone</td><td align=right ><b> 555</b></td></tr>
<tr><td> American Indian and Alaska Native alone</td><td align=right ><b> 105</b></td></tr>
<tr><td> Asian alone</td><td align=right ><b> 7,053</b></td></tr>
<tr><td> Native Hawaiian and Other Pacific Islander alone</td><td align=right ><b> 30</b></td></tr>
<tr><td> Some other race alone</td><td align=right ><b> 73</b></td></tr>
<tr><td> Two or more races</td><td align=right ><b> 825</b></td></tr>
<tr><td> Hispanic or Latino:</td><td align=right ><b> 10,755</b></td></tr>
<tr><td> White alone</td><td align=right ><b> 4,961</b></td></tr>
<tr><td> Black or African American alone</td><td align=right ><b> 75</b></td></tr>
<tr><td> American Indian and Alaska Native alone</td><td align=right ><b> 137</b></td></tr>
<tr><td> Asian alone</td><td align=right ><b> 70</b></td></tr>
<tr><td> Native Hawaiian and Other Pacific Islander alone</td><td align=right ><b> 12</b></td></tr>
<tr><td> Some other race alone</td><td align=right ><b> 4,665</b></td></tr>
<tr><td> Two or more races</td><td align=right ><b> 835</b></td></tr>
<tr bgcolor="#bbffff"><td>SEX BY AGE [49]</td><td >P012</td></tr>
<tr bgcolor="#bbffff"><td>Universe: Total population</td><td >P012</td></tr>
<tr><td> Total:</td><td align=right ><b> 27,864</b></td></tr>
<tr><td> Male:</td><td align=right ><b> 13,324</b></td></tr>
<tr><td> Under 5 years</td><td align=right ><b> 862</b></td></tr>
<tr><td> 5 to 9 years</td><td align=right ><b> 974</b></td></tr>
<tr><td> 10 to 14 years</td><td align=right ><b> 872</b></td></tr>
<tr><td> 15 to 17 years</td><td align=right ><b> 525</b></td></tr>
<tr><td> 18 and 19 years</td><td align=right ><b> 511</b></td></tr>
<tr><td> 20 years</td><td align=right ><b> 257</b></td></tr>
<tr><td> 21 years</td><td align=right ><b> 287</b></td></tr>
<tr><td> 22 to 24 years</td><td align=right ><b> 569</b></td></tr>
<tr><td> 25 to 29 years</td><td align=right ><b> 969</b></td></tr>
<tr><td> 30 to 34 years</td><td align=right ><b> 1,024</b></td></tr>
<tr><td> 35 to 39 years</td><td align=right ><b> 1,140</b></td></tr>
<tr><td> 40 to 44 years</td><td align=right ><b> 1,077</b></td></tr>
<tr><td> 45 to 49 years</td><td align=right ><b> 987</b></td></tr>
<tr><td> 50 to 54 years</td><td align=right ><b> 822</b></td></tr>
<tr><td> 55 to 59 years</td><td align=right ><b> 647</b></td></tr>
<tr><td> 60 and 61 years</td><td align=right ><b> 215</b></td></tr>
<tr><td> 62 to 64 years</td><td align=right ><b> 270</b></td></tr>
<tr><td> 65 and 66 years</td><td align=right ><b> 155</b></td></tr>
<tr><td> 67 to 69 years</td><td align=right ><b> 258</b></td></tr>
<tr><td> 70 to 74 years</td><td align=right ><b> 320</b></td></tr>
<tr><td> 75 to 79 years</td><td align=right ><b> 252</b></td></tr>
<tr><td> 80 to 84 years</td><td align=right ><b> 183</b></td></tr>
<tr><td> 85 years and over</td><td align=right ><b> 148</b></td></tr>
<tr><td> Female:</td><td align=right ><b> 14,540</b></td></tr>
<tr><td> Under 5 years</td><td align=right ><b> 864</b></td></tr>
<tr><td> 5 to 9 years</td><td align=right ><b> 949</b></td></tr>
<tr><td> 10 to 14 years</td><td align=right ><b> 875</b></td></tr>
<tr><td> 15 to 17 years</td><td align=right ><b> 534</b></td></tr>
<tr><td> 18 and 19 years</td><td align=right ><b> 592</b></td></tr>
<tr><td> 20 years</td><td align=right ><b> 285</b></td></tr>
<tr><td> 21 years</td><td align=right ><b> 264</b></td></tr>
<tr><td> 22 to 24 years</td><td align=right ><b> 600</b></td></tr>
<tr><td> 25 to 29 years</td><td align=right ><b> 932</b></td></tr>
<tr><td> 30 to 34 years</td><td align=right ><b> 1,035</b></td></tr>
<tr><td> 35 to 39 years</td><td align=right ><b> 1,026</b></td></tr>
<tr><td> 40 to 44 years</td><td align=right ><b> 1,131</b></td></tr>
<tr><td> 45 to 49 years</td><td align=right ><b> 1,038</b></td></tr>
<tr><td> 50 to 54 years</td><td align=right ><b> 970</b></td></tr>
<tr><td> 55 to 59 years</td><td align=right ><b> 689</b></td></tr>
<tr><td> 60 and 61 years</td><td align=right ><b> 261</b></td></tr>
<tr><td> 62 to 64 years</td><td align=right ><b> 327</b></td></tr>
<tr><td> 65 and 66 years</td><td align=right ><b> 208</b></td></tr>
<tr><td> 67 to 69 years</td><td align=right ><b> 307</b></td></tr>
<tr><td> 70 to 74 years</td><td align=right ><b> 482</b></td></tr>
<tr><td> 75 to 79 years</td><td align=right ><b> 450</b></td></tr>
<tr><td> 80 to 84 years</td><td align=right ><b> 331</b></td></tr>
<tr><td> 85 years and over</td><td align=right ><b> 390</b></td></tr>
<tr bgcolor="#bbffff"><td>MEDIAN AGE BY SEX [3]</td><td >P013</td></tr>
<tr bgcolor="#bbffff"><td>Universe: Total population</td><td >P013</td></tr>
<tr bgcolor="#bbffff"><td>Median age--</td><td >P013</td></tr>
<tr><td> Both sexes</td><td align=right ><b> 35.3</b></td></tr>
<tr><td> Male</td><td align=right ><b> 34.0</b></td></tr>
<tr><td> Female</td><td align=right ><b> 36.6</b></td></tr>
<tr bgcolor="#bbffff"><td>HOUSEHOLDS [1]</td><td >P015</td></tr>
<tr bgcolor="#bbffff"><td>Universe: Households</td><td >P015</td></tr>
<tr><td> Total</td><td align=right ><b> 9,375</b></td></tr>
<tr bgcolor="#bbffff"><td>POPULATION IN HOUSEHOLDS [1]</td><td >P016</td></tr>
<tr bgcolor="#bbffff"><td>Universe: Population in households</td><td >P016</td></tr>
<tr><td> Total</td><td align=right ><b> 26,409</b></td></tr>
<tr bgcolor="#bbffff"><td>AVERAGE HOUSEHOLD SIZE [1]</td><td >P017</td></tr>
<tr bgcolor="#bbffff"><td>Universe: Households</td><td >P017</td></tr>
<tr><td> Average household size</td><td align=right ><b> 2.82</b></td></tr>
<tr bgcolor="#bbffff"><td>FAMILIES [1]</td><td >P031</td></tr>
<tr bgcolor="#bbffff"><td>Universe: Families</td><td >P031</td></tr>
<tr><td> Total</td><td align=right ><b> 6,326</b></td></tr>
<tr bgcolor="#bbffff"><td>POPULATION IN FAMILIES [1]</td><td >P032</td></tr>
<tr bgcolor="#bbffff"><td>Universe: Population in families</td><td >P032</td></tr>
<tr><td> Total</td><td align=right ><b> 21,653</b></td></tr>
<tr bgcolor="#bbffff"><td>AVERAGE FAMILY SIZE [1]</td><td >P033</td></tr>
<tr bgcolor="#bbffff"><td>Universe: Families</td><td >P033</td></tr>
<tr><td> Average family size</td><td align=right ><b> 3.42</b></td></tr>
</table>
<!-- Start of bottom.asp-->
<hr width="730" />
<span style='font-size:8pt'>
<a href="http://www.melissadata.com/enews/advisorarticles/index.htm">Articles</a> |
<a href="javascript:window.external.AddFavorite('http://www.melissadata.com/lookups/zipdemo2000.asp', 'ZIP Code Demographics Lookup')" target="_self">Bookmark</a> |
<a href="http://www.melissadata.com/cgi-bin/improve.asp?web">How Can We Improve?</a> |
<a href="http://www.melissadata.com/cgi-bin/batchprocessing.asp">Batch Processing</a> |
<a href="http://www.melissadata.com/cgi-bin/send.asp?Send2Friend">Email to Friend</a> |
<a href="http://www.melissadata.com/cgi-bin/catalogres.asp">Free Catalog</a> |
<a href="http://forum.melissadata.com/default.aspx">Forums</a> |
<a href="http://www.melissadata.com/terms-of-use.htm">Terms of Use</a>
<font color="#ddddff"><br />
<script type="text/javascript"> var r=uCookie("r"); var f=uCookie("f"); var c=uCookie("c"); var l=uCookie("l");
//document.write (r + ":" + f + ":" + c + ":" + l);</script></font></span>
<!-- End of bottom.asp-->
</div>
</body>
</html>.
The numbers I wanted to extract are the age groups of "Under 5 years," "5 to 9 years," "10 to 14 years," and "15 to 17 years," from both male and female groups, which should add up to 8 numbers total. Here is the backup server portion of my program as well, so you can see what i'm doing.
import java.net.*;
import java.net.URL;
import java.net.URLConnection;
import java.net.HttpURLConnection;
import java.io.*;
import java.io.DataOutputStream;
import java.io.BufferedReader;
import java.io.StringReader;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.Arrays;
public class TriParser
static Scanner sc = new Scanner(System.in);
public static int[] findValues(String text, String gender, String[] labels)
Matcher m = Pattern.compile("<td>(.*?)</td>",
Pattern.MULTILINE | Pattern.DOTALL).matcher(text);
String allValues = m.find() ? m.group(1) : null; // TODO: handle if 'null' is returned!
int[] values = new int[labels.length];
for(int i = 0; i < labels.length; i++)
m = Pattern.compile(labels[i]+"[^>]+>(\\d+)").matcher(allValues);
if(m.find()) values[i] = Integer.parseInt(m.group(1));
return values;
public static void main(String[] args) throws Exception
int zip;
boolean validInteger;//indicates if zipcode is valid (has to be 5 digits)
do
System.out.print("Enter a five-digit zipcode: ");
zip = sc.nextInt();
validInteger = true;
if((zip < 10000) || (zip > 99999))
validInteger = false;
System.out.println("Invalid Entry. Please re-enter zipcode.");
while(!validInteger);
System.out.println(zip);
//String requestPart1 ="query=PREFIX+dc%3A++%3Chttp%3A%2F%2Fpurl.org%2Fdc%2Felements%2F1.1%2F%3E+%0D%0APREFIX+census%3A+%3Chttp%3A%2F%2Fwww.rdfabout.com%2Frdf%2Fschema%2Fcensus%2F%3E+%0D%0APREFIX+census1%3A+%3Ctag%3Agovshare.info%2C2005%3Ardf%2Fcensus%2Fdetails%2F100pct%2F%3E+%0D%0A%0D%0ADESCRIBE+%3Ftable+WHERE+%7B+%0D%0A+%3Chttp%3A%2F%2Fwww.rdfabout.com%2Frdf%2Fusgov%2Fgeo%2Fcensus%2Fzcta%2F";
//String requestPart2 = "" + zip; // zipcode goes here
//String requestPart3 ="%3E+census%3Adetails+%3Fdetails+.+%0D%0A+%3Fdetails+census1%3AtotalPopulation+%3Ftable+.+%0D%0A+%3Ftable+dc%3Atitle+%22SEX+BY+AGE+%28P012001%29%22+.+%0D%0A%7D%0D%0A&outputMimeType=text%2Fxml";
String requestPart1 = "" + zip;
String response = "";
URL url = new URL("http://www.melissadata.com/lookups/zipdemo2000.asp?ZipCode="+requestPart1);
URLConnection conn = url.openConnection();
// Set connection parameters.
conn.setDoInput (true);
conn.setDoOutput (true);
conn.setUseCaches (false);
// Make server believe we are form data
conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
DataOutputStream out = new DataOutputStream (conn.getOutputStream ());
// Write out the bytes of the content string to the stream.
out.writeBytes(requestPart1);
out.flush ();
out.close ();
// Read response from the input stream.
BufferedReader in = new BufferedReader (new
InputStreamReader(conn.getInputStream ()));
String temp;
while ((temp = in.readLine()) != null)
response += temp + "\n"; // needs to be parsed to calculate the 4 numbers
temp = null;
in.close ();
//System.out.println("Server response:\n" + response);
// how to call the method:
String[] ages = {"Under 5 years", "5 to 9 years", "10 to 14 years", "15 to 17 years"};
String[] ages1 = {"Under 5 years"};
String[] ages2 = {"5 to 9 years"};
String[] ages3 = {"10 to 14 years"};
String[] ages4 = {"15 to 17 years"};
String female1 = Arrays.toString(findValues(response, "female", ages1));
String female2 = Arrays.toString(findValues(response, "female", ages2));
String female3 = Arrays.toString(findValues(response, "female", ages3));
String female4 = Arrays.toString(findValues(response, "female", ages4));
String female = female1 + "+" + female2 + "<" + female3 + ">" + female4 + "&";
String male1 = Arrays.toString(findValues(response, "male", ages1));
String male2 = Arrays.toString(findValues(response, "male", ages2));
String male3 = Arrays.toString(findValues(response, "male", ages3));
String male4 = Arrays.toString(findValues(response, "male", ages4));
String male = male1 + "+" + male2 + "<" + male3 + ">" + male4 + "&";
System.out.println(female);
System.out.println(male);
//Simplified string response, makes use of regular expressions
//Start manipulation of numbers inside string
int left = female.indexOf("[");
int right = female.indexOf("]");
// pull out the text inside the parens
String parsed = female.substring(left+1, right);
double parseddub = Double.parseDouble(parsed);
//divide the group Under5Years into Under12Mo and 1to4Yr
double Group1Adub = parseddub*.25;//25% for Under12Mo
Group1Adub = Math.ceil(Group1Adub);
int Group1A =(int)Group1Adub;
double Group1Bdub = parseddub*.75;//75% for 1to4Yr
Group1Bdub = Math.ceil(Group1Bdub);
int Group1B =(int)Group1Bdub;
int left2 = female.indexOf("+");
int right2 = female.indexOf("<");
// pull out the text inside the parens
String parsed2 = female.substring(left2+2, right2-1);
double parsed2dub = Double.parseDouble(parsed2);
//divide the group 5to9Yr into 5Yr, 6to7Yr, and 8to9Yr
double Group2Adub = parsed2dub*.2;//20% for 5Yr
Group2Adub = Math.ceil(Group2Adub);
int Group2A =(int)Group2Adub;
double Group2Bdub = parsed2dub*.4;//40% for 6to7Yr
Group2Bdub = Math.ceil(Group2Bdub);
int Group2B =(int)Group2Bdub;
double Group2Cdub = parsed2dub*.2;//20% for 8Yr
Group2Cdub = Math.ceil(Group2Cdub);
int Group2C =(int)Group2Cdub;
double Group2Ddub = parsed2dub*.2;//20% for 9Yr
Group2Ddub = Math.ceil(Group2Ddub);
int Group2D =(int)Group2Ddub;
int left3 = female.indexOf("<");
int right3 = female.indexOf(">");
// pull out the text inside the brackets
String parsed3 = female.substring(left3+2, right3-1);
int Group3A = Integer.valueOf(parsed3).intValue();
int left4 = female.indexOf(">");
int right4 = female.indexOf("&");
// pull out the text inside the brackets
String parsed4 = female.substring(left4+2, right4-1);
int Group4A = Integer.valueOf(parsed4).intValue();
int left5 = male.indexOf("[");
int right5 = male.indexOf("]");
String parsed5 = male.substring(left5+1, right5);
double parsed5dub = Double.parseDouble(parsed5);
//divide the group Under5Years into Under12Mo and 1to4Yr
double Group5Adub = parsed5dub*.25;//25% for Under12Mo
Group5Adub = Math.ceil(Group5Adub);
int Group5A =(int)Group5Adub;
double Group5Bdub = parsed5dub*.75;//75% for 1to4Yr
Group5Bdub = Math.ceil(Group5Bdub);
int Group5B =(int)Group5Bdub;
int left6 = male.indexOf("+");
int right6 = male.indexOf("<");
// pull out the text inside the parens
String parsed6 = male.substring(left6+2, right6-1);
double parsed6dub = Double.parseDouble(parsed6);
//divide the group 5to9Yr into 5Yr, 6to7Yr, and 8to9Yr
double Group6Adub = parsed6dub*.2;//20% for 5Yr
Group6Adub = Math.ceil(Group6Adub);
int Group6A =(int)Group6Adub;
double Group6Bdub = parsed6dub*.4;//40% for 6to7Yr
Group6Bdub = Math.ceil(Group6Bdub);
int Group6B =(int)Group6Bdub;
double Group6Cdub = parsed6dub*.2;//20% for 8Yr
Group6Cdub = Math.ceil(Group6Cdub);
int Group6C =(int)Group6Cdub;
double Group6Ddub = parsed6dub*.2;//20% for 9Yr
Group6Ddub = Math.ceil(Group6Ddub);
int Group6D =(int)Group6Ddub;
int left7 = male.indexOf("<");
int right7 = male.indexOf(">");
// pull out the text inside the brackets
String parsed7 = male.substring(left7+2, right7-1);
int Group7A = Integer.valueOf(parsed7).intValue();
int left8 = male.indexOf(">");
int right8 = male.indexOf("&");
// pull out the text inside the brackets
String parsed8 = male.substring(left8+2, right8-1);
int Group8A = Integer.valueOf(parsed8).intValue();
//female
int Group1 = Group1A;
int Group2 = Group1B + Group2A;
int Group3 = Group2A + Group2B + Group2C;
int Group4 = Group2C + Group2D + Group3A + Group4A;
//male
int Group5 = Group5A;
int Group6 = Group5B + Group6A;
int Group7 = Group6A + Group6B + Group6C;
int Group8 = Group6C + Group6D + Group7A + Group8A;
System.out.println("Server response:\n" + "\n" + "Female");
System.out.println("Under 12 Months: " + Group1);
System.out.println("1 to 4 Years Old: " + Group2);
System.out.println("5 to 8 Years Old: " + Group3);
System.out.println("8 to 17 Years Old: " + Group4);
System.out.println("\n" + "Male");
System.out.println("Under 12 Months: " + Group5);
System.out.println("1 to 4 Years Old: " + Group6);
System.out.println("5 to 8 Years Old: " + Group7);
System.out.println("8 to 17 Years Old: " + Group8);
}Currently it functions using a regex, and executes, but doesn't return any numbers, only returns zeros...If you could help me out with this, that would be amazing! Thanks so much.hmm, is there a way to do it without an external API? Of course there is.
looks like i have to download the API and the idea behind the program is to make it so multiple people running only java can run the program, without having to download APIs, ect, to make it run. Not sure if that is what JTidy entails, but is that what you were suggesting?Personally, I don't understand the resistance to using well-tested tools already in existence as opposed to trying to rewrite a shallow facsimile of said tools. You can distribute the JTidy library along with your application and save yourself a great deal of development and debugging effort.
~
Maybe you are looking for
-
Cannot find instructions on how to connect printer to a new wireless network.
HP 4500 series was connected to my wireless network successfully for a year. Upon moving and obtaining new wireless network I cannot find instructions for changing wireless network for printer to recognize.
-
Is there a way to delete 1 of my itunes accounts on a computer so I can access on my new computer? It says I am on 5 different computers and I am not sure what computers my daughter has signed up for an account on! Help please!
-
Itunes backup crashed.(but was recovered)
So my backup drive was failing and i purchased a new drive to transfer all the data over to it. Before I could get the data transferred the drive failed. I used Data Rescue 3 and it has recovered all the files. The thing is all the mp3 files play in
-
Need help converting a document
I just purchased the adobe monthly plan and am trying to convert a document can you assist
-
How do I determine processor version?
System profiler is vague about the version of processor in my iMac. How do I get more information on the version of processor installed? System Profiller says: Processor Name: Intel Core 2 Duo Processor Speed: 3.06 GHz Number of Processors: