Text Literals 文本
Use the text literal notation to specify values whenever string appears in the syntax of expressions, conditions, SQL functions, and SQL statements in other parts of this reference. This reference uses the terms text literal, character literal, and string interchangeably. Text, character, and string literals are always surrounded by single quotation marks. If the syntax uses the term char, then you can specify either a text literal or another expression that resolves to character data — for example, the last_name column of the hr.employees table. When char appears in the syntax, the single quotation marks are not used.
每当字符串出现在本指南其他部分的表达式、条件、SQL函数和SQL语句的语法中时,使用文本符号来指定值。本指南使用术语“文本”、“字符文本”和“可互换的字符串”。文本、字符和字符串文本总是用单引号括起来。如果语法使用术语char,则可以指定文本文本或解析为字符数据的其他表达式-例如,hr.employees表的last_name列。当char出现在语法中时,不使用单引号。
文本或字符串的语法如下:
where N or n specifies the literal using the national character set (NCHAR or NVARCHAR2 data). By default, text entered using this notation is translated into the national character set by way of the database character set when used by the server. To avoid potential loss of data during the text literal conversion to the database character set,set the environment variable ORA_NCHAR_LITERAL_REPLACE to TRUE. Doing so transparently replaces the n' internally and preserves the text literal for SQL processing.
其中n或n使用国家字符集(NCHAR或NVARCHAR2 数据)指定文字。默认情况下,使用此符号输入的文本在服务器使用时通过数据库字符集转换为国家字符集。为了避免在文本文本转换为数据库字符集期间可能丢失数据,请将环境变量ORA_NCHAR_LITERAL_REPLACE设置为TRUE。这样做可以在内部透明地替换n'并保留用于SQL处理的文本。
In the top branch of the syntax:
在语法的顶部分支中:
• c is any member of the user's character set. A single quotation mark (') within the literal must be preceded by an escape character. To represent one single quotation mark within a literal, enter two single quotation marks.
• c 是用户字符集的任何成员。文本中的单引号(“)前面必须是转义字符。要在文本中表示一个单引号,请输入两个单引号。
• ' ' are two single quotation marks that begin and end text literals.
• ' ' 是开始和结束文本的两个单引号。
In the bottom branch of the syntax:
在语法的底部分支中:
• Q or q indicates that the alternative quoting mechanism will be used. This mechanism allows a wide range of delimiters for the text string.
• Q or q 表示将使用引号替代机制。这种机制允许为文本字符串使用广泛的分隔符。
• The outermost ' ' are two single quotation marks that precede and follow, respectively, the opening and closing quote_delimiter.
• 最外面的 ' ' 是两个单引号,分别位于左quote_delimiter和右quote_delimiter的前面和后面。
• c is any member of the user's character set. You can include quotation marks (") in the text literal made up of c characters. You can also include the quote_delimiter, as long as it is not immediately followed by a single quotation mark.
• c 是用户字符集的任何成员。您可以在由 c 字符组成的文本中包含引号(")。您还可以包括quote_delimiter,只要它不是紧跟在单引号之后。
• quote_delimiter is any single- or multibyte character except space, tab, and return. The quote_delimiter can be a single quotation mark. However, if the quote_delimiter appears in the text literal itself, ensure that it is not immediately followed by a single quotation mark.
• quote_delimiter 是除空格、制表符和回车之外的任何单字节或多字节字符。quote_delimiter可以是单引号。但是,如果quote_delimiter出现在文本本身中,请确保它后面不紧跟单引号。
If the opening quote_delimiter is one of [, {, <, or (, then the closing quote_delimiter must be the corresponding ], }, >, or ). In all other cases, the opening and closing quote_delimiter must be the same character.
如果左quote_delimiter是 [, {, <, or (,则右quote_delimiter必须是相应的], }, >, or )。在所有其他情况下,左和右quote_delimiter必须是相同的字符。
Text literals have properties of both the CHAR and VARCHAR2 data types:
文本具有CHAR和VARCHAR2数据类型的属性:
• Within expressions and conditions, Oracle treats text literals as though they have the data type CHAR by comparing them using blank-padded comparison semantics.
• 在表达式和条件中,Oracle将文本视为具有数据类型char,并使用空白填充的比较语义对其进行比较。
• A text literal can have a maximum length of 4000 bytes if the initialization parameter MAX_STRING_SIZE = STANDARD, and 32767 bytes if MAX_STRING_SIZE = EXTENDED. See Extended Data Types for more information.
• 如果初始化参数MAX_STRING_SIZE = STANDARD,文本的最大长度可以是4000字节;如果MAX_STRING_SIZE = EXTENDED,文本的最大长度可以是32767字节。有关详细信息,请参阅Extended Data Types。
Here are some valid text literals:
以下是一些有效的文本:
'Hello'
'ORACLE.dbs''Jackie''s raincoat''09-MAR-98'N'nchar literal'Here are some valid text literals using the alternative quoting mechanism:
下面是一些使用引号替代机制的有效文本:
q'!name LIKE '%DBMS_%%'!'
q'<'So,' she said, 'It's finished.'>'q'{SELECT * FROM employees WHERE last_name = 'Smith';}'nq'ï Ÿ1234 ï'q'"name like '['"'