Se você for o proprietário de uma camada de feição hospedada ou um administrador da sua organização, você poderá adicionar, excluir e calcular campos em camadas de feição hospedadas. Algumas restrições que se aplicam; por exemplo, você não pode excluir ou calcular o campo OBJECTID. Para uma lista completa de restrições, consulte a seção de Restrições.
Para adicionar, excluir ou calcular campos em uma camada de feição hospedada, você deve primeiro mostrar a tabela de atributos da camada. Consulte Mostrar tabelas para mais informações sobre tabelas.
Adicionar um campo
- Siga estas etapas para mostrar uma tabela.
- Clique em Opções da Tabela.
- Clique em Adicionar Campo.
- Nome—Os nomes de campo não devem conter caracteres especiais, tais como, espaços, hífens, parênteses, colchetes ou caracteres, tais como, $, % e #. Evite utilizar nomes de campo que contenham palavras que são normalmente consideradas palavras-chaves do Banco de Dados reservadas, tal como, CHARACTER ou DATE. Se você tentar adicionar um nome de campo com caracteres especiais ou uma palavra-chave do Banco de Dados reservada, você receberá uma mensagem de erros.
- Nome Alternativo—Um nome alternativo de um campo que é mais descritivo e amigável que o nome. O nome alternativo pode conter caracteres especiais e palavras-chaves do Banco de Dados reservadas.
- Tipo—Um dos seguintes:
- Data—Data e hora. Consulte Trabalhar com campos de data.
- Duplo—Números com casas decimais.
- Inteiro—Números inteiros de -2,147,483,648 to 2,147,483,647 (inteiro longo).
- String—Qualquer sequência de caracteres.
- Comprimento—O comprimento máximo, em caracteres, que um campo de string pode armazenar. O comprimento é exigido para o tipo de campo String. O padrão é 256 caracteres.
Excluir um campo
- Siga estas etapas para mostrar uma tabela.
- Clique na coluna contendo o campo que deseja excluir.
- Clique em Excluir. Confirme que você deseja excluir o campo.
Para determinados campos, como OBJECTID, CREATIONDATE, CREATOR, EDITDATE, e EDITOR, e campos utilizados no seu mapa para criar estilo e filtros, a opção Excluir está indisponível. Porém, outros mapas podem estar utilizando campos para simbologia e filtros que são diferentes de campos que seu mapa utiliza e a opção Excluir está disponível para estes campos. Exercite a precaução ao excluir os campos que podem ser utilizados para simbologia e filtros em outros mapas.
Calcular um campo
- Siga estas etapas para mostrar uma tabela.
- Clique na coluna contendo o campo cujos valores deseja calcular.
- Clique em Calcular.
A caixa de diálogo Construtor de Expressão aparece.
Operações básicas
Na caixa de diálogo Construtor de Expressão você pode construir expressões simples utilizando operadores, tais como. mais, menos, multiplicar e dividir. Exemplos e dicas são como seguem:
- Para multiplicar todos os valores em um campo numérico denominado SAMPLE por 100.0, digite SAMPLE * 100.0 para a expressão.
- Para equações mais complexas, você pode utilizar os parênteses para especificar a ordem de cálculos, por exemplo, SAMPLE * (BASELINE - 40).
- Os operadores para Corresponder não funcionam com campos de string. Você precisará utilizar as funções da string descrita na seção Funções da string.
- Se você estiver calculando um campo de tipo duplo para o campo de tipo inteiro, a função CAST poderá ser automaticamente adicionada na sua expressão. Por exemplo, se você estiver calculando um campo duplo denominado POP para um campo inteiro denominado SAMPLE, a expressão aparecerá como CAST(SAMPLE AS FLOAT). Não remova a função CAST. Consulte Funções numéricas abaixo das informações na função CAST.
- Para incluir uma apóstrofe na string, utilize duas aspas únicas para a apóstrofe. Por exemplo, 'Nightingale''s'. Não utilize aspas duplas.
Após ter criado sua expressão, clique no botão Calcular. Se houver quaisquer erros, uma mensagem de erro aparecerá na parte inferior da caixa de diálogo.
O seguinte são considerações adicionais:
- Se você tiver um filtro em sua camada, somente os registros que atenderem os critérios do filtro terão seus valores calculados.
- O Construtor de Expressão trabalha somente com nomes de campo, não com nomes alternativos de campo. A lista Campos mostra a você todos os nomes de campo disponíveis para cálculos. Você pode filtrar esta lista pelos tipos de campo String, Numérico e Data.
- Se você pairar sobre um nome de campo na lista Campos, o nome alternativo e tipo de campo são exibidos.
- Se você clicar em um nome de campo na lista Campos, o campo será adicionado à expressão.
Utilizar funções
Além de operadores de expressões simples, você também pode utilizar funções. As funções trabalham com nomes de campo, literais e outras funções. Por exemplo, suponha que você precise calcular um campo duplo para ser TOTALPOP dividido por POP18. Se qualquer feição tiver um POP18 igual a zero, o cálculo resultará em um erro de divisão por zero. Você pode guardar isto utilizando a função NULLIF, descrita abaixo. A expressão seria TOTALPOP / NULLIF(POP18, 0).
As funções utilizam parâmetros. Nas tabelas abaixo, qualquer parâmetro pode ser como segue:
- Um nome de campo, desde que o tipo de campo corresponda ao tipo de parâmetro (string, número ou data).
- Uma literal, tal como 'Sailboat' (a string surrounded by single quotation marks), the number 5, or a date in MM/DD/YYYY hh:mm:ss format, surrounded by single quotation marks.
- Se a sua organização permitir consultas SQL diferentes do padrão, caracteres diferentes do Inglês em uma string literal deverão ser utilizados com N (por exemplo, N'针叶林').
- Uma função que retorna um valor do tipo adequado (string, número, data). Por exemplo, FLOOR(POWER(SAMP_ERR, 0.5)) retorna o maior inteiro que é menor ou igual a raiz quadrada de SAMP_ERR.
Para propósitos ilustrativos, os exemplos na coluna de descrição das tabelas abaixo utilizam principalmente parâmetros literais. Você pode substituir um nome de campo ou outra função para estes parâmetros.
Funções de string
Função | Descrição |
---|---|
CHAR_LENGTH(string) | Retorna o número de caracteres na string. O resultado é um inteiro. Exemplo
|
CONCAT(string1, string2) | Concatene duas strings. Somente duas strings podem ser fornecidas. Para concatenar mais de duas strings, insira CONCAT consecutivos como mostrado no exemplo abaixo. Exemplo
Os valores nulos são convertidos em uma string vazia. |
POSITION(substring, texto )* Anotação:*Se o servidor de hospedagem do seu portal utilizar ArcGIS Data Store ou um banco de dados gerenciado no PostgreSQL, você deverá utilizar POSITION(substring na string). | Retorna a posição da primeira ocorrência de substring na string. Se substring não for localizada, o resultado será 0. Exemplos
|
SUBSTRING(string, start, length) | Retorna uma parte da string; start é um índice inteiro especificando onde os caracteres retornados iniciam e length é o número de caracteres para ser retornado. Exemplo
|
TRIM(BOTH | LEADING | TRAILING ' ' FROMstring) | Retorna uma string onde todos os espaços extras são removidos da string. Exemplo
Note que o segundo parâmetro são duas aspas únicas com um espaço entre elas. |
UPPER(string) | Retorna uma string onde todos os caracteres na string são convertidos em letra maiúscula. Exemplo
|
LOWER(string) | Retorna uma string onde todos os caracteres na string são convertidos em letra minúscula. Exemplo
|
Funções numéricas
Além das funções numéricas descritas abaixo, você pode calcular estatísticas em colunas de dados. Esta estatística inclui o número de registros, o valor mínimo e máximo, a soma de todos os valores, o valor médio e o desvio padrão de todos os valores.
- Clique na coluna contendo o campo cujos valores deseja obter estatísticas.
- Clique em Estatística. Uma caixa de diálogo mostra a estatística calculada.
Função | Descrição |
---|---|
ABS(number) | Retorna o valor absoluto (positivo) de number. |
CEILING(number) | Retorna o menor inteiro, maior ou igual a number. Exemplo
|
COS(number) | Retorna o co-seno trigonométrico de number, que é assumido para ser um ângulo em radianos. |
CAST(numberAS FLOAT | INT) | Converte um número para um tipo diferente. FLOAT converte number para um dobro e INT converte para um inteiro. |
FLOOR(number) | Retorna o maior inteiro que é menor ou igual a number. Exemplo
|
LOG(number)* Anotação:*Se o servidor de hospedagem do seu portal utilizar um armazenamento de dados realcional criado no ArcGIS Data Store ou um banco de dados gerenciado no PostgreSQL, você deverá utilizar LN(number, decimal_place). | O logaritmo natural de number. |
LOG10(number)* Anotação:*Se o servidor de hospedagem do seu portal utilizar um armazenamento de dados realcional criado no ArcGIS Data Store ou um banco de dados gerenciado no PostgreSQL, você deverá utilizar LOG(number, decimal_place). | O logaritmo de base 10 de number. |
MOD(number, n) | Retorna o remanescente após a divisão de n ser executada em number. Ambos n e number devem ser do tipo inteiro. Exemplo
|
NULLIF(number, value) | Retorna null se number for igual a value. NULLIF é comumente utilizado para prevenir erros divididos por zero configurando value para 0. Sempre que um cálculo encontra um valor de campo null em alguns dos seus parâmetros, o resultado do cálculo é null. Por exemplo, suponha que você precise calcular um campo duplo para ser TOTALPOP dividido por POP18. Se qualquer feição tiver um POP18 igual a zero, o cálculo resultará em um erro de divisão por zero. Você pode criar um filtro para ocultar registros onde POP18 é zero, e executa seu cálculo. Um atalho é utilizar NULLIF.
|
POWER(number , y) | Retorna o valor de number elevado à potência y especificada. |
ROUND(number , length) | Arredonda number para o comprimento especificado. Se length for um número positivo, o número é arredondado para a posição decimal especificada por length. Quando length é um número negativo, é arredondado no lado esquerdo do ponto decimal. Exemplos
|
SIN(number) | Retorna o seno trigonométrico de number, que é assumido para ser um ângulo em radianos. |
TAN(number) | Retorna tangente de number, que é assumida para ser um ângulo em radianos. |
TRUNCATE(number, decimal_place)* Anotação:*Se o servidor de hospedagem do seu portal utilizar um armazenamento de dados realcional criado no ArcGIS Data Store ou um banco de dados gerenciado no PostgreSQL, você deverá utilizar TRUNC(number, decimal_place). | Trunca number no decimal_place especificado. Um decimal_place positivo trunca para a posição decimal especificada. Quando decimal_place é um número negativo, é truncado no lado esquerdo do ponto decimal. Exemplos
|
Funções de data
Algumas funções estão disponíveis para campos de data. Para uma lista de funções de data e obter mais informações sobre como trabalhar com campos de data em tabelas de atributos, consulte Trabalhar com campos de data.
Trabalhar com campos de data
Vários cálculos podem ser executados em campos de data. Por exemplo, você pode adicionar ou subtrair tempo de um campo de data ou calcular a diferença entre dois campos de data.
Funções de data
As seguintes funções de data estão disponíveis:
Função | Descrição |
---|---|
CURRENT_DATE()* Anotação:*Se o seu servidor de hospedagem do portal utilizar um armazenamento de dados realcional criado no ArcGIS Data Store ou um banco de dados gerenciado no PostgreSQL, você deverá utilizar CURRENT_DATE. | Retorna a data atual no horário UTC. |
CURRENT_TIME()* Anotação:*Se o seu servidor de hospedagem do portal utilizar um armazenamento de dados realcional criado no ArcGIS Data Store ou um banco de dados gerenciado no PostgreSQL, você deverá utilizar CURRENT_TIME. | Retorna a data e hora atual de UTC (horas, minutos, segundos). |
CURRENT_TIMESTAMP()* Anotação:*Se o seu servidor de hospedagem do portal utilizar um armazenamento de dados realcional criado no ArcGIS Data Store ou um banco de dados gerenciado no PostgreSQL, você deverá utilizar CURRENT_TIMESTAMP. | Retorna a data e hora atual de UTC (horas, minutos, segundos, milissegundos). |
EXTRACT(unit FROM date)* Anotação:*Se o seu servidor de hospedagem do portal utilizar um armazenamento de dados realcional criado no ArcGIS Data Store ou um banco de dados gerenciado no PostgreSQL, você deverá utilizar CURRENT_DATE. | Retorna uma única parte de data/hora, tal como, ano, mês, dia, hora, minuto e assim por diante. Por exemplo
|
Calcular campos de data
Você pode utilizar qualquer combinação dos campos de número e data, e literais ao calcular campos de data. Quando tiver literais de data, você deverá utilizar formatos de data suportados pelo SQL.
Adicionar ou substrair tempo de uma data
Você pode desejar a adição de tempo ou substração de tempo de um campo de data ou um literal de data suportado pelo SQL para produzir um campo de data atualizado. Por exemplo, você pode calcular uma data de inspeção futura ou de revisão ao adicionar tempo para uma data.
Os cálculos seguintes podem ser utilizados para adicionar tempo ou para subtrair tempo de um campo de data. O primeiro utiliza campos de data e o segundo utiliza valores literais de data. Campos de número e literais de número também podem ser utilizados. Qualquer combinação de campos e literais é suportada, como mostrado no terceiro e quarto cálculos.<DateField> + / - <NumberField> = updated date
DATE'<SQL-supported Date Literal>' + / - <Number of Days> = updated date
<DateField> +/- <Number of Days> = updated date
DATE'<SQL-supported Date Literal >' + / - <NumberField> = updated date
O campo de data calculado é a data original mais ou menos o número de dias que você deseja adicionar ou subtrair. O número de dias pode ser um número inteiro e também pode incluir uma fração—por exemplo, 1.5 representaria um dia e meio ou 36 horas.
No seguinte exemplo, uma parte do maquinário foi instalado em 6/14/2016 às 10:00:00 AM. Você poderá utilizar um dos seguintes cálculos para produzir um data de inspeção um mês (30 dias) após esta data de instalação. O primeiro cálculo utiliza um campo de data com um valor de 6/14/2016 e um campo de número com um valor de 30, enquanto o segundo utiliza um literal de data e um literal de número.<MyDateField> + <MyNumberField> = 7/14/2016 10:00 AM
DATE'6/14/2016' + 30 = 7/14/2016 10:00 AM
Calcular a diferença entre duas datas
Você pode desejar o cálculo do comprimento de tempo entre duas datas. Por exemplo, se você tiver as datas de instalação para metros elétricos e você também tiver as datas de inspeção, você poderá calcular a diferença entre as duas datas para verificar se o comprimento de tempo entre a instalação e a inspeção caem dentro das diretrizes permitidas. O resultado do cálculo é um campo de número, ao invés de um campo de data.
Qualquer combinação dos campos de data e literais de data pode ser utilizada para calcular o comprimento de tempo entre duas datas. O primeiro cálculo abaixo utiliza um campo de data, enquanto o segundo utiliza um literal de data. O terceiro e quarto cálculos utilizam ambos um campo de data e um literal de data.<DateField1> - <DateField2> = number of days in between
DATE'<SQL-supported Date Literal>' - DATE'< SQL-supported Date Literal>' = number of days in between
<DateField1> - DATE'<SQL-supported Date Literal>' = number of days in between
DATE'<SQL-supported Date Literal>' - <DateField2> = number of days in between
O resultado é um campo de número que é calculado subtraindo um campo/literal de data de outro campo/literal de data. O resultado do número (em dias) pode ser um número inteiro e também pode incluir uma fração—por exemplo, 1.5 representaria um dia e meio ou 36 horas.
No exemplo da inspeção de metro elétrico mencionado acima, quaisquer dos seguintes cálculos podem ser utilizados para calcular o comprimento de tempo entre um data de instalação em 6/1/2015 e uma data de inspeção em 10/1/2015. O primeiro cálculo utiliza campos de data, o segundo utiliza literais de data, e o terceiro e quarto ambos utilizam um campo de data e um literal de data.<InspectionDateField> - <InstallationDateField> = 122 (days)
DATE'10/1/2015' - DATE'6/1/2015' = 122 (days)
<InspectionDateField> - DATE'6/1/2015' = 122 (days)
DATE'10/1/2015' - <InstallationDateField> = 122 (days)
Considerações para campos de data
As seguintes informações são importantes para considerar quando trabalhar com campos de data.
Alterar formato de visualização do campo de data
Você pode alterar como as datas são exibidas na tabela. As tabelas exibem a mesma formatação configurada em janelas pop-up. Você pode mudar o formato de visualização de um campo de data selecionando o nome alternativo do campo na janela Configurar Atributos das Propriedades do Pop-up.
Inserir datas no formato MM/DD/YYYY hh:mm:ss
Não importando como as datas são exibidas na tabela, você pode inserir somente datas no formato MM/DD/YYYY hh:mm:ss, incluídas em aspas únicas. Por exemplo, para configurar um campo de data para 5:00 PM em 27 de Maio, 2014, você digitaria '05/27/2014 05:00:00PM', '05/27/2014 5:00PM', ou '05/27/2014 17:00:00' (relógio de 24 horas). Não há suporte para armazenar somente hora—a hora deve sempre ser um componente de uma data.
As datas são inseridas e armazenadas em horário UTC
Os campos de data em tabelas são assumidos para conter datas e horário UTC. UTC significa Universal Time Coordinated e é quase equivalente ao tempo atual no meridiano principal da Terra (zero graus de longitude) localizado próximo de Greenwich, Inglaterra. UTC é uma versão mais precisa de GMT (Greenwich Mean Time). As datas são assumidas para serem UTC, pois o local físico do servidor que hospeda seus dados pode estar em qualquer lugar no mundo. A alternativa de armazenar data e hora em um fuso horário local leva a todos os tipos de problemas, especialmente se você, ou o servidor que hospeda seus dados, mover para outro fuso horário.
Sempre que um campo de data for exibido, a data é convertida do horário UTC para seu horário local. Isto é feito ao consultar seu computador e solicitar por sua configuração de fuso horário. Por exemplo, suponha que seu computador esteja configurado para Pacific Standard Time (PST). PST é oito horas antes de UTC—quando o horário UTC for 09:00:00 a.m, ele será 01:00:00 a.m. PST (ou 2:00 a.m. se estiver no horário de verão).
Qualquer data que você inserir em uma expressão é assumida para ser no horário UTC, não a hora no fuso horário atual. Esta suposição pode levar à confusão. Por exemplo, se você digitar '05/27/2014 05:00:00PM' utilizando um computador configurado para PST, ele aparecerá como 5/27/2014 10:00 AM devido à conversão de tempo descrita acima.
Para responder pela conversão de UTC para fuso horário local, aqui estão algumas dicas:
- Se você precisar inserir sua data e hora atual, utilize uma das funções de tempo abaixo, já que estas funções sempre retornam um horário UTC.
- Se você estiver inserindo uma data sem um componente de tempo, adicione 12 horas para a data. Por exemplo, ao invés de inserir '5/27/2014', insira '5/27/2014 12:00PM' ou '5/27/2014 12:00'. A razão deste deslocamento ser necessário é que quando uma data é inserida sem um componente de tempo, é inserida como meia noite nesta data (5/27/2014 é convertido para 5/27/2014 00:00:00), e quando é exibida no fuso horário local, as horas são adicionadas ou subtraídas. Por exemplo, se você estiver em PST e digitar 5/27/2014, ela aparecerá como 5/26/2014 (sete horas subtraídas da meia-noite em 27°).
- Se você estiver inserindo uma data com um componente de tempo, aplique seu deslocamento de fuso horário na hora. Por exemplo, se você precisar digitar 5/27/2014 12PM PST, aplique a diferença de 8 horas e insira '5/27/2014 8:00PM'. Para localizar seu deslocamento de fuso horário, você pode procurar na web utilizando uma frase de pesquisa, tal como calculadora de diferença do horário UTC.
- Para visualizar o conteúdo do seu campo de data no horário UTC, você pode adicionar um campo de string na sua tabela e calculá-lo para ser igual ao seu campo de data. A data será convertida em uma string sem o deslocamento de fuso horário. Esta string também conterá milissegundos.
Restrições
- Excluir não está disponível para o campo ou campos OBJECTID utilizados para simbologia, controle deslizante de tempo, filtro, rótulos ou rastreio de editor. Porém, esteja ciente que outros mapas podem estar utilizando campos para simbologia e filtros que são diferentes dos campos que seu mapa utiliza e a opção Excluir está disponível para estes campos. Exercite a precaução ao excluir os campos que podem ser utilizados para simbologia e filtros em outros mapas.
- Adicionar Campo, Excluir e Calcular não estão disponíveis para cópias de camadas ou para camadas de feição hospedadas que têm camadas de mosaico relacionadas.
- Adicionar Campo, Excluir e Calcular estão disponíveis somente para camadas de feição ou tabelas hospedadas. Você deve ser o proprietário da camada ou um administrador da sua organização para utilizar esta funcionalidade.
- Somente consultas padronizadas de SQL são suportadas.