AXL execute SQL update
Is there a way to fire off an update query like:
Update devices set description = 'A' where description = 'B'
I get a "no update permission" error.
Yes, this a bad idea for many reasons, but I'm not willing to let that stop me, at least in this lab/test scenario...
Thanks for the response Stephan and s. Sorry - the original post had a typo. I was using the proper table name.
I didn't realize that there was a command line option. I've been avoiding the command line because I don't know too much about it. The command line option worked:
admin:run sql update device set description= "Test" where name="SEP000000032081"
Rows: 1
admin:
Of course this morning, I get something totally different from AXL (but these are the actual reuest and response envelopes):
sent:
http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
update device set description= 'Test' where name='SEP001BD458B533'
received:
http://schemas.xmlsoap.org/soap/envelope/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
SOAP-ENV:Client
Method only for queries
http://www.cisco.com/AXL/API/1.0">
-79750
Method only for queries
executeSQLQuery
Similar Messages
-
Form Personalization Execute SQL Update
I have a requirement where based on changes in one form (say based on table1), I want to run sql "to update" records in another table (table2). Basically sync table 2 when record status changes in table 1. I want to do it with form personalization (when validate record trigger).
How to execute such sql statement and commit using form personalization? any suggestion?
ThanksPl post full versions of OS and EBS. See if the examples in these MOS Docs can help
279034.1 - Information About the Oracle Applications Form Personalization Feature in 11i
395117.1 - Form Personalizations in Oracle E-Business Suite (Release 12)
Pl also see this related thread - Re: Oracle Forms Personalization
HTH
Srini -
Execute SQL Task does not Update from a Date Variable Reliably
I'm using a DateTime variable in SSIS 2008 that is used to set the SQLStatement property of an Execute SQL Task.
"DELETE FROM Labor WHERE Week = '" + (DT_WSTR, 100) @[User::Week] + "'"
Week is the next Sunday:
DATEADD( "day", @[User::DaysTillSunday] , @[User::TheDayThatIsTwentyMinutesPrior] )
DaysTillSunday:
DATEPART( "dw", @[User::TheDayThatIsTwentyMinutesPrior] ) == 1 ? 0 : 8 - DATEPART( "dw", @[User::TheDayThatIsTwentyMinutesPrior] )
TheDayThatIsTwentyMinutesPrior:
(DT_DATE)(DT_DBDATE)DATEADD("minute",-20,GETDATE())
The SSIS Package deletes the current week's data, reloads it with fresh data, then calculates the difference between the current week and last week.
The problem is that randomly, instead of deleting the current week, it will delete the previous week. This happens maybe 5-10% of the time. At least it does until I rebuild the package and import it into SQL Server again.
I'm guessing that the Execute SQL Task is not updating the value of the Week variable before it executes. I started with the source type being a variable. Then I decided to try Direct input and pass in the Week as a parameter (OLE DB Connection
Type). That didn't work either.
Most recently I tried writing the Week variable to a table first, then having a sequence container with all the tasks second. Slightly better but I still saw the date was wrong 2 times in about 90 executions. I was hoping that writing the Week
variable out to the database would force an update of any associated connections to it, but that didn't seem to work.
Any ideas? Is this a known issue, am I missing a setting?
thanks,
JohnJohn, computers either work all the time or have a bug. I suspect it is the latter.
To find it [faster] you need to log what the resulting expression was used in the package.
I am baffled how rebuilding a package would fix anything like setting a date.
It might be even dependant on when you run the package.
Why
DATEADD("minute",-20,GETDATE())
DATEADD( "day", -8 , GETDATE() )
It must be enough to set the week (that appears to be a date) as above.
Arthur
MyBlog
Twitter -
Execute SQL Task - UPDATE or Data Flow Data Conversion
Good Morning folks,
I want to know which is more fast to convert data type.
I want to convert nvarchar(255) to datetime2,
using t-sql (execute sql task)
UPDATE TBL
SET FIELD1= CAST(FIELD1AS DATETIME2)
GO
or data conversion(data flow)
Thank..Itz Shailesh, my t-sql have only UPDATE, not many UPDATES... so it's one batch, no 2,3,4... So.. it's Only one update.. ex: update table set field1 = cast(field1 as datetime2), field2 = cast(field2 as datetime2). not : update table set field = cast(field
as datetime2) go update table set field2 = cast(field2 as datetime2) go.... understand?
Yeah, I understand that you have to update just 1 field. What I am saying, if you have to update millions of rows then you must update rows in batches ( lets say batch of 50k). This way you will only touch 50k rows at a time and not all rows from table.
I see that your rows are less however I would still prefer the option of data conversion transformation over update statement.
If this post answers your query, please click "Mark As Answer" or "Vote as Helpful". -
Hi,
How do I return two values from a
stored procedure into an "Execute SQL Task" please? Each of these two values need to be populated into an SSIS variable for later processing, e.g. StartDate and EndDate.
Thinking about stored procedure output parameters for example. Is there anything special I need to bear in mind to ensure that the SSIS variables are populated with the updated stored procedure output parameter values?
Something like ?
CREATE PROCEDURE [etl].[ConvertPeriodToStartAndEndDate]
@intPeriod INT,
@strPeriod_Length NVARCHAR(1),
@dtStart NVARCHAR(8) OUTPUT,
@dtEnd NVARCHAR(8) OUTPUT
AS
then within the SSIS component; -
Kind Regards,
Kieran.
Kieran Patrick Wood http://www.innovativebusinessintelligence.com http://uk.linkedin.com/in/kieranpatrickwood http://kieranwood.wordpress.com/Below execute statement should work along the parameter mapping which you have provided. Also try specifying the parameter size property as default.
Exec [etl].[ConvertPeriodToStartAndEndDate] ?,?,? output, ? output
Add a script task to check ssis variables values using,
Msgbox(Dts.Variables("User::strExtractStartDate").Value)
Do not forget to add the property "readOnlyVariables" as strExtractStartDate variable to check for only one variable.
Regards, RSingh -
SSIS Package Load Failure and is missing Execute SQL Task in Toolbox
Also, BIDS closes after right-clicking the toolbox and selecting “Choose Items”.
I’ve tried several ways to fix these issues with no success.
I’m running SSIS/SSMS/SQL Server 2008 R2 (but not running an SQL instance on my PC) on a Windows XP with Service Pack 3 workstation. I get the following errors:
WHEN OPENING BIDS:
I get 2 errors titled “Package Load Failure”. They both reference ‘Visual Studio Explorers and Designers Package’ as being what failed to load. The first message references GUID 8D8529D3-625D-4496-8354-3DAD630ECC1B. The second references GUID AA612177-A69A-4391-B2F4-17F8A88F4BBA
. They both mention contacting the package vendor, but I haven’t got any Add-ins loaded so I’m not sure what that means exactly. They also both ask if I’d like to skip loading the package in the future.
ONCE BIDS IS OPEN:
No error messages appear here. There is no ‘Execute SQL Task’ in the toolbox for Control Flows. Also, if I attempt to open a project containing this object (Execute SQL Task), I get this error in a modal window:
TITLE: Microsoft Visual Studio
There were errors while the package was being loaded.
The package might be corrupted.
See the Error List for details.
BUTTONS:
OK
. . . and these errors in the Error List at the bottom of the IDE:
Error 1
Error loading Package.dtsx: Failed to load task "Execute SQL Task", type "Microsoft.SqlServer.Dts.Tasks.ExecuteSQLTask.ExecuteSQLTask, Microsoft.SqlServer.SQLTask, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91". The contact information
for this task is "Execute SQL Task; Microsoft Corporation; Microsoft SQL Server 2008 R2; © 2007 Microsoft Corporation; All Rights Reserved;http://www.microsoft.com/sql/support/default.asp;1".
C:\Documents and Settings\848862.VCHS_NT_DOMAIN\My Documents\Visual Studio 2008\Projects\LearnSSIS\LearnSSIS\Package.dtsx
1
1
Error 2
Validation error. Execute SQL Task : The task has failed to load. The contact information for this task is "Execute SQL Task; Microsoft Corporation; Microsoft SQL Server 2008 R2; © 2007 Microsoft Corporation; All Rights Reserved;http://www.microsoft.com/sql/support/default.asp;1".
Package.dtsx
0
0
Error 3
Validation error. Execute SQL Task : There were errors during task validation.
Package.dtsx
0
0
Finally, when I attempt to add the Execute SQL Task via the Tools menu, “Choose Toolbox Items” selection, I do get the tabbed box for adding things. However, they only come up after issuing this error:
The following assemblies are installed SDK assemblies but could not be shown in the customize toolbox dialog because they are missing one or more components. Please make sure that all necessary libraries are available:
Microsoft.SqlServer.SqlCEDest.dll
Microsoft.SqlServer.Management.CollectorTasks.dll
Microsoft.SqlServer.SQLTask.dll
System.Data.SqlServerCe.dll
Microsoft.Synchronization.Data.SqlServerCe.dll
(above dll repeated at bottom of message)
After this message, I have my choice of .NET Framework Compnents. When I select COM Components, those come up with no problem. The WPF Components tab generates the same dll error above. The Maintenance tab is empty. The SSIS Data Flow Items tab loads fine,
as does the SSIS Control Flow Items tab – but there’s no Execute SQL Task there either.
If you open the toolbox (on a new project, with a project loaded, or without a project loaded) and right-click, then select “Choose Items”, the entire application quickly closes. This “closing behavior” is the same thing you get if you attempt to add toolbox
items through either the Tools menu or the right-click method when you launch BIDS in SafeMode.
In an effort to fix this – I’ve rolled back the .NET Framework version to 3.0 and reinstalled back up to 4; I’ve uninstalled and reinstalled SQL Server 2008 R2 shared services as well as the entire application; I’ve cleared the .tbd files from my user profile;
and I’ve run several things from the command line (devenv.exe /resetuserdata, /setup, /resetskippkgs, etc.). Lastly – I’ve applied every Service Pack and update applicable to my PC (ok, it belongs to my employer – but no one here has been able to figure this
out either).
After having worked this for several days now and, I think, exhausting every available avenue from search engines – I turn to you. Please let me know if you can help. Also, I can provide any additional
files or information you may require.
CBStry: Devenv.exe /ResetSettings
http://msdn.microsoft.com/en-us/library/ms241273(v=vs.80).aspx
Or try this (it's for 2005, but maybe it works for 2008 aswell):
http://geekswithblogs.net/cicorias/archive/2007/10/10/Restoring-Missing-Toolbox-Items-in-Visual-Studio-2005---just.aspx
or try
http://stackoverflow.com/questions/1268298/how-to-rebuild-the-visual-studio-toolbox
"You can also go into the folder "C:\Documents and Settings\\Local Settings\Application Data\Microsoft\VisualStudio\9.0" and delete the *.tbd files. I have had to do this a couple times to get rid of duplicate items and when Reset Toolbox crashes
without warning"
Please mark the post as answered if it answers your question | My SSIS Blog:
http://microsoft-ssis.blogspot.com |
Twitter -
Hi , i am getting the following error while creating a table. using weblogic 8.1.
i am able to execute the sql from sqlplusw.
following is the stack trace :
Table Query ==> CREATE TABLE TMP451956Table ( YTM VARCHAR (15), AGE VARCHAR
(15), PREMIUM VARCHAR2 (15), CONTRIBUTION_CHARGE VARCHAR2 (15), SERVICE_TAX VARC
HAR2 (15), AMOUNT_INVEST VARCHAR2 (15), FUND_MGT_CHARGE6 VARCHAR2 (15),FUND_MGT_
CHARGE10 VARCHAR2 (15),MORTALITY_CHARGE6 VARCHAR2 (15),MORTALITY_CHARGE10 VARCHA
R2 (15),SARC VARCHAR2 (15),ADB_RIDER VARCHAR2 (15),CI_RIDER VARCHAR2 (15),ADD_ST
6 VARCHAR2 (15),ADD_ST10 VARCHAR2 (15),FUND_VALUE_AT_START VARCHAR2 (15),ADMIN_C
HARGE VARCHAR2 (15),FUND_AT_YEAR_END VARCHAR2 (15),FUND_VALUE_AT_START10 VARCHAR
2 (15),FUND_AT_YEAR_END10 VARCHAR2 (15))
java.sql.SQLException: ORA-01003: no statement parsed
at oracle.jdbc.driver.DatabaseError.throwSqlException(Ljava/lang/String;
Ljava/lang/String;I)V(DatabaseError.java:125)
at oracle.jdbc.driver.T4CTTIoer.processError(Z)V(T4CTTIoer.java:305)
at oracle.jdbc.driver.T4CTTIoer.processError()V(T4CTTIoer.java:272)
at oracle.jdbc.driver.T4C8Odscrarr.receive([Loracle/jdbc/driver/Accessor
;)[Loracle/jdbc/driver/Accessor;(T4C8Odscrarr.java:206)
at oracle.jdbc.driver.T4CPreparedStatement.do_describe(Z)V(T4CPreparedSt
atement.java:444)
at oracle.jdbc.driver.OracleStatement.describe()V(OracleStatement.java:3
220)
at oracle.jdbc.driver.OracleResultSetMetaData.<init>(Loracle/jdbc/driver
/PhysicalConnection;Loracle/jdbc/driver/OracleStatement;)V(OracleResultSetMetaDa
ta.java:63)
at oracle.jdbc.driver.OracleResultSetImpl.getMetaData()Ljava/sql/ResultS
etMetaData;(OracleResultSetImpl.java:133)
at weblogic.jdbc.wrapper.ResultSet.getMetaData()Ljava/sql/ResultSetMetaD
ata;(ResultSet.java:185)
at com.sun.rowset.CachedRowSetImpl.populate(Ljava/sql/ResultSet;)V(Unkno
wn Source)
at com.db.DBHandler1.executeQuery(Ljava/lang/String;)Ljavax/sql/rowset/C
achedRowSet;(DBHandler1.java:436)
at com.arionsystems.bi.UnitPlusSmartUlip.execute(Lorg/apache/struts/acti
on/ActionMapping;Lorg/apache/struts/action/ActionForm;Ljavax/servlet/http/HttpSe
rvletRequest;Ljavax/servlet/http/HttpServletResponse;)Lorg/apache/struts/action/
ActionForward;(UnitPlusSmartUlip.java:256)
at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(Lorg/a
pache/struts/chain/contexts/ActionContext;Lorg/apache/struts/action/Action;Lorg/
apache/struts/config/ActionConfig;Lorg/apache/struts/action/ActionForm;)Lorg/apa
che/struts/config/ForwardConfig;(ExecuteAction.java:58)
at org.apache.struts.chain.commands.AbstractExecuteAction.execute(Lorg/a
pache/struts/chain/contexts/ActionContext;)Z(AbstractExecuteAction.java:67)
at org.apache.struts.chain.commands.ActionCommandBase.execute(Lorg/apach
e/commons/chain/Context;)Z(ActionCommandBase.java:51)
at org.apache.commons.chain.impl.ChainBase.execute(Lorg/apache/commons/c
hain/Context;)Z(ChainBase.java:190)
at org.apache.commons.chain.generic.LookupCommand.execute(Lorg/apache/co
mmons/chain/Context;)Z(LookupCommand.java:304)
at org.apache.commons.chain.impl.ChainBase.execute(Lorg/apache/commons/c
hain/Context;)Z(ChainBase.java:190)
at org.apache.struts.chain.ComposableRequestProcessor.process(Ljavax/ser
vlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V(Composab
leRequestProcessor.java:283)
at org.apache.struts.action.ActionServlet.process(Ljavax/servlet/http/Ht
tpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V(ActionServlet.java:1
913)
at org.apache.struts.action.ActionServlet.doGet(Ljavax/servlet/http/Http
ServletRequest;Ljavax/servlet/http/HttpServletResponse;)V(ActionServlet.java:449
at javax.servlet.http.HttpServlet.service(Ljavax/servlet/http/HttpServle
tRequest;Ljavax/servlet/http/HttpServletResponse;)V(Optimized Method)
at javax.servlet.http.HttpServlet.service(Ljavax/servlet/ServletRequest;
Ljavax/servlet/ServletResponse;)V(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run
()Ljava/lang/Object;(Optimized Method)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(Ljavax/servle
t/ServletRequest;Ljavax/servlet/ServletResponse;Lweblogic/servlet/internal/Filte
rChainImpl;)V(Optimized Method)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(Ljavax/servle
t/ServletRequest;Ljavax/servlet/ServletResponse;)V(Optimized Method)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio
n.run()Ljava/lang/Object;(Optimized Method)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Lweblogic/se
curity/subject/AbstractSubject;Ljava/security/PrivilegedAction;)Ljava/lang/Objec
t;(Optimized Method)
at weblogic.security.service.SecurityManager.runAs(Lweblogic/security/ac
l/internal/AuthenticatedSubject;Lweblogic/security/acl/internal/AuthenticatedSub
ject;Ljava/security/PrivilegedAction;)Ljava/lang/Object;(Optimized Method)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(Lweblogi
c/servlet/internal/ServletRequestImpl;Lweblogic/servlet/internal/ServletResponse
Impl;)V(Optimized Method)
at weblogic.servlet.internal.ServletRequestImpl.execute(Lweblogic/kernel
/ExecuteThread;)V(Optimized Method)
at weblogic.kernel.ExecuteThread.execute(Lweblogic/kernel/ExecuteRequest
;)V(Optimized Method)
Error Occured While creating the temp tablejava.sql.SQLException:
Help will be highly appreciated, thanks
Edited by: newbie123 on Mar 7, 2009 11:31 PMFrom the stack trace you have provided, you are using executeQuery(String query) method to create the table.
As per JDBC Specification, executeQuery(String query) method is designed for SELECT statement and it will return a single resultset.
The method executeUpdate(String query) is designed to execute INSERT,UPDATE,DELETE statements and also CREATE,DROP,ALTER(DDL Commands) statements.The return value of the executeUpdate(String query) is an integer that indicates the number of rows that were affected.For statements like CREATE/ALTER/DROP which doesn't have any affected rows , will return zero.
In this case, try to create the table , using executeUpdate(String query) method. -
Execute sql task not firing trigger.
Hi Everyone,
I am using insert and update quires in Execute SQL task i have a trigger at that table which will capture any changes.
When some changes are been made in management studio or front end portal the trigger is capturing but when changes are been made by the package through execute sql task it not capturing it.
Help would be greatly appericate it.
Thanking You,
Zoheb Syed.Hi,
Really appericate your reply.
Can i ask one more question hor to use FIRE_TRIGGERS command for this query in execute sql task.
I have a trigger made in the table by name "trg_iud_Provider".
update dbo.Provider
set IDX_DN3_ID=D.ID_3,
FirstName=D.Lawson_Provider_First_Name,
LastName=D.Lawson_Provider_Last_Name,
FullName=D.PROVIDER_NAME,
Specialty=D.PSA_SPECIALTY,
Gender=D.Lawson_Gender,
LawsonEmailAddress=D.Lawson_E_Mail,
NPI_Number=D.NPI_NUMBER,
StateLicenseNumber=D.STATE_LICENSE_NUMBER,
provider_number=d.provider_number,
DepartName=d.DepartName,
App_User='System',
SysEffectiveDate=GETDATE()
from dbo.Provider A JOIN (select rid.ID_3,
rid.EMPLOYEE_NUMBER,
rLD.Lawson_Provider_First_Name,
RLD.Lawson_Provider_Last_Name,
RID.PROVIDER_NAME,
RID.PSA_SPECIALTY,
RLD.Lawson_Gender,
RLD.Lawson_E_Mail,
RID.NPI_NUMBER,
RID.STATE_LICENSE_NUMBER,
rid.provider_number,
rld.DepartName
from dbo.raw_IDX_Feed RID FULL OUTER JOIN dbo.raw_LawsonFeed RLD
ON RID.EMPLOYEE_NUMBER=RLD.Lawson_Employee_Number) D ON A.IDX_DN3_ID=D.ID_3
join ProviderContract pc on pc.ProviderID=a.ProviderID
WHERE (isnull(A.IDX_DN3_ID,9999)<>isnull(cast(D.ID_3 as int),9999)
OR isnull(A.FirstName,'xxxx')<>isnull(D.Lawson_Provider_First_Name,'xxxx')
OR isnull(A.LastName,'xxxx')<>isnull(D.Lawson_Provider_Last_Name,'xxxx')
OR isnull(A.FullName,'xxxx')<>isnull(D.PROVIDER_NAME,'xxxx')
OR isnull(A.Specialty,'xxxx')<>isnull(D.PSA_SPECIALTY,'xxxx')
OR isnull(A.Gender,'x')<>isnull(D.Lawson_Gender,'x')
OR isnull(A.LawsonEmailAddress,'xxxx')<>isnull(D.Lawson_E_Mail,'xxxx')
OR isnull(A.NPI_Number,'99999')<>isnull(D.NPI_NUMBER,'99999')
OR isnull(A.StateLicenseNumber,'xxxx')<>isnull(D.STATE_LICENSE_NUMBER,'xxxx')
or isnull(a.provider_number,'99999')<>isnull(d.provider_number,'99999'))
and pc.LawsonTermdate is null
and pc.FinanceTermdate is null -
SSIS - Using Variables in Execute SQL Task Error
The following query in my Execute SQL Task throws the following error when run - [Execute SQL Task] Error: Executing the query "SELECT @columnz = COALESCE(@columnz + ',[' + times..." failed with the following error:
"Must declare the scalar variable "@columnz".". Possible failure reasons: Problems with the query,
"ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
Query:
drop table tmpNCPCNCDownstreamMaxUtilization3wks
select node, max(utilization) as max_Utilization, DATE
into tmpNCPCNCDownstreamMaxUtilization3wks
from stage_ncpcncdownstream_temporal
WHERE Date BETWEEN DATEADD(day, -20, GETDATE()) AND GETDATE()
group by node, date
order by node
go
alter table tmpNCPCNCDownstreamMaxUtilization3wks add Timestamp varchar(50)
go
update tmpNCPCNCDownstreamMaxUtilization3wks
set Timestamp = 'WeekOf_' + cast(left(Date, 11) as varchar)
go
--drop table tmpNCPCNC_DownstreamNodeUtilizationMaxPivot
--go
declare @columnz varchar (8000)
go
SELECT @columnz = COALESCE(@columnz + ',[' + timestamp + ']','[' + timestamp+ ']')
FROM tmpNCPCNCDownstreamMaxUtilization3wks group by timestamp order by timestamp
go
--pivot contents in @columns
declare @query varchar(8000)
SET @query ='select * into tmpNCPCNC_DownstreamNodeUtilizationMaxPivot from
(select node, timestamp, Max_Utilization from tmpNCPCNCDownstreamMaxUtilization3wks)a
pivot
sum(max_Utilization) for timestamp in('+ @columnz +')
)as p'
execute (@query)
--empty contents from NCPCNCDownstreamMaxUtilization3wks
update tmpNCPCNCDownstreamMaxUtilization3wks
set timestamp =''
truncate table tmpNCPCNC_MaxDownstreamNodeUtilzationChart3Week
--load to table to be joined to Node feature class
insert into tmpNCPCNC_MaxDownstreamNodeUtilzationChart3Week
(Node, TwoWeeksAgo, PreviousWeek, CurrentWeek)
select * from tmpNCPCNC_DownstreamNodeUtilizationMaxPivot
--calculate average utilization for all values in each record
update tmpNCPCNC_MaxDownstreamNodeUtilzationChart3Week
set average = (coalesce(twoweeksago, 0) + coalesce(previousweek, 0) + coalesce(currentweek, 0))/3
from tmpNCPCNC_MaxDownstreamNodeUtilzationChart3Week
ScottIssue is with variable @columnz.
Scope of variables is only limited to the batch and if batch is over Variable is no more accessible.
Reproduce Steps:
DECLARE @columnz int = 0
Go --Scope of @columnz ends here
SELECT @columnz -- Ends up with error
So you have to remove GO keyword. I have commented 2 of them in below:
DROP TABLE tmpNCPCNCDownstreamMaxUtilization3wks
SELECT node
,max(utilization) AS max_Utilization
,DATE
INTO tmpNCPCNCDownstreamMaxUtilization3wks
FROM stage_ncpcncdownstream_temporal
WHERE DATE BETWEEN DATEADD(day, - 20, GETDATE())
AND GETDATE()
GROUP BY node
,DATE
ORDER BY node
GO
ALTER TABLE tmpNCPCNCDownstreamMaxUtilization3wks ADD TIMESTAMP VARCHAR(50)
GO
UPDATE tmpNCPCNCDownstreamMaxUtilization3wks
SET TIMESTAMP = 'WeekOf_' + cast(left(DATE, 11) AS VARCHAR)
GO
--drop table tmpNCPCNC_DownstreamNodeUtilizationMaxPivot
--go
DECLARE @columnz VARCHAR(8000)
--GO
SELECT @columnz = COALESCE(@columnz + ',[' + TIMESTAMP + ']', '[' + TIMESTAMP + ']')
FROM tmpNCPCNCDownstreamMaxUtilization3wks
GROUP BY TIMESTAMP
ORDER BY TIMESTAMP
--GO
--pivot contents in @columns
DECLARE @query VARCHAR(8000)
SET @query = 'select * into tmpNCPCNC_DownstreamNodeUtilizationMaxPivot from
(select node, timestamp, Max_Utilization from tmpNCPCNCDownstreamMaxUtilization3wks)a
pivot
sum(max_Utilization) for timestamp in(' + @columnz + ')
)as p'
EXECUTE (@query)
--empty contents from NCPCNCDownstreamMaxUtilization3wks
UPDATE tmpNCPCNCDownstreamMaxUtilization3wks
SET TIMESTAMP = ''
TRUNCATE TABLE tmpNCPCNC_MaxDownstreamNodeUtilzationChart3Week
--load to table to be joined to Node feature class
INSERT INTO tmpNCPCNC_MaxDownstreamNodeUtilzationChart3Week (
Node
,TwoWeeksAgo
,PreviousWeek
,CurrentWeek
SELECT *
FROM tmpNCPCNC_DownstreamNodeUtilizationMaxPivot
--calculate average utilization for all values in each record
UPDATE tmpNCPCNC_MaxDownstreamNodeUtilzationChart3Week
SET average = (coalesce(twoweeksago, 0) + coalesce(previousweek, 0) + coalesce(currentweek, 0)) / 3
FROM tmpNCPCNC_MaxDownstreamNodeUtilzationChart3Week
-Vaibhav Chaudhari -
How to execute .sql file in Stored Procedure?
Hi,
I have an urgent requirement, where i have to execute .sql file form Stored Procedure.
This .sql file will have set of update statement. I need to pass value to this update statement.
Kindly please help me.
Regards,
IrfanThis is required as part of Data Migration where i have to do 100 of table's update. Each time update table will defer, so its better to have in separate script file (.sql). Can u paste some sample/syntax to exceute .sql file from stored procedure. I am new to this PL/SQL.
How have you determined that it's "better" to have seperate scripts? I assume you mean the table name will "differ" (and not "defer" - I assume that's just because English isn't your first language? no problem - I think I understand what you're asking).
So what I think you're asking is that you have dynamic table names but each table needs to be updated in the same way?
Question: Why do you have tables with different names that all need the same process doing to them?
Assuming it's a valid requirement (and 99% of the time doing dynamic coding implies it's not).... you could use dynamic code, rather than 'scripts'...
e.g.
create procedure update_table(tbl_name varchar2) is
begin
execute immediate 'update '||tbl_name||' set lastupdate = null';
end;
As you haven't bothered to provide a database version, any example code/data or explanation of what you're actually doing, you're not going to get any detailed answer. Please do take the time to read the FAQ and post appropriate details so people can help you. -
How to set the timeout to execute sql by jdbc?
Connection con = getConnection();
Statement stmt = con.createStatement();
stmt.execute("update table1 set colum1='abc' where key = '1' ");before run this java class
I exectue the sql(update table1 set colum1='abc' where key = '1' ) in sqlplus
but not commit.thus the database will lock the item .
then I run the java class.
so the class will waite the sqlplus commit.
I want kill the run thread when the java class waite 1000 seconds.
how can I do?o
I have tried it.
but it seems the method can not work well
if I use
stmt.setQueryTimeout(30) the jdbc operate will be cancled after 4 minutes not 30seconds -
SQL UPDATE Statement Explaination (urgent please...)
Hi,
Could anyone explain for me what this statement will do:
update KPIR KR
set ( CA ) = (
select sum(sl.RRC_CONN_STP_ATT) CA
from PV_WCEL_SERVICE_LEVEL sl, UTP_MO um
where sl.GLOBAL_ID = um.CO_GID
group by sl.STARTTIME, um.OBJECT_INSTANCE
I could not understand how the mapping between the two tables will be ("um" clause is not used in the select statement and it is used only in the "where" and "group by" arguments) What does this mean?.
The actual problem is that when I execute the above SQL statement, it was take around just 3 minutes to be implemented. But after we upgrade from Oracle 8 to Oracle 9, this statement is taking around 3 hours to be implemented.
Anyone have any idea what is the problem?Below is the plan:
KPIR table:
RNC_ID (str), PST ('YYYYMMDD_HH24'), CA (Numner)
1, 20061105_13, 0
1, 20061105_14, 0
1, 20061105_15, 0
2, 20061105_13, 0
2, 20061105_14, 0
2, 20061105_15, 0
3, 20061105_13, 0
3, 20061105_14, 0
3, 20061105_15, 0
4, 20061105_13, 0
4, 20061105_14, 0
4, 20061105_15, 0
PV_WCEL_SERVICE_LEVEL table:
GLOBAL_ID (str), STARTTIME ('YYYYMMDD_HH24'), RRC_CONN_STP_ATT (Number)
A1, 20061101_00, 9
A1, 20061101_01, 4
A1, 20061101_23, 3
A1, 20061130_23, 4
A2, 20061101_00, 3
A2, 20061101_01, 4
A2, 20061101_23, 1
A2, 20061130_23, 5
UTP_MO table;
RNC_ID (str), GLOBAL_ID (str), OBJECT_INSTANCE (str)
1, A1, <A1_NAME>
1, A2, <A2_NAME>
1, A9, <A9_NAME>
2, B1, <B1_NAME>
2, B2, <B2_NAME>
2, B9, <B9_NAME>
3, C1, <C1_NAME>
3, C2, <C2_NAME>
3, C9, <C9_NAME>
4, D1, <D1_NAME>
4, D2, <D2_NAME>
4, D9, <D9_NAME>
Now, I want to update the value of CA in table KPIR:
For instance, for RNC_ID='1' and at PST='20061105_13', the CA should equals to the sum of value RRC_CONN_STP_ATT for all GLOBAL_IDs under RNC_ID='1' and at STARTTIME '20061105_13'.
So, is this SQL UPDATE statement will do it?
update KPIR kr
set ( CA ) = (
select sum(sl.RRC_CONN_STP_ATT) CA
from PV_WCEL_SERVICE_LEVEL sl, UTP_MO um
where sl.GLOBAL_ID = um.GLOBAL_ID and kr.RNC_ID = um.RNC_ID and kr.PST = sl.STARTTIME
group by sl.STARTTIME, um.OBJECT_INSTANCE
And if so, why it is taking around 3 hours to be implemented? This issue is happened after upgrading from Oracle 8 to 9.
Really appreciate your help and thanks in advance. -
Execute SQL dynamically from pdf?
Hi,
We'd like to fill some fields in the form dynamically, sometimes based on user input from previous field(s). With enough user input, we'd like construct, execute SQL dynamically and interpret the result and update relavent field on the pdf form.
How do I access Oracle 9i database directly in the form? I know we can run server side scripting in presubmit event.
I've written a custom QPAC to access database and return multiple rows in Workflow Server. But there inside Form Designer 7.1, it doesn't allow me to
put in java code... Or, we have to use webservice to achieve the result?
Please advise.
Thanks!
Scott Jiang
Compuware Corp.
P.S. We have Forms and Workflow 7.2.Strange, whenever I have installed forms I got sqlplus too without asking for it. If it is not installed, wouldn't your best bet be to install it ?
-
I want to execute SQL query in the JavaBean.
Is there any problem in the following code.
There is no error message, but the database do not update. And I try to use JSP , it is ok. What is the problem in JavaBean ??
How to execute SQL in JavaBean ???
Please help ! Thank you !
test.jsp - call UserTrace.java
UserTrace.java - execute SQL
Code:
** test.jsp **
<%@ page language="java" contentType="text/html" %>
<%@ page import="user.*, java.util.*" %>
<jsp:useBean id="usertrace" class="user.UserTrace" scope="session" />
<%
if (session.isNew())
session.setAttribute("usertrace", usertrace);
session.setMaxInactiveInterval(15);
%>
** UserTrace.java **
package user;
import java.util.*;
import javax.servlet.http.*;
import java.io.*;
import java.beans.*;
import java.sql.*;
import user.*;
public class UserTrace implements javax.servlet.http.HttpSessionBindingListener {
private Connection con = null;
Statement stmt = null;
ResultSet rs = null;
String sql;
public void valueBound(HttpSessionBindingEvent event) {
public void valueUnbound(HttpSessionBindingEvent event) {
try {
Class.forName("org.gjt.mm.mysql.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost/test?user=abc&password=abcd");
stmt = con.createStatement();
sql = "insert into list(username, session_id) values ('mary', 'xxxxxxxxx')";
int count = stmt.executeUpdate(sql);
catch (ClassNotFoundException e) {
catch (SQLException e) {
}Hi,
U can use the following code:
/********** IMPORTING PACKAGES AND CLASSES *******/
// General package id
package id;
//Import the Vector class as this bean handles Vector.
import java.util.Vector;
//Import the SQL class to create the connections,statement,resultset etc.,
import java.sql.*;
//Import the SQL Types to call the setNull Method.
import java.sql.Types.*;
/* Main Class */
public class dataBean
/*********** Global Declarations ********/
// To create the connection object
Connection con;
// To create the Statement object
Statement stmt;
// To create the PreparedStatement object
PreparedStatement psmt;
// To Handle the ResultSet
ResultSet rs;
// Most of the method need to hold the querystring for which qryString variable declare globally.
String qryString=null;
/************ METHODS **************/
/* To set the connection object
con - Connection object
public void setConnection(Connection con)
try
this.con = con;
catch(Exception e)
/* insertRecord with column type argument
tblNameString - Name of the Table
dataVector - vector contains the values according to the table order
eg., element(0) has first field, element(1) has second field vice versa
colType - String array contains type of all the fields.
return true - if record inserted successfully
fase - if insertion fails
public boolean insertRecord(String tblNameString,Vector dataVector,String colType[])
boolean sucFlag=false;
try
String commaString = "";
int fieldCount = dataVector.size();
for (int i=0;i<fieldCount-1;i++)
commaString +="?,";
commaString+="?";
if (fieldCount > 0)
qryString = "insert into "+tblNameString+" values ("+commaString+")";
psmt = con.prepareStatement(qryString);
for(int i=0;i<colType.length;i++)
if (colType.equals("I"))
psmt.setInt(i+1,Integer.parseInt(dataVector.elementAt(i).toString()));
else if (colType[i].equals("F"))
psmt.setFloat(i+1,Float.parseFloat(dataVector.elementAt(i).toString()));
else if (colType[i].equals("S") || colType[i].equals("D"))
psmt.setString(i+1,dataVector.elementAt(i).toString());
else if (colType[i].equals("IN")||colType[i].equals("FN"))
psmt.setNull(i+1,java.sql.Types.NUMERIC);
else if (colType[i].equals("SN"))
psmt.setNull(i+1,java.sql.Types.VARCHAR);
else if (colType[i].equals("DN"))
psmt.setNull(i+1,java.sql.Types.DATE);
int sucCnt = psmt.executeUpdate();
if (sucCnt > 0) sucFlag=true;
catch(Exception e)
return sucFlag;
/* insertRecord without column type argument
tblNameString - Name of the Table
dataVector - vector contains the values according to the table order
eg., element(0) has first field, element(1) has second field vice versa
return true - if record inserted successfully
fase - if insertion fails
public boolean insertRecord(String tblNameString,Vector dataVector)
boolean sucFlag=false;
Vector colType = getColumnType(tblNameString);
try
String commaString = "";
int fieldCount = dataVector.size();
for (int i=0;i<fieldCount-1;i++)
commaString +="?,";
commaString+="?";
if (fieldCount > 0)
qryString = "insert into "+tblNameString+" values ("+commaString+")";
psmt = con.prepareStatement(qryString);
for(int i=0;i<colType.size();i++)
if (colType.elementAt(i).toString().equals("I"))
if (dataVector.elementAt(i)==null||dataVector.elementAt(i).toString().equals(""))
psmt.setNull(i+1,java.sql.Types.NUMERIC);
else
psmt.setLong(i+1,Long.parseLong(dataVector.elementAt(i).toString()));
else if (colType.elementAt(i).toString().equals("F"))
if (dataVector.elementAt(i)==null||dataVector.elementAt(i).toString().equals(""))
psmt.setNull(i+1,java.sql.Types.NUMERIC);
else
psmt.setDouble(i+1,Double.parseDouble(dataVector.elementAt(i).toString()));
else if (colType.elementAt(i).toString().equals("S"))
if (dataVector.elementAt(i)==null||dataVector.elementAt(i).toString().equals(""))
psmt.setNull(i+1,java.sql.Types.VARCHAR);
else
psmt.setString(i+1,dataVector.elementAt(i).toString());
else if (colType.elementAt(i).toString().equals("D"))
if (dataVector.elementAt(i)==null||dataVector.elementAt(i).toString().equals(""))
psmt.setNull(i+1,java.sql.Types.DATE);
else
psmt.setString(i+1,dataVector.elementAt(i).toString());
int sucCnt = psmt.executeUpdate();
if (sucCnt > 0) sucFlag=true;
catch(Exception e)
return sucFlag;
/* insert particular fields
tblNameString - Name of the Table
dataVector - vector which contains the values according to the table order
eg., element(0) has first field, element(1) has second field vice versa
colType - String array contains type of all the fields.
return true - if record inserted successfully
fase - if insertion fails
public boolean insertRecordPart(String tblNameString,Vector dataVector,String colType[])
boolean sucFlag=false;
String fieldString=" ";
try
String commaString = "";
int fieldCount = dataVector.size();
for (int i=0;i<(fieldCount/2)-1;i++)
commaString +="?,";
commaString+="?";
if (fieldCount > 0)
String valueString[]= new String[fieldCount];
for (int i=0,j=0;i<fieldCount;i+=2,j++)
fieldString=fieldString+dataVector.elementAt(i)+",";
valueString[j]=dataVector.elementAt(i+1).toString();
if (fieldString.substring(fieldString.length()-1,fieldString.length()).equals(","))
fieldString=fieldString.substring(0,fieldString.length()-1);
qryString = "insert into "+tblNameString+"("+fieldString+") values ("+commaString+")";
psmt = con.prepareStatement(qryString);
for (int i=1,j=0;i<fieldCount;i+=2,j++)
if (colType[j].equals("I"))
if (dataVector.elementAt(i)==null||dataVector.elementAt(i).toString().equals(""))
psmt.setNull(j+1,java.sql.Types.NUMERIC);
else
psmt.setInt(j+1,Integer.parseInt(dataVector.elementAt(i).toString()));
else if (colType[j].equals("L"))
if (dataVector.elementAt(i)==null||dataVector.elementAt(i).toString().equals(""))
psmt.setNull(j+1,java.sql.Types.NUMERIC);
else
psmt.setLong(j+1,Long.parseLong(dataVector.elementAt(i).toString()));
else if (colType[j].equals("F"))
if (dataVector.elementAt(i)==null||dataVector.elementAt(i).toString().equals(""))
psmt.setNull(j+1,java.sql.Types.NUMERIC);
else
psmt.setFloat(j+1,Float.parseFloat(dataVector.elementAt(i).toString()));
else if (colType[j].equals("DB"))
if (dataVector.elementAt(i)==null||dataVector.elementAt(i).toString().equals(""))
psmt.setNull(j+1,java.sql.Types.NUMERIC);
else
psmt.setDouble(j+1,Double.parseDouble(dataVector.elementAt(i).toString()));
else if (colType[j].equals("S"))
if (dataVector.elementAt(i)==null||dataVector.elementAt(i).toString().equals(""))
psmt.setNull(j+1,java.sql.Types.VARCHAR);
else
psmt.setString(j+1,dataVector.elementAt(i).toString());
else if (colType[j].equals("D"))
if (dataVector.elementAt(i)==null||dataVector.elementAt(i).toString().equals(""))
psmt.setNull(j+1,java.sql.Types.DATE);
else
psmt.setString(j+1,dataVector.elementAt(i).toString());
int sucCnt = psmt.executeUpdate();
if (sucCnt > 0) sucFlag=true;
catch(Exception e)
return sucFlag;
/* Get Column Type of require table fields
tblNameString - Name of the table
return vector which contains the column types of the desired table
public Vector getColumnType(String tblNameString)
int colCount = 0;
String locString="";
Vector colVector = new Vector();
try
qryString = "select DATA_TYPE from user_tab_columns where table_name=? ORDER BY COLUMN_ID";
psmt = con.prepareStatement(qryString);
psmt.setString(1,tblNameString.toUpperCase());
rs = psmt.executeQuery();
while (rs.next())
colCount = rs.getMetaData().getColumnCount();
for(int i=1;i<=colCount;i++)
locString = rs.getString(i);
colVector.addElement(locString.equals("DATE")?"D":locString.equals("NUMBER")?"F":locString.equals("VARCHAR2")?"S":locString.equals("VARCHAR")?"S":"");
rs.close();
catch(Exception e)
return colVector;
/* update record
tblNameString - Name of the Table
dataVector - vector which contains the values according to the table order
eg., element(0) has first field, element(1) has second field vice versa
colType - String array contains type of all the fields.
return true - if record successfully updated
false - if Update fails
public boolean updateRecord(String tblNameString,Vector dataVector,String colType[],String whereString)
boolean sucFlag=false;
String fieldString=" ";
try
String commaString = "";
int fieldCount = dataVector.size();
for (int i=0;i<fieldCount-1;i++)
commaString +="?,";
commaString+="?";
if (fieldCount > 0)
String valueString[]= new String[fieldCount];
for (int i=0,j=0;i<fieldCount;i+=2,j++)
fieldString=fieldString+dataVector.elementAt(i)+"=?,";
valueString[j]=dataVector.elementAt(i+1).toString();
if (fieldString.substring(fieldString.length()-1,fieldString.length()).equals(","))
fieldString=fieldString.substring(0,fieldString.length()-1);
qryString = "update "+tblNameString+" set "+fieldString+" "+whereString;
psmt = con.prepareStatement(qryString);
for(int i=0,vectorPos=1;i<colType.length;i++,vectorPos+=2)
if (colType[i].equals("I"))
if (dataVector.elementAt(vectorPos)==null||dataVector.elementAt(vectorPos).toString().equals(""))
psmt.setNull(i+1,java.sql.Types.NUMERIC);
else
psmt.setInt(i+1,Integer.parseInt(dataVector.elementAt(vectorPos).toString()));
else if (colType[i].equals("L"))
if (dataVector.elementAt(vectorPos)==null||dataVector.elementAt(vectorPos).toString().equals(""))
psmt.setNull(i+1,java.sql.Types.NUMERIC);
else
psmt.setLong(i+1,Long.parseLong(dataVector.elementAt(vectorPos).toString()));
else if (colType[i].equals("F"))
if (dataVector.elementAt(vectorPos)==null||dataVector.elementAt(vectorPos).toString().equals(""))
psmt.setNull(i+1,java.sql.Types.NUMERIC);
else
psmt.setFloat(i+1,Float.parseFloat(dataVector.elementAt(vectorPos).toString()));
else if (colType[i].equals("DB"))
if (dataVector.elementAt(vectorPos)==null||dataVector.elementAt(vectorPos).toString().equals(""))
psmt.setNull(i+1,java.sql.Types.NUMERIC);
else
psmt.setDouble(i+1,Double.parseDouble(dataVector.elementAt(vectorPos).toString()));
else if (colType[i].equals("S"))
if (dataVector.elementAt(vectorPos)==null||dataVector.elementAt(vectorPos).toString().equals(""))
psmt.setNull(i+1,java.sql.Types.VARCHAR);
else
psmt.setString(i+1,dataVector.elementAt(vectorPos).toString());
else if (colType[i].equals("D"))
if (dataVector.elementAt(vectorPos)==null||dataVector.elementAt(vectorPos).toString().equals(""))
psmt.setNull(i+1,java.sql.Types.DATE);
else
psmt.setString(i+1,dataVector.elementAt(vectorPos).toString());
int sucCnt = psmt.executeUpdate();
if (sucCnt > 0) sucFlag=true;
} // end of if
} // end of try
catch(Exception e)
return false;
return sucFlag;
public ResultSet getResultSet(String selectString)
try
stmt = con.createStatement();
rs = stmt.executeQuery(selectString);
catch(Exception e)
System.out.println(e.getMessage());
finally
return rs;
/* Get Query Result
selectString - Query
return the result vector based on the querystring
public Vector getResultVector(String selectString)
Vector resVector = new Vector();
try
stmt = con.createStatement();
rs = stmt.executeQuery(selectString);
while (rs.next())
resVector.addElement(rs.getString(1));
resVector.addElement(rs.getString(2));
catch(Exception e)
System.out.println(e.getMessage());
finally
return resVector;
/* return next consecutive number
tablenName - Name of the table for which the number to be generated
serialFiel - Name of the field for which the number to be generated
whereString - where condition to filter the records if composite key found,
it can be empty if there is no composite primary key.
startNumber - if there is no record exists in the table, set the starting number
public String getCurrentSerial(String tableName,String serialField,String whereString,String startNumber)
String queryString = "select max(to_number("+serialField+")) from "+tableName+" "+whereString;
int maxSerial=0;
try
psmt = con.prepareStatement(queryString);
rs = psmt.executeQuery();
while (rs.next())
maxSerial = rs.getInt(1);
if (maxSerial < 0)
maxSerial=Integer.parseInt(startNumber);
else
maxSerial+=1;
rs.close();
catch(Exception e)
return String.valueOf(maxSerial);
/* return next consecutive number
tablenName - Name of the table for which the number to be generated
serialFiel - Name of the field for which the number to be generated
whereString - where condition to filter the records if composite key found,
it can be empty if there is no composite primary key.
Note : if there is no record exists in the table, it starts with 1
public String getCurrentSerial(String tableName,String serialField,String whereString)
String queryString = "select max(to_number("+serialField+")) from "+tableName+" "+whereString;
int maxSerial=0;
try
stmt = con.createStatement();
rs = stmt.executeQuery(queryString);
while (rs.next())
maxSerial = rs.getInt(1);
if (maxSerial < 0)
maxSerial=1;
else
maxSerial+=1;
rs.close();
catch(Exception e)
System.out.println("Error from max serialX:"+e.getMessage());
return String.valueOf(maxSerial);
/* return the currnent user name */
public String getCurrentUser()
Statement stmt=null;
ResultSet rs=null;
String queryString = "select user from dual";
String userName = "";
try
stmt = con.createStatement();
rs = stmt.executeQuery(queryString);
while (rs.next())
userName = rs.getString(1);
rs.close();
catch(Exception e)
return userName;
/* return current user along with server's current date
example : userName#today
public String getCurrentUserDate()
Statement stmt=null;
ResultSet rs=null;
String queryString = "select user,to_char(sysdate,'dd-mon-yyyy') from dual";
String userName = "";
String todayDate= "";
try
stmt = con.createStatement();
rs = stmt.executeQuery(queryString);
while (rs.next())
userName = rs.getString(1);
todayDate = rs.getString(2);
rs.close();
catch(Exception e)
return userName+"#"+todayDate;
/* return server's current date */
public String getCurrentDate()
Statement stmt=null;
ResultSet rs=null;
String queryString = "select to_char(sysdate,'dd-mon-yyyy') from dual";
String todayDate= "";
try
stmt = con.createStatement();
rs = stmt.executeQuery(queryString);
while (rs.next())
todayDate = rs.getString(1);
rs.close();
catch(Exception e)
return todayDate;
/* return true if atleast one record found in the table
tblName : Name of the table
whereString : Where condition to filter the records
public boolean isRecordExists(String tblName,String whereString)
String queryString = "select count(1) from "+tblName+" "+whereString;
boolean recFound = false;
try
stmt = con.createStatement();
rs = stmt.executeQuery(queryString);
while (rs.next())
if (rs.getInt(1)==0)
recFound = false;
else
recFound = true;
rs.close();
catch(Exception e)
return recFound;
// round off decimal Places
public String fixDecimal(String sourceString,int digits)
String tmpText="",decimalPart="",returnText="";
try
sourceString = String.valueOf(Double.parseDouble(sourceString));
tmpText = sourceString.substring(sourceString.indexOf(".")+1);
if (tmpText.length() > digits)
decimalPart = tmpText.substring(0,digits);
if (Integer.parseInt(tmpText.substring(digits,digits+1))>=5)
decimalPart = String.valueOf(Integer.parseInt(decimalPart)+1);
tmpText = decimalPart;
if (decimalPart.length() > 3) // to check wheter 1000 reached, if yes add 1 to actual text
returnText = String.valueOf(Integer.parseInt(sourceString.substring(0,sourceString.indexOf(".")))+1);
else
returnText = sourceString.substring(0,sourceString.indexOf("."))+"."+tmpText;
else // if user entered decimal is with in 3 digits
if (tmpText.equals("0"))
returnText = sourceString.substring(0,sourceString.indexOf("."));
else
returnText = sourceString.substring(0,sourceString.indexOf("."))+"."+tmpText;
catch(Exception e)
System.out.println(e.getMessage());
return sourceString;
System.out.println(returnText);
return returnText;
} // end of main class
Access this Bean in JSP as follows:
<%@ page language="java" %>
<%@ page import="java.util.*"%>
<%@ include file="../connectionSetup.jsp"%>
<jsp:useBean id="dataBeanObj" class="id.dataBean"/>
<html>
<head>
<title>ADDRESS MASTER FORM</title>
<style type="text/css">
.tData
font-family : sans-serif;
font-size : 9px;
font-weight : bolder;
color : navy;
.buttonStyle
font-family : sans-serif;
font-size :10px;
</style>
</head>
<%
dataBeanObj.setConnection(con);
String curCode="";
String consFld = request.getParameter("consfld")==null?"":request.getParameter("consfld");
String cat = request.getParameter("cat")==null?"a":request.getParameter("cat").equals("a")?"a":"u";
boolean updateFlag=false,isWrongCountry=false;
String code="";
String name="";
String add1="";
String add2="";
String add3="";
String state="";
String country="";
String zip="";
String am_pcouncode="";
String am_pareacode="";
String am_psubcode="";
String am_fcouncode="";
String am_fareacode="";
String am_fsubcode="";
String am_phone="";
String am_fax="";
String email="";
String notes="";
String telex="";
String mobile="";
String popup="";
code = request.getParameter("code")==null?"":request.getParameter("code");
name = request.getParameter("name")==null?"":request.getParameter("name");
popup = request.getParameter("popup")==null?"":request.getParameter("popup");
String submitMode = request.getParameter("submit_mode")==null?"":request.getParameter("submit_mode");
String editMode = request.getParameter("edit_hidden")==null?"null":request.getParameter("edit_hidden");
if (name != null && !submitMode.equals("yes")) // ready to retrieve records
if (!code.equals(""))
rs = dataBeanObj.getResultSet("select am_code code,am_name name,am_address_1 add1,am_address_2 add2,am_address_3 add3,am_country country,am_state state,am_zip zip,am_phone phone,am_fax fax,am_e_mail email,am_notes notes,am_telex telex,am_mobile mobile from id_vms_address_master where am_code='"+code+"'");
else
rs = dataBeanObj.getResultSet("select am_code code,am_name name,am_address_1 add1,am_address_2 add2,am_address_3 add3,am_country country,am_state state,am_zip zip,am_phone phone,am_fax fax,am_e_mail email,am_notes notes,am_telex telex,am_mobile mobile from id_vms_address_master where upper(am_name)='"+name.toUpperCase()+"'");
if (rs.next()) // if record found
code = rs.getString("code"); // retrieve code
name = rs.getString("name"); // retrieve name
add1 = rs.getString("add1"); // retrieve address 1
add2 = rs.getString("add2"); // retrieve address 2
add3 = rs.getString("add3"); // retrieve address 3
country = rs.getString("country"); // retrieve country
state = rs.getString("state"); // retrieve state
zip = rs.getString("zip"); // retrieve zip
am_phone = rs.getString("phone"); // retrieve phone
am_fax = rs.getString("fax"); // retrieve fax
email = rs.getString("email"); // retrieve email
notes = rs.getString("notes"); // retrieve notes
telex = rs.getString("telex"); // retrieve telex number
mobile = rs.getString("mobile"); // retrieve mobile number
else if (submitMode.equals("yes")) // ready to submit
code = request.getParameter("code"); // get the input code
name = request.getParameter("name"); // get the input name
add1 = request.getParameter("address1"); // get the input address 1
add2 = request.getParameter("address2"); // get the input address 2
add3 = request.getParameter("address3"); // get the input address 3
country = request.getParameter("country"); // get the input country
state = request.getParameter("state"); // get the input state
zip = request.getParameter("zip"); // get the input zip
am_pcouncode = request.getParameter("pcouncode"); // get the input phone country code
am_pareacode = request.getParameter("pareacode"); // get the input phone area code
am_psubcode = request.getParameter("psubscode"); // get the input phone subscriber code
am_fcouncode = request.getParameter("fcouncode"); // get the input fax country code
am_fareacode = request.getParameter("fareacode"); // get the input fax area code
am_fsubcode = request.getParameter("fsubscode"); // get the input fax subscriber code
am_phone = am_pcouncode+"-"+am_pareacode+"-"+am_psubcode;
am_fax = am_fcouncode+"-"+am_fareacode+"-"+am_fsubcode;
telex = request.getParameter("telex"); // get the input telex
mobile = request.getParameter("mobile"); // get the input mobile
email = request.getParameter("email"); // get the input email
notes = request.getParameter("notes"); // get the input notes
String colType[] = {"S","S","S","S","S","S","S","S","S","S","S","S","S","S"};
Vector vec = new Vector();
if (cat.equals("u"))
vec.addElement("am_code"); vec.addElement(code); // add code to vector element
else
curCode = dataBeanObj.getCurrentSerial("id_vms_address_master","am_code","");
vec.addElement("am_code"); vec.addElement(curCode); // Next Serial Generation
vec.addElement("am_name"); vec.addElement(name); // add name to vector element
vec.addElement("am_address_1"); vec.addElement(add1); // add address 1 to vector element
vec.addElement("am_address_2"); vec.addElement(add2); // add address 2 to vector element
vec.addElement("am_address_3"); vec.addElement(add3); // add address 3 to vector element
vec.addElement("am_country"); vec.addElement(country); // add country to vector element
vec.addElement("am_state"); vec.addElement(state); // add state to vector element
vec.addElement("am_zip"); vec.addElement(zip); // add zip to vector element
vec.addElement("am_phone"); vec.addElement(am_phone); // add phone to vector element
vec.addElement("am_fax"); vec.addElement(am_fax); // add fax to vector element
vec.addElement("am_e_mail"); vec.addElement(email); // add email to vector element
vec.addElement("am_notes"); vec.addElement(notes); // add notes to vector element
vec.addElement("am_telex"); vec.addElement(telex); // add telex to vector element
vec.addElement("am_mobile"); vec.addElement(mobile); // add mobile to vector element
if (dataBeanObj.isRecordExists("id_country_master"," where country_code='"+country+"'"))
if (cat.equals("u"))
// update the records
updateFlag = dataBeanObj.updateRecord("id_vms_address_master",vec,colType,"where am_code='"+code+"'");
else
// insert record
updateFlag = dataBeanObj.insertRecordPart("id_vms_address_master",vec,colType);
else
isWrongCountry=true;
%>
The connectionSetup.jsp is as follows:
<%@ page import="java.sql.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="javax.naming.*" %>
<%@ page import="allaire.taglib.*" %>
<%
Connection con=null;
PreparedStatement ps = null;
Statement stmt=null;
ResultSet rs=null;
try
String jrunDSN = null, lookupDSN = null;
jrunDSN = request.getParameter("dsnvalue") == null ? "vms_test" : request.getParameter("dsnvalue");
lookupDSN = "java:comp/env/jdbc/" + jrunDSN;
InitialContext ctx = new InitialContext();
DataSource dsn = (DataSource)ctx.lookup(lookupDSN);
try
if (application.getAttribute("connectionapplication") == null)
con = dsn.getConnection();
application.setAttribute("connectionapplication",con);
else
con = (Connection) application.getAttribute("connectionapplication");
stmt = con.createStatement();
catch(Exception e)
con = dsn.getConnection();
application.setAttribute("connectionapplication",con);
catch(Exception e)
out.println("<font face='arial' size='2'><center>Problem with database connection. Please contact your administrator</center></font>");
%>
In Connection setup.jsp u can change as u need.
This is thru JNDI. This works fine for us in our projects.
Bye. -
Data Manager : SQL Update Error
HI Gurus,
In Data Manager,
we are trying to execute assignment on 900 records at once, assignment working fine when we split it in to 300 inbatch, but it gives assignment execution failed : SQL Update error, while we execute on 900 records in a streach. we are wondering what causes this error when it is executed more than 400 records. please through some lights on this.
Note: Assignment got one IF conditon , IF (expression,value), here expression got <conditon1> OR <condition2> OR <condition3>...... OR <Consition35>
Thanks in advaceHi,
I feel you are getting this error because the assignment which you are trying to execute is little complex, and database does not have sufficient resources at that point to execute the SQL statement. I feel, this will be happening on irregular basis.
Please check below document for more details about cause and actions (page no 210)
[IBM DB2 Universal Database Message reference|ftp://ftp.software.ibm.com/ps/products/db2/info/vr5/db2m0e50.pdf]
Best Regards,
Shiv
Maybe you are looking for
-
How to display the comma separeated values in a row in the form of coulmns?
Hi, I have a table as shown below. Table name: Projs Project_Id Associates_List proj1 2,3,4,5 proj2 2,5,1 We are looking at moving this data into a normalized format as shown below. Project_Id Associates_List proj1 2 proj1 3 proj1 4 proj1 5 proj2 2 p
-
One data source and assign multiple data target in BI?
Hi all, Is it possible is to assign one data source to multiple data targets in BI? Not like in BW 3.X ; one data source can assign only one Info source. I am bit confused about it, let me know about this ? Regards. hari
-
Recent March Sercurity Upate for mac OS 10.4.5 on G-4 iBook
Gentlemen: My wife has a G-4 iBook 100 MHz with additional Ram. She has been operating Mac OS 10.4.5. She had no previous problems ever before. Now after the recent Mac Security Update last week, she did the software update install. Now her desk top
-
Installing Lightroom 5 Upgrade after completing trial
I had a trial copy of Lightroom 5 Upgrade that expired while I was traveling. I purchased the software and downloaded it. I then added the serial number to the trial copy. Should I actually delete the trial version and install the one I downloaded, o
-
I have recently installed Outlook 2011 and it seem to work OK in place of Entourage which I previously used. The question I have is that when I turn on my Mac in the morning and click send and receive I get multiple copies of each message. That did n