How to specify SQL escape character
The percent (%) and underscore (_) character have special meaning in SQL,
and I want to escape these so users cannot type them in and effect the
queries. The database is DB2, which does not have a default escape
character, but one can be specified in an "escape" clause, like this:
select * from customer where name like 'ERIC\%' escape '\'
This query will look for a row where the name is literally equal to
'ERIC%'. This brings me to my question:
How do I specify to Kodo that it adds the "escape" clause to the end of
the SQL?
Thanks,
Eric
How do I specify to Kodo that it adds the "escape" clause to the end of
the SQL?Unfortunately there is no easy way to do this. The only way I can think of off
the top of my head is to create a subclass of the appropriate DBDictionary for
your database (see src/kodo/jdbc/sql/) and override the DBDictinoary's
toSelect(SQLBuffer, SQLBuffer...) method to add the escape clause. You can then
plug your custom dictionary into kodo:
kodo.jdbc.DBDictionary: your.custom.class.Name
Similar Messages
-
How to specify Sql Loader input file with dynamic name
The input file name likes pochange_YYYYMMDD.dat which is generated by other program each day.
I want to load this file to a table.
Any help? Thanks a lotI thought in an excellent strategy to do this:
Conditions:
- you have to have only one file in the folder with the data.
- Independently of the name of that file. A process is always going to change its name to a fix name.
- the controlfile must at another fixed path
the scripts is this one:
joel_sqlloader.bat
ren *.dat always.txt
sqlldr <user>/password data=always.txt control=<another_path>/my_ctl.ctl
- In a folder you will have these files:
* joel_sqlloader.bat
* pochange_YYYYMMDD.dat
- In another folder you will have:
* my_ctl.ctl
Did you get it ?
Joel Pérez
http://otn.oracle.com/experts -
Escape character for apostrophe ' in JDBC receiver channel
Hi all,
We have Proxy to JDBC scenario in our project. This interface is working fine with unicode data but when there is an apostrophe( ' ) coming in any of the field values ( ex: DOWTHERM 'J' MODEL19QAGB1G ) , the message is failing in receiver JDBC channel.
can anyone please tell us how to handle single quote in JDBC receiver channel.
I have read in SAP help documentation that apostrophe is a reserved character in SQL syntax and is therefore replaced by an escape character if it occurs within value strings. There is a option to JDBC receiver communication channel under "SQL SYNTAX PARAMETER" to specify the escape character for apostrophe.
Can any please tell us which value needs to be maintained in the channel to avoid this error.
Regards
JagruthiHi Prateek,
Thanks a lot for you inputs.
This issue is solved now. We have replaced single quote with two single quotes and then did the hasQuote mapping as described in the blog.
/people/prateek.srivastava3/blog/2009/04/02/unicode-handling-for-ms-sql-server
No value needs to be maintained in channel(SQL SYNTAX PARAMETER ).
But just want to understand the difference between replacing the ' with '' in mapping and using SQL SYNTAX PARAMETER option in communication channel.
Both should ideally result in same output. But it didnu2019t work when we tried with two single quotes in SQL SYNTAX PARAMETER (Escape Symbol for Apostrophe) in communication channel without doing anything in mapping.
Regards
Jagruthi -
What is the escape character for DOT in java regex?
How to specify a dot character in a java regex?
. itself represents any character
\. is an illegal escape characterThe regex engine needs to see \. but if you're putting it into a String literal in a .java file, you need to make it \\., as Rene said. This is because the compiler also uses \ as an escape character, so it will take the first \ as escaping the second one, and remove it, and the string that gets passed onto the regex will be \.
-
I am using the Labview SQL sub-set and am trying to construct an sql query using wildcards. ie LIKE 'Pass*' However, none of the MS Access Driver wildcards appear to work with the SQL sub-set. Any suggestions?
Hi,
I have some links for you. The first linke gives you info how you Specify a Wildcard Character with the SQL Toolkit and the second one is about "Using the LIKE keyword in a SQL query ". I hope it helps.
http://digital.ni.com/public.nsf/websearch/8854A9FF0CB48A71862566020067BD09?OpenDocument
http://forums.ni.com/ni/board/message?board.id=250&message.id=4926&requireLogin=False
TN -
How to use escape character in update statement.
Hi All,
I'm trying to update table using following sql update statement, but everytime it's asking me for the input due to the '&' value in below sql.
UPDATE xyz_xyz
SET NAME = 'ABC & PQR'
WHERE ID = (SELECT ID
FROM abc_abc
WHERE NAME = 'C & PQR');Please let me know how to use escape character syntax or let me know if there is any alternative solution.
Thanks,
VishwasHi,
By default, & marks a substitution variable name.
If you're not using substitution variables in that statement (or, if this is in PL/SQL, in that entire package or procedure) then the easiest thing to do is just diable substitution variables; then & will be a normal character:
SELECT DEFINE OFF
UPDATE xyz_xyz
SET NAME = 'ABC & PQR'
WHERE ID = (SELECT ID
FROM abc_abc
WHERE NAME = 'C & PQR');
SET DEFINE ONIf you can't do that, then & is always taken literally if it comes right before a single-quote, so you could say:
UPDATE xyz_xyz
SET NAME = 'ABC &' || ' PQR'
WHERE ID = (SELECT ID
FROM abc_abc
WHERE NAME = 'C &' || ' PQR');There is a SQL*Plus "SET ESCAPE" command, too, but if you use it, you have to worry about whether the escape character is to be taken literally or not.
SET ESCAPE \Yet another alternative is to make some other character, such as ~, mark the substitution variables:
SET DEFINE ~Read all about them in the SQL*Plus manual.
http://download.oracle.com/docs/cd/B28359_01/server.111/b31189/ch2.htm#sthref103 -
How to escape "&" character ?
I want to execute the following statement in sqldeveloper
select '&sdfas' from dual
and expect the outcome to be the string "&sdfas"
but sqldeveloper keep asking me for the value of "sdfas" argument, and replace it.
I use sqldeveloper to run sql script to patch many pl/sql packages in my company. The packages, unfortunately, contain some "&" characters in rather critical position. And my last few days is spent chaotically trouble-shooting this.
Any method to escape "&" character ? I tried to export DDL with sqldeveloper itself but the outcome is still not being escaped properly.Sake,
You can use the following to escape the &:
set define off
It's also possible to set another character to use for substitution variables.
See the online documentation: http://download.oracle.com/docs/cd/B19306_01/server.102/b14357/ch12040.htm#i2698854 -
Why isn't SQL+ liking my escape character?
I'm trying to right a script that utiilizes the escape character in the PROMPT statement.
I have tried to reset the escape character to * or ! and the output comes out funky.
Here's what happens:
ttThis is the original.
This output is the result of the lines:
SET ESCAPE !
PROMPT !t!tThis is the original.
What seems to be the problem? Can someone please help?SET ESCAPE sets a charater that will escape the special meaning of some characters in sqlplus.
SQL> SELECT 'Ben & Jerry' FROM dual;
Enter value for jerry:
SQL> SET ESCAPE \
SQL> SELECT 'Ben \& Jerry' FROM dual;
'BEN&JERRY'
Ben & JerryI'm not aware of any way to "format" the output of PROMPT, since sqlplus always trims the spaces.
John -
Can Linux recognize the escape character?
Hi,
It's possible that this problem doesn't belong here. But please give it a try.
I am developing an project using JSP. It includes image uploading. after image uploading, I use a javascript function popUp(url, ...) to open a new window and display this image. The very strange thing is that, sometimes the link can work, open a new window and display the image while sometimes the link can't work, or it only works for one time, then it fails. I couldn't find the reason yet. it works on IE, and not on Netscape and also not work on Linux OS while do work on Window2000. Can somebody take a look at the following link and tell me how to change it to make sure it is work on Linux OS and netscape. What's the difference between OS and windows to specify a String(that is, url of a link). The linux OS seems interperte \" to ", so it cannot recognize the full url.
The link is :
imageLink[i] = "<a href='showForm' onclick=\"popUp('" + request.getContextPath() + "/displayForm.jsp?filename=" + sdb.getImageFileName(i)+"&fileDesc=" +sdb.getImageDesc(i) + "', 'showForm', '600', '450', 'yes'); return false;\">"+sdb.getImageDesc(i)+"</a>";
Thanks in advance!
jmlingLinux will recognize the escape character. It looks like you might have other difficulties with your imageLink tag. For example, I think you need to use tags when you use Java inside your html or javascript..
onclick=\"popUp(" + <%= request.getContextPath() %> + "/displayform.jsp?... -
Escape Character in ODBC Connections?? HELP!
Hi All,
I have a problem : we have a C++ app here that is supposed to attach to an Oracle 8i or 9i database here via a standard ODBC connection.
When this app attempts to do something like this:
INSERT INTO MyTable (MyRow) Values('[testing]')
it fails - it does not like the square brackets in the command. when I copy this into SQL Plus, of course, it runs just fine.
the ODBC link also doesn't like this:
INSERT INTO MyTable (MyRow) Values('/[testing/]') either
or this:
INSERT INTO MyTable (MyRow) Values('[[testing]]') either
or this:
INSERT INTO MyTable (MyRow) Values('`testing`') either
in fact, it appears the following are all reserved characters that oracle's ODBC driver can't handle:
` ' " \ / [ ]
My questions are :
1) Can I find a definitive list of these (Oracle documentation is good on reserved WORDS, but poor on reserved CHARACTERS)
2) what can I use to set an escape character within my ODBC SQL? Is this something I can tweak on the ODBC DSN cofiguration? I know in SQL*Plus you can just say
SET ESCAPE ON
SET ESCAPE "\"
But you can't do that on every SQL Query getting sent through ODBC can you?
Please help!
IThanks, but thats not really answering the two
questions I posed, is it? Well you are asking the wrong questions.
The quoted example was just
that, an example. The actual app is calling stored
procedures and not doing simple SQL statements. Using
bound variables is not really an option because the
number and type of parameters being sent down change
continually. This is no reason to not use bind variables. If you do not use bind variables and this is an OLTP database then scaling will not be an option for your application. It can also raise potential security holes due to SQL injection.
The site you quoted is to do with
obtaining recordsets back from stored procedures. We
do not need to obtain recordsets back from stored
procedures. Yes and it also shows how to bind input variables in ODBC calls, does the presence of record sets somehow render this invisible?
>
shall I repeat myself:-
My questions are :
1) Can I find a definitive list of these (Oracle
documentation is good on reserved WORDS, but poor on
reserved CHARACTERS)
As you can run the command in SQL*Plus it should indicate that it is not a reserved character as far as Oracle is concerned. Therefore looking in the Oracle documentation will not get you anywhere. You will need to refer to the documentation for your ODBC driver and the ODBC specification.
2) what can I use to set an escape character within
my ODBC SQL? Is this something I can tweak on the
ODBC DSN cofiguration? I know in SQL*Plus you can
just say
SET ESCAPE ON
SET ESCAPE "\"
I must admit I don't know. -
How to specify tablespace for a primary key inde in create table statement
How to specify the tablespace for a primary key index in a create table statement?
Does the following statement is right?
CREATE TABLE 'GPS'||TO_CHAR(SYSDATE+1,'YYYYMMDD')
("ID" NUMBER(10,0) NOT NULL ENABLE,
"IP_ADDRESS" VARCHAR2(32 BYTE),
"EQUIPMENT_ID" VARCHAR2(32 BYTE),
"PACKET_DT" DATE,
"PACKET" VARCHAR2(255 BYTE),
"PACKET_FORMAT" VARCHAR2(32 BYTE),
"SAVED_TIME" DATE DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "UDP_LOG_PK" PRIMARY KEY ("ID") TABLESPACE "INDEX_DATA"
TABLESPACE "SBM_DATA"; Thank you
Edited by: qkc on 09-Nov-2009 13:42As orafad indicated, you'll have to use the USING INDEX clause from the documentation, i.e.
SQL> ed
Wrote file afiedt.buf
1 CREATE TABLE GPS
2 ("ID" NUMBER(10,0) NOT NULL ENABLE,
3 "IP_ADDRESS" VARCHAR2(32 BYTE),
4 "EQUIPMENT_ID" VARCHAR2(32 BYTE),
5 "PACKET_DT" DATE,
6 "PACKET" VARCHAR2(255 BYTE),
7 "PACKET_FORMAT" VARCHAR2(32 BYTE),
8 "SAVED_TIME" DATE DEFAULT CURRENT_TIMESTAMP,
9 CONSTRAINT "UDP_LOG_PK" PRIMARY KEY ("ID") USING INDEX TABLESP
ACE "USERS"
10 )
11* TABLESPACE "USERS"
SQL> /
Table created.Justin -
How to use SQL functions in the queries
hey guys i wanna know how to use SQL functions in the queries is it possible or not .
Hi,
Wat exactly that set values are?
those from sql query?
How to use count():
The COUNT() function returns the number of rows that matches a specified criteria.
SQL COUNT(column_name) Syntax
The COUNT(column_name) function returns the number of values (NULL values will not be counted) of the specified column:
SELECT COUNT(column_name) FROM table_name
SQL COUNT(*) Syntax
The COUNT(*) function returns the number of records in a table:
SELECT COUNT(*) FROM table_name
SQL COUNT(DISTINCT column_name) Syntax
The COUNT(DISTINCT column_name) function returns the number of distinct values of the specified column:
SELECT COUNT(DISTINCT column_name) FROM table_name
The IN function helps reduce the need to use multiple OR conditions.
The syntax for the IN function is:
SELECT columns
FROM tables
WHERE column1 in (value1, value2, .... value_n); -
Query of Queries (QofQ) Escaped Character Problem
Hello All,
I'm trying to run a query or queires (QofQ) and I'm doing a
LIKE comparison that looks for bracket characters ([ ]) within a
string, however ColdFusion is ignoring the brackets. How can I
escape the bracket character? So far I have only been able to
escape the percent sign based on the ColdFusion Live Docs. The
error message I get when I run the query below is:
Invalid Escape Sequence. Valid sequence pairs for this escape
character are: "\%", or "\_".
Here is the query:
<cfquery dbtype="query" name="getLogs">
SELECT *
FROM GetLogs
WHERE Description LIKE '%\[User:#UserID#\]%' ESCAPE '\'
</cfquery>
Thanks for your help!You are correct. If you leave the brackets in the LIKE
statement, it will return results as if the brackets weren't there
at all.
Perhaps I need to figure out the ASCII character value of the
bracket and include it that way i.e. #Char(?)# where the question
mark would be the numerical value of that character.
My temporary solution has been to leave off the starting
bracket:
<cfquery dbtype="query" name="getLogs">
SELECT *
FROM GetLogs
WHERE Description LIKE '%user:#UserID#]%'
</cfquery>
This has (so far) returned the results i'm looking for
although its not as 100% accurate without that beginning [ in the
LIKE statement. -
Bypass Adapter URI Endpoint with Escape Character for Web Service
Dear All,
I would like to apply by pass adapter URI Endpoint for XI webservice, the default format is
http://<host>:<port>/sap/xi/engine?type=entry&version=3.0&Sender.Service=<BusinessService>&Interface=<namespace>^<Outbound Interface name>
If I am using format using with carat () character then there has no problem to the service, but consumer doesn't support carat () character. I instead the carat (^) with URL Escape Character (%5E)
http://<host>:<port>/sap/xi/engine?type=entry&version=3.0&Sender.Service=<BusinessService>&Interface=<namespace>%5E<Outbound Interface name>
Then error occurred
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP:Body>
<SOAP:Fault>
<faultcode>SOAP:Server</faultcode>
<faultstring>System Error</faultstring>
<detail>
<s:SystemError xmlns:s="http://sap.com/xi/WebService/xi2.0">
<context/>
<code>RCVR_DETERMINATION.MESSAGE_INCOMPLETE</code>
<text>Message is incomplete. No Sender found</text>
</s:SystemError>
</detail>
</SOAP:Fault>
</SOAP:Body>
</SOAP:Envelope>
How to resolve this error...
Thank you.
Regards,
WengHi ,
as per my knowledge.....................
When you create a WSDL with the help of a wizard. In the Integration Directory, choose Tools -> Define Web Service to enter the wizard.
On Propose URL button, as this genertated URL default Point to Entegration Engine.. SO already proformance wise Good.
If You want to Point your URL to adapter engine , use below given URL this will point ur incoming soap message to SOAPadapter sender channel
http://<host>:<j2ee-port>/XISOAPAdapter/MessageServlet?channel=:<service>:<channel>.
Regards
Prabhat Sharma. -
Symptom
If you have failed to install SCOM reporting service, you may encounter below error when you reinstall it:
“The specified SQL server instance is not valid”.
(Figure 1)
Figure 1.
Reason
This issue may be caused by multiple reasons, for example the reasons in Figure 1.
However, you may find that SSRS and Report Server website are configured correctly and no SSL or proxy Server is used. In these scenario, you can open the log file under path
to find the root reason:
C:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\LogFiles
Later, you will find the error as below:
ERROR: Throwing Microsoft.ReportingServices.Library.ReportServerDisabledException: , Microsoft.ReportingServices.Library.ReportServerDisabledException:
The report server cannot decrypt the symmetric key that is used to access sensitive or encrypted data in a report server database. You must either restore a backup key or delete all encrypted content. ---> System.Runtime.InteropServices.COMException
(0x80090016): Keyset does not exist (Exception from HRESULT: 0x80090016)
at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
at RSManagedCrypto.RSCrypto.ReencryptSymmetricKey(Byte[] symKeyBlob, Byte[] pPublicKeyBlob)
at Microsoft.ReportingServices.Library.ConnectionManager.<GetEncryptionKey>b__2()
--- End of inner exception stack trace ---;
Solution
According to the error message, you can delete encrypted content by following the steps below:
Open SQL Reporting Services Configuration Manager.
Select “Encryption Keys”.
Click “Delete” to delete all encrypted content. (Figure 2)
Figure 2.
After that, we can install SCOM reporting service again, after successfully install reporting service, we should see the SCOM operation console as below:
Figure 3.
In addition, you may also encounter other errors when installing SCOM reporting service, and the troubleshooting steps may be different. However, we can also check SQL reporting
service logs to find the root reason.
Here are some articles that would be helpful for SCOM reporting service installation and troubleshooting:
How to Install the Operations Manager Reporting Server
http://technet.microsoft.com/en-us/library/hh298611.aspx
Unable to install SCOM 2012 Reporting Services
http://blogs.technet.com/b/mdegre/archive/2013/05/27/unable-to-install-scom-2012-reporting-services.aspx
Please click to vote if the post helps you. This can be beneficial to other community members reading the thread.Hello,
I'm afraid you must use a dedicated instance of SQL Server for each site(SCOM/SCCM). Some similar issues were disscussed on this forum:
SCCM and SCOM - SQL Server
http://social.technet.microsoft.com/Forums/en-US/configmanagergeneral/thread/bfa14da9-4692-4c64-a107-e085c967d259
SCOM, SCCM, SQL on same server?
http://social.technet.microsoft.com/Forums/en-US/configmgrsetup/thread/b5373aa7-5233-4b1f-9b39-b86e481e04d5
Thanks,
Yog Li
TechNet Community Support
Maybe you are looking for
-
No segment found in Metadata table
Hi, We are posting an Idoc from an external application to R/3 using C RFC libraries. There was a new custom segment Z1xxx added to an Extension message type Zxxxx on SAP. There is an error in the external application while trying to build/Map the Id
-
Only HTTPS requests are working for SOAP Sender and HTTP not working
wHi Experts, We have enabled our HTTPS port ( SSL ) in NWA -- >> Security -- >> SSL and Key stores. So understanding is HTTPS port is now enabled on top of HTTP. So PI should be able to cater requests at both ports. Now, we have developed a synchrono
-
Is there a connection to connect from an Ipod plug to a mobile phone other than an Iphone ?
Can I purchase a connection that will connect an Ipod Nano 7th generation plug on a docking system to a mobile phone to charge the phone ?
-
Output determination procedure as blank
Hi functional experts, Am a technical consultant i have a requirement to make the output determination procedure as blank during customer creation.can anybody please tell what logic to write from the functional prospective. regards Prasun
-
Short dump while DB Connect extraction(PERFORM_CONFLICT_TAB_TYPE)
HI ALL, Here i am facing a problem while loading master data for one info object by using DB Connect source system, it is going to short dump with runtime error PERFORM_CONFLICT_TAB_TYPE and the exception is CX_SY_DYN_CALL_ILLEGAL_TYPE but for other