2015-05-13 2 views
0

погуглить Я нашел объявление функции DB2:Использование @ на имена переменных

CREATE FUNCTION QGPL.SPLIT ( 
@Data  VARCHAR(32000), 
@Delimiter VARCHAR(5) 
) 

Что означает символ @ перед именем переменной?

С уважением,

Педро

+0

"@" не означает ничего особенного, это просто один из допустимых символов для параметра или имен переменных.Некоторые люди используют «@» в качестве префикса, чтобы отличать обычные параметры от локальных переменных или имен столбцов. – mustaccio

ответ

2

символ @ это просто первый символ идентификатора SQL [имя переменной] именования параметр, определенный для аргументов определенные пользователем функции (UDF); немного переформатировать [потому что на первый взгляд, я думал, что пересмотр может сделать на-символы появляются более заметно, чтобы быть частью имени, хотя сейчас я думаю, что, вероятно, не]:

CREATE FUNCTION QGPL.SPLIT 
(@Data  VARCHAR(32000) 
, @Delimiter VARCHAR(5) 
) returns ... 

Проще говоря, использование @ символ в идентификаторе сильно обескуражен; использование таких вариант символов, хотя поддерживается в стандартном объекте наименовании, они могут вызвать сильные боли и трудности, в том числе те, которые являются непреодолимыми:

http://www.ibm.com/support/knowledgecenter/api/content/ssw_ibm_i_71/db2/rbafzch2iden.htm

идентификаторами
Идентификатор - это токен, используемый для формирования имени. Идентификатор в выражении SQL - это идентификатор SQL, системный идентификатор или идентификатор узла. Примечание: $, @, # и все другие символы варианта не должны использоваться в идентификаторах, потому что используемые для их представления кодовые точки различаются в зависимости от CCSID строки, в которой они содержатся. Если они используются, могут возникнуть непредсказуемые результаты. [...]

[Edit-приложение 17May2015]

http://www.ibm.com/support/knowledgecenter/api/content/nl/en-us/SSEPGG_10.5.0/com.ibm.db2.luw.admin.dbobj.doc/doc/c0004625.html

правила именования в среде с несколькими национального языка
Базовый набор символов, которые могут быть используемые в именах баз данных, состоят из однобайтовых прописных и строчных латинских букв (A ... Z, a ... z), арабских цифр (0 ... 9) и подчеркивания e character (_).

Этот список дополняется тремя специальными символами (#, @ и $), чтобы обеспечить совместимость с продуктами базы данных хостов. Используйте специальные символы #, @ и $ с осторожностью в среде множественного национального языка, потому что они не включены в набор символов инвариантных множественных национальных языков (EBCDIC). Символы из расширенного набора символов также могут использоваться в зависимости от используемой кодовой страницы. Если вы используете базу данных в среде с несколькими кодовыми страницами, вы должны убедиться, что все страницы кода поддерживают любые элементы из расширенного набора символов, который вы планируете использовать. [...]

[/ Edit-приложение 17May2015]

+0

Спасибо за добавление, CRPence –

Смежные вопросы