Another single quote issue

11.2.0.3 on Solaris

Came across this thread on apostrophe
Escape the apostrophe

Wouldn't it away as it seemed 'sacred' with neat frank explanations.

I want to just Hello delimited by single quotes printed
Expected results.
'hello'
SQL> select 'hello' from dual;

'HELL
-----
hello


Attempt1.
SQL> select  ''hello'' from dual;
select  ''hello'' from dual
               *
ERROR at line 1:
ORA-00923: FROM keyword not found where expected


Attemp2.
SQL> select '''hello''' from dual;

'''HELL
-------
'hello'
Attempt2 has been successful. It was 3 quotes at the beginning and 3 quotes after the string "hello".
I numbered each Attemp2 apostrophes (successfully)
'''hello'''
|||     |||
123     456
Can anyone tell me what role has first, second, third, fourth, fifth and sixth apostrophes play in this query (attempt 2)?

Hello

ExpansiveMind wrote:
... Attempt2 has been successful. It was 3 quotes at the beginning and 3 quotes after the string "hello".
I numbered each Attemp2 apostrophes (successfully)

'''hello'''
|||     |||
123     456

Can anyone tell me what role has first, second, third, fourth, fifth and sixth apostrophes play in this query (attempt 2)?

Reading from left to right:
(1) an encounterred of single quote when you are not already in the string literal means the beginning of a string literal
(2) a single quote once you've started a string literal could mean the end of the literal string, or (b) a single quote, depending on which is the next character. In this case, the next character is
(3) if (2) and (3) together are considered a single quotation mark in the string.
(4) is the same situation as (2), and
(5) does exactly the same thing (3), so it's another example of option (b).
(6) is not followed by an another single quote, so it's an example of option (a), end-of-literal.

Forget not that (lack of Q-rating) single quotes must be in pairs. Quotation marks simple all odd will be the beginning of a literal (as in your example 1) or the second pair that indicates a single quotation mark in the literal (as 3 and 5). What pairs single quotes? Just a reflection of those odd. Each single quote pairs is to be will indicate the end of the literal (as in your example 6), or the beiginning of a pair that represents a single quote in the literal (as 2 and 4).

It can help to address the problem in this way.
If you want that the word 'Hello' surrounded by tildes, what would you do? No problem:

SELECT  '~hello~'
FROM    dual;

Now how can you change the tilde first a single quotation mark? The tilde is inside a string literal, so you know that you must use single quotes in a row 2. Then remove the first tilde and, instead, put 2 single quotes:

SELECT  '''hello~'
FROM    dual;

Now how can you change the tilde to a single quote? The same way, and what you get is

SELECT  '''hello'''
FROM    dual;

Tags: Database

Similar Questions

  • Select statement with single quotes in the insert statement

    Dear Sir

    What's the trick to cover this issue:

    Insert into TEST_TABLE (SQL_SCRIPT_ID, SQL_SCRIPT)
    values ("1", "select count (*) from the SOURCE where SOURCE.") VALID = 'Y')

    because of the single quotes, I get an error and can not insert, the script works, is there a workaround somehow?

    Thank you 1 million,

    Erik

    Published by: 845498 on June 13, 2012 04:15
    create table testsql(script_id number,sql_script varchar2(1000));
    
    insert into testsql (script_id, SQL_SCRIPT)
    values (1, 'select count (*) from SOURCE where SOURCE.VALID = ''Y''');
    
  • Insert into DB using SQLservice: can't take the text with single quotes:

    I use Execute sql JDBC service statement.

    I'll explain with simple code:

    insert into mytable (id, desc) values (1, 'this is the document of the customer');

    This works perfectly.

    But if I have apostrophes in the desc-

    insert into mytable (id, desc) values (1, 'this is the document the customer' );

    It is throwing error at a standstill operation errors.

    I know that in Oracle, to escape the single quotes that write us

    insert into mytable (id, desc) values (1, "it is of customer" s document ");

    But, we can not control here in Adobe as the desc is from field on a form when the user enters it.

    I'm guessing that it might be a known issue & can someone tell me the solution.

    Thank you

    KC

    Use a parameter query to avoid this problem.

    insert into mytable (id, desc) values (?,?);

    The two parameters (? brands) can be replaced by actual values using XPATH Expression.

    If you do this, you query runs without raising any errors.

    Nith

  • First HP: how to enter a number complex, using single quotes

    Hello

    This is probably a stupid question, but how do you enter a charager apostrophe on the first HP RPN mode?

    I read the section in the guide of the user on enteringer a complex numbers in RPN mode.    Using (3.4) works fine, but I'm curious to know how to enter using the method indicated in the doc:

    "In RPN mode, complex numbers must be in single quotes and require an explicit multiplication.
    For example, 3-2 * i'. "

    For the life of me, I can't find the character of simple-qoute.     Maj 9' does not work.

    It's late and without a doubt, it is right in front of me, but I can't.   I feel a "time da come...» »

    Thanks in advance,

    OK, found it...      (Maj)

    (I cheated and google it)

  • How to use special characters (single quote) in input values?

    I have a query that contains a clause: field: tags_set

    (the field contains string values)

    I would like to test in sqlplus.

    I found this article https://asktom.oracle.com/pls/apex/f?p=100:11:0:P11_QUESTION_ID:113012348062 explaining how to define variables in sqlplus.

    However, my variable should contain something like ("xyz", "abc")

    I tried

    SQL > tags_set varchar2 variable

    "SQL > exec: tags_set: = '(' musique');

    "START: tags_set: = '(' musique'); END;

    *

    ERROR on line 1:

    ORA-06550: line 1, column 23:

    PLS-00103: encountered the symbol "MUSIC" when expected in the following way:

    * & = - + ; <>/ is mod remains not rem

    < an exponent (*) > <>or! = or ~ = > = < = <>and like2 or

    like4 likec between | submultiset of type multiset Member

    The symbol ' * was inserted before 'MUSIC' to continue. '

    ;

    Then I did some research and found: characters in queries

    Therefore, I changed the previous for:

    SQL > exec: tags_set: = '(\'Music\')';

    START: tags_set: = '(\'Music\')'; END;

    *

    ERROR on line 1:

    ORA-06550: line 1, column 24:

    PLS-00103: encountered the symbol "MUSIC" when expected in the following way:

    * & = - + ; <>/ is mod remains not rem

    < an exponent (*) > <>or! = or ~ = > = < = <>and like2 or

    like4 likec between | submultiset of type multiset Member

    and finally

    SQL > exec: tags_set: = "{('a ')}";

    START: tags_set: = "{('a ')}"; END;

    *

    ERROR on line 1:

    ORA-06550: line 1, column 24:

    PLS-00103: encountered the symbol "A" when expecting one of the following conditions:

    * & = - + ; <>/ is mod remains not rem

    < an exponent (*) > <>or! = or ~ = > = < = <>and like2 or

    like4 likec between | submultiset of type multiset Member

    The symbol ' * was inserted before 'A' to continue. '

    What is the way to make it work? (I know that I can move to something like "xyz ~ abc' and treat inside the query")

    Thanks in advance.

    A number of things.  When you define a string variable, you must give him a length or default is 1.  You can escape a quote character by doubling it (i.e. two single quotes) or you can use the q rating:

    SQL > tags_set variable varchar2 (100);

    "SQL > exec: tags_set: = '('' musique '');

    PL/SQL procedure successfully completed.

    SQL > print tags_set

    TAGS_SET

    --------------------

    ("Music")

    SQL > exec: tags_set: = q '{("music", "Drama")}';

    PL/SQL procedure successfully completed.

    SQL > print tags_set

    TAGS_SET

    --------------------

    ("Music", "Drama")

    John

  • Import of single quote + script

    Hello world

    I use FDMEE 11.2.3Hi got in my data several fields and look..., XXX, XXX',..., 2000

    I'm not even match the value XXX'XXX but it seems that I can't load data from tent to convert a nonnumeric value in number and I do not understand why.

    I tried to solve this problem with a script BefImport trying to replace the "character without success. Also, I don't know what it is bad in my syntax.

    If fdmContext ["LOCNAME'] == 'YYY ':

    fdmAPI.logInfo (fdmContext ["LOCNAME"])

    Try:

    filename = fdmContext ["FILENAME"]

    Inbox = fdmContext ["INBOXDIR"]

    fdmAPI.logInfo (filename)

    fdmAPI.logInfo (inbox)

    file = inbox + '\\YYY\\' + filename

    file_out = inbox + "\\YYY\\" + file name ".out".

    fdmAPI.logInfo (file)

    end = open (file, "r")

    who cares = open (file_out, "w")

    for the end line:

    lineIni = line.replace ("', '_')

    care. Write (lineIni)

    end. Close()

    care. Close()

    except IOError, err:

    fdmAPI.logError ("My error" + str (err))

    OS. Remove (file)

    OS. Rename (file_out, leader)

    Does anyone has any ideas on this?, why it takes "as a comma?

    Thanks and regards.

    Hello

    Yes I copied the script of the solution and turn. Now, I finished digging into it and, apparently, a single quote ' is a wildcard is solf put that------in the script before the quotation mark as follows (maybe it will be useful to someone else):

    If fdmContext ["LOCNAME'] == 'DSLWGLMulti ':
    fdmAPI.logInfo (fdmContext ["LOCNAME"])
    Try:
    filename = fdmContext ["FILENAME"]
    Inbox = fdmContext ["INBOXDIR"]
    #filedir = fdmContext ['FILEDIR']
    fdmAPI.logInfo (filename)
    fdmAPI.logInfo (inbox)
    file = inbox + '\\DSLWGLMulti\\' + filename
    file_out = inbox + "\\DSLWGLMulti\\" + file name ".out".
    #file = inbox '-' + filedir + "\\"+filename. "
    #file_out = inbox + "\" + filedir + "\\"+filename + «.out "»
    fdmAPI.logInfo (file)
    end = open (file, "r")
    who cares = open (file_out, "w")
    for the end line:
    line = line.replace('\'','')
    care. Write (Line)
    end. Close()
    care. Close()
    except IOError, err:
    fdmAPI.logError ("My error" + str (err))

    OS. Remove (file)
    OS. Rename (file_out, leader)

  • Dynamic processing of single quotes in SQL

    Version: 11.2.0.4

    I'm kinda a beginner when it comes to dynamic SQL.

    I had a condition in which I had to run the following command on all the data files in the DB.

    -Expected results

    change datafile resizing '< Filename >' database 10g;

    The name of file, which is generated dynamically must be in single quotes.

    -Sample data

    create table x (file_name varchar2 (90));

    Insert into x values ('/ u04/oradata/ORCL/system.dbf');

    Insert into x values ('/ u04/oradata/ORCL/sysaux.dbf');

    Insert into x values ('/ u04/oradata/ORCL/users01.dbf');

    I managed to do it using a similair below code. But I had to do several things of trial and error to get this working in reason to get the correct number of single quotes for the string generated for v_sql below. So, I want to rethink the basics.

    declare

    v_sql varchar2 (350);

    Start

    for rec in (select x file_name)

    loop

    v_sql: = "alter database datafile"'| " Rec.file_name | " 'resize 10g;

    -RUN IMMEDIATELY v_sql;

    dbms_output.put_line (v_sql);

    end loop;

    end;

    /

    ALTER database datafile ' / u04/oradata/ORCL/system.dbf' size 10g

    ALTER database datafile ' / u04/oradata/ORCL/sysaux.dbf' size 10g

    ALTER database datafile ' / u04/oradata/ORCL/users01.dbf' size 10g

    PL/SQL procedure successfully completed.

    I would like to know the role played by each single quote. I used 8 apostrophes in the V_SQL variable above, and I numbered each single quotation mark as shown below.

    1                        234                 567           8

    |                        |||                 |||           |

    v_sql: = "alter database datafile"'| " Rec.file_name | " 'resize 10g;

    Example of output from the generation of dynamic channels:

    alter database datafile '/u04/oradata/ORCL/users01.dbf' 10g resizing

    1 and 4-> start and end of the string alter database datafile '

    3 > literal single quote of string in red in the example output

    2 > escape 3 (single literal quote of string)

    5 and 8-> start and end of the string ' resize 10 g

    6-> escape 7 (single literal quote of string)

    7 > literal single quote of string in green in the example output

    My asssumptions are correct?

    I would like to write like this.

    declare
       v_sql    varchar2(350);
    begin
      for rec in (select file_name from x)
          loop
            v_sql := q'[alter database datafile '#FILENAME#' resize 10g]';
            v_sql := replace(v_sql, '#FILENAME#', rec.file_name);
            --- EXECUTE IMMEDIATE v_sql;
            dbms_output.put_line ( v_sql);
        end loop;
    end;
    /
    
  • I often struggle to create single quotes in Indesign :-(

    I often struggle to create single quotes in Indesign, I think that it is something simple that a pressing need to set, see attached, someone can advise?

    It is not a police problem.

    Screen Shot 2016-01-09 at 6.01.43 PM.png

    Form of apostrophe in InDesign is related to the language applied to your text - and quite rightly, because each language has its own preferences for quotation mark and apostrophe characters.

    It really seems that you type English, and yet you said InDesign that this text is in French.

  • How to retrieve the values of character without using single quotes

    Hi all

    How to retrieve the values of character without the use of single quotes. Its Possible in Oracle SQL

    Please answer me...

    For example

    Is actual query-> Select * from employees where name like in("SCOTT", "JAMES", "ALBERT",...);

    I want to--> Select * from employees where name like(SCOTT, JAMES, ALBERT...); -without the use of single quotes.

    Why I need this application, I need to retrieve the records more than 200 employees in a select statement by using name in where clause.

    shagarmahabubjan wrote:

    Hi all

    How to retrieve the values of character without the use of single quotes. Its Possible in Oracle SQL

    Please answer me...

    For example

    Actual query is---> Select * from employees where name like in("SCOTT", "JAMES", "ALBERT",...);

    I want to---> Select * from employees where name like(SCOTT, JAMES, ALBERT...); -without the use of single quotes.

    Why I need this application, I need to retrieve the records more than 200 employees in a select statement by using name in where clause.

    In short... you can't.  The channels are channels, and SQL and PL languages dictate that the string literals are provided within single quotes.

    I don't see how trying to retrieve more than 200 records of employees in the select statement means that you must get rid of the quotes.

    Be clear in what you ask: Re: 2. How can I ask a question on the forums?

    and take note of the FAQ link davidp provided the solution "variable IN the list.

  • Generation of single quotes in strings

    Version: 11.2.0.3

    We have a custom stored procedure called GENERATE_STATS and I want to run this procedure for each schema in the comic book as

    exec ('SCOTT', 'BASIC') generate_stats;

    generate_stats exec ('HR', 'BASIC');

    .

    .

    .

    .

    exec ('XXXXXX', 'BASIC') generate_stats;

    -All except XXXXXX is fixed.

    -XXXX is derived rom DBA_USERS

    I want to generate these commands dynamically as

    SQL > SELECT ' exec generate_stats ("' | username |) (', "'BASIC"); from dba_users;

    ERROR:

    ORA-01756: city not properly finished chain

    -I noticed that, to generate a single quotation mark, you need 4 quotes

    SQL > select "' double.

    '

    -

    '

    SQL > select "',"' double.

    '''

    ---

    ','

    -I managed to create so far without much trouble.

    SQL > SELECT ' exec generate_stats ("' | username |) "',"' from dba_users where rownum < 5;

    ' EXECGENERATE_STATS('''||) USER NAME | " ','' '

    --------------------------------------------------------

    generate_stats exec ("SYS"

    exec generate_stats ("SYSTEM",")

    exec generate_stats ('OUTLN', ')

    generate_stats exec ('DIP', ')

    It took a lot of trial and error to add the remaining portiton BASIC'); to added. The following finally worked.

    SQL > SELECT ' exec generate_stats ("' | username |) (', "BASIC");' from dba_users where rownum < 5;

    ' EXECGENERATE_STATS('''||) USER NAME | " (', "BASIC"); "

    ----------------------------------------------------------------

    generate_stats exec ('SYS', 'BASIC');

    exec ('SYSTEM', 'BASIC') generate_stats;

    generate_stats exec ('OUTLN', 'BASIC');

    exec ('DIVE', 'BASIC') generate_stats;

    To generate the string 'BASIC' . I didn't have to use single quotes 4 as I once did.

    It generated when I placed between her with just two single quotes like that "BASIC");'

    There are a few basic rules I should keep in mind when you try to generate strings with single quotes?

    Hello

    In a string literal, single quotes normally indicate the beginning or the end of the literal.

    If you want to specify a single quote, is to use 2 consecutive single quotes in the literal.  For example, the name of 9 characters O'Higgins could be written in a literal string like this

    'O' Higgins

    ICT that there are 4 single quotes above: 1 to indicate the beginning of the literal string, 2 to represent a single quotation mark in the literal and 1 at the end of the literal.

    If you want a string of characters-1 that contains only a single quote, and then, as you noticed, it was released as 4 of them in a row

    ''''

    If you want to represent the 12 string

    ","BASIC");"

    in a string literal, then you have to put everything in a pair of simple and douuble quotes all quotes that occur in the sting, like this:

    (', "BASIC"); "

    When you asked if there was a rule of THUMB , you were doing a play on words?

    There is a rule of practice. When you use this type of string literal, single quotes always occur in pairs.  You always need a pair to mark the beginning and the end of the literal.  For each single quote representation, you need a pair.  If the string that represents the 12 above string literal contains 4 pairs of single quotes.  I'll write this liteal once again, with the numbers in pairs:

    (', "BASIC"); "

    122 33 44 1

    1 pair surrounds the literal; pairs of 2, 3 and 4 represent single quotes in the literal.

    If ever you have an odd number of single quotes using this notation, then you know that something is wrong.

    It is the older way of the use of single quotes in the string literal.  From Oracle 10, you have the possibility to use Q-notaation as well:

    Q'<', 'basic');="">'

    When you use Q-rating, you can have literals well trained with an odd number of single quotes.  The literal above happens to have 5, 2 that surround the literal.

    See the manual of the SQL language for more info on Q-rating:

    Literals

  • Using single quotes with MaxL in batch scripts

    I have the following MaxL, I need to pass to essmsh via a batch script:

    run the calculation ' FIX("Member 1") CLEARDATA "member 2"; ENDFIX' on App.Db;

    The problem is that the single quotes cause problems when it is passed as a variable in the batch script. However, if I change single quotes to double quotes the batch script is happy but the MaxL is not valid.

    Please can anyone suggest how I can get this to work?

    You also try that works

    ( @echo login %USER% identified by %PASS% on %SERVER%; & @echo execute calculation "'FIX(\"Member 1\") CLEARDATA \"Member 2\"; ENDFIX'" on App.Db; & @echo logout; & @echo exit; ) | essmsh
    

    See you soon

    John
    http://John-Goodwin.blogspot.com/

  • help request pivot with single quotes inside a string literal

    Hi all

    I have a little trouble with a pivot query. Oracle (10g R2) is:

    ORA-00604: an error occurred at recursive SQL level1
    ORA-01003: no instruction not analyzed

    My problem is pretty clear. When I do a pivot query to display a list of records where the countries are the column headers and rows headers is months that the system hesitates when she returns a country with an apostrophe in it. for example

    COUNTRY_NAME = ' KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF»

    I know that I have to catch the literal single quote and manipulate. I am just having unsuccessfully in management of it and I'm a little out of ideas. Can someone tell me a nice solution?

    The complete procedure is listed below: the


    PROCEDURE getCountryInvPlan)
    iINV_PLAN_DEPOT_ID in NUMBERS
    iITEM IN VARCHAR2,
    RC IN OUT pkg_DMT_INV_PLAN.t_rc,
    oErrorMsg OUT VARCHAR2)
    IS
    v_sql VARCHAR2 (32767).
    BEGIN


    v_sql: = 'select MONTH_BUCKET ';
    FOR rec IN
    (select distinct (COUNTRY_NAME) in the DMT_INV_PLAN_DEPOT_COUNTRY where INV_PLAN_DEPOT_ID = iINV_PLAN_DEPOT_ID)
    LOOP
    v_sql: = v_sql
    || ', MAX (DECODE (COUNTRY_NAME, "'))
    || recomm. COUNTRY_NAME
    || ((', PATIENT_DEMAND)) ' "»
    || recomm. COUNTRY_NAME
    || '"';
    END LOOP;
    v_sql: = v_sql
    || ', ' DECODE(MONTH_CLOSED,0,''OPEN'',1,''CLOSED'') AS MONTH_STATUS
    || ' FROM (SELECT DMT_INV_PLAN_DEPOT_COUNTRY. MONTH_BUCKET, DMT_INV_PLAN_DEPOT_COUNTRY. COUNTRY_NAME, DMT_INV_PLAN_DEPOT_COUNTRY. PATIENT_DEMAND, DMT_INV_PLAN_ITEM. DMT_INV_PLAN_DEPOT_COUNTRY MONTH_CLOSED, DMT_INV_PLAN_ITEM '
    || "where DMT_INV_PLAN_DEPOT_COUNTRY.". INV_PLAN_DEPOT_ID = DMT_INV_PLAN_ITEM. INV_PLAN_DEPOT_ID '
    || ' AND DMT_INV_PLAN_DEPOT_COUNTRY. ITEM_DESCRIPTION = DMT_INV_PLAN_ITEM. ITEM_DESCRIPTION '
    || ' AND DMT_INV_PLAN_DEPOT_COUNTRY. MONTH_BUCKET = DMT_INV_PLAN_ITEM. MONTH_BUCKET '
    || ' AND DMT_INV_PLAN_DEPOT_COUNTRY. INV_PLAN_DEPOT_ID = ' | iINV_PLAN_DEPOT_ID
    || ' AND DMT_INV_PLAN_DEPOT_COUNTRY. ITEM_DESCRIPTION = "' | iITEM | " ') '
    || 'GROUP by MONTH_BUCKET order MONTH_BUCKET MONTH_CLOSED';
    RC OPEN FOR v_sql;

    oErrorMsg: = v_sql;

    EXCEPTION
    WHEN NO_DATA_FOUND
    THEN
    oErrorMsg: = "NO DATA FOUND";

    WHILE OTHERS
    THEN
    oErrorMsg: = "ERROR";
    oErrorMsg: = v_sql;
    END getCountryInvPlan;

    Maybe you can try this:

    -- Etc --
    || ',MAX(DECODE(COUNTRY_NAME,'''
    || REPLACE(rec.COUNTRY_NAME,'''','''''')
    || ''',PATIENT_DEMAND)) "'
    || rec.COUNTRY_NAME
    || '"';
    -- Etc --
    

    8 2

  • Unable to [out] the value of the parameter put_line with single quotes (apostrophe)

    Hello

    I want to store a common code in a sql file and where the different clauses as a parameter, so the structure is:

    Main.SQL Script:
    set m_sWhere = ' owner = "SCOTT" ';
    @MyReport.sql '& m_sWhere '.

    MyReport.sql
    OK: SELECT * FROM MyTable WHERE & 1
    ERR: dbms_output.put_line ('MyWhere: & 1');

    I am not able to print the where the clause. I already tried to set the where clause with other delimiters (e.g. #SCOTT #) and replace # by ' in the MyReport but failed as well.

    All advice welcome.

    Published by: netaktiv on 11.02.2012 08:35

    Hello

    netaktiv wrote:
    Hello

    I want to store a common code in a sql file and where the different clauses as a parameter, so the structure is:

    Main.SQL Script:
    set m_sWhere = ' owner = "SCOTT" ';
    @MyReport.sql '& m_sWhere '.

    Sorry; It is unclear what you are trying to do, and what you're doing.
    I think the only single-quoptes in m_swhere are those before and after SCOTT:

    DEFINE  m_sWhere = owner='SCOTT'
    

    That's what you need to be able to use this variable in an SQL statement. SQL * more will replace & 1 with its value. If you were typing the statement directly, just type a single before and after SCOTT quote, if you want only a single quote before and after SCOTT in m_swhere. You use 2 single quotes in a row inside string literals, but the string literal only you need here is the literal 5 characters 'SCOTT', containing sound ", a 'C', 'o', two ' t and single quotes to zero."

    MyReport.sql
    OK: SELECT * FROM MyTable WHERE & 1
    ERR: dbms_output.put_line ('MyWhere: &1');)

    I am not able to print the where the clause. I already tried to set the where clause with other delimiters (e.g. #SCOTT #) and replace # by ' in the MyReport but failed as well.

    You do not want channels OK: or ERR: in the script.
    Dmbs_output.put_line, like any procedure, only works in PL/SQL.
    If you want to display text in a SQL * more script, use the SQL * FASTER command, like this:

    PROMPT  MyWhere: &1
    

    If you really must use dbms_output.put_line, then you will need to use a string literal, and single quotes can be tricky.
    In Oracle 10 (and more) use Q-rating:

    BEGIN
        dbms_output.put_line ( Q'{MyWhere: &1}' );
    END;
    /
    

    {Quotes will not be a problem unless they occur immediately after a right '}'.

  • REGEXP_LIKE help literal single quote

    I'm writing a check constraint to validate e-mail addresses which may include an apostrophe in the email address. Like joe.o'[email protected]. Here is my sample configuration:
    create table emails
    ( email_address varchar2(150)
    )
    /
    
    insert into emails values('[email protected]') ;
    insert into emails values('[email protected]') ;
    insert into emails values('joey.o''[email protected]') ;
    
    commit;
    
    sql> select * from emails;
    
    EMAIL_ADDRESS
    -------------------------------------------------
    [email protected]
    [email protected]
    joey.o'[email protected]
    
    alter table emails add constraint email_address_format_ck 
        CHECK ( REGEXP_LIKE ( email_address, '^[a-z0-9._%-]\'?+@[a-z0-9._%-]+\.mil$','c'));
        
    ERROR at line 2:
    ORA-00911: invalid character
    He dislikes *------'? *

    My understanding is that this means one or more of the single quotes. Does anyone know the correct syntax to accept apostrophes?

    Hello

    chris227 wrote:
    In addition to the detailed information given by Frank, I would add a thought on the?.
    I think that the intention of the? subsequently is that there should be only one or none "."

    Good point!

    So it could take into account

    select * from emails
    where
    REGEXP_LIKE ( email_address, '^[a-z0-9._%-]+['']?[a-z0-9._%-]+@[a-z0-9._%-]+\.mil$','c')
    

    That exceeded that, if there is a single quotation mark, should not be the first character, and must not enter immediately before the "@".
    It also requires that it is at least 2 characters before the "@" when there is no single quote. To allow only 1 before the "@":

    SELECT     *
    FROM     emails
    WHERE     REGEXP_LIKE ( email_address
                  , '^([a-z0-9._%-]+''?)?[a-z0-9._%-]+@[a-z0-9._%-]+\.mil$'
                  , 'c'
                  )
    ;
    

    The single quotation mark didn't need to be in square brackets.

  • using single quotes

    Hello

    I write this in the case statement.


    1 case where studentname in (' xyz' is ') then 'pass' end

    Please please help me. I want to know how I can give tat apostrophes inside the drivers because when I put it back tat it completes a Word

    Kind regards
    Sudarshan

    Hello

    Reformulate the case statement

    -case when studentname in ("xyz" one ' ") then 'pass' end

    (IE) replace the single quote with two single quotes * "* to *". "

    Rgds,
    DpKa

Maybe you are looking for

  • dv2745se - problem! laptop starts with wireless off

    I've read other discussions about similar issues, but I'm not having the same problem as most of the people. When Windows starts my wireless light stays orange/orange, even if it is on. However, I can turn off my wireless manually and then turn it to

  • LJ LJ MFP M225rdn Pro: Pro MFP M225rdn - reset to factory settings?

    I've been setting up a new MFP M225rdn. Once I changed the vacuum to HQ4cji0ZzzMs9DR5e2 administrator password - I can not connect anymore. What are the limitations of password, and how it reset to the factory settings?

  • Photosmart Premium C309A: C309A Fault Protection to access the properties of the printer and will not print (Windows 8.1)

    My C309A, connected via USB, my system worked very well through the life of WIndows 7 and Windows 8.1, until this week. I did run the software in PS_AIO_05_C309a_Net_Full_Win_WW_140_408 - 4.exe and then this week I received notice that there was a so

  • change kph - mph

    Hi guys, I am looking for a W450 in the coming days, im wondering is it possible to change the default unit of mph to kmh? IM from Australia and the unit is not here yet, so I can't find myself.

  • How to replace a charged cartridge

    Hi, I recently bought a toner and been told he woud register ink because it is a charge and now it won't let me not print at all.  They tod replace put not sure how on a MP250 printer and have an Eee PC notebook computer, thanks a lot