

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Regras de seleção na conversão do esquema DMS
<a name="sc-selection-rules"></a>

A conversão de esquema do DMS converte esquemas de banco de dados de um mecanismo para outro. Você usa *regras de seleção* para controlar em quais objetos do banco de dados o DMS Schema Conversion atua durante operações como avaliação, conversão e exportação. Uma regra de seleção é um objeto JSON que você passa pelo `SelectionRules` parâmetro (ou `--selection-rules` na AWS CLI). Sem uma regra de seleção, uma operação não tem nada sobre o que agir. Com uma regra, você pode definir o escopo da operação para um único objeto, um esquema inteiro, um banco de dados inteiro (para fontes do Microsoft SQL Server e SAP ASE (Sybase ASE)) ou um grupo de objetos que correspondam a um padrão.

**nota**  
Quando você usa o AWS Management Console, o DMS Schema Conversion cria regras de seleção automaticamente com base em suas escolhas na interface do usuário do projeto de migração. Você só precisa escrever regras de seleção diretamente ao usar a API ou a CLI AWS de conversão de esquema do DMS.

Você usa a mesma forma de regra nos lados de origem e destino de um projeto de migração. O `server-name` campo no localizador de objetos especifica se a regra tem como alvo o provedor de dados de origem ou o provedor de dados de destino. Um único projeto de migração geralmente usa os dois tipos de regras: regras de origem para avaliação e conversão; regras de destino para exportação de SQL.

## Formato das regras de seleção
<a name="dms-sc-selection-rule-format"></a>

Um documento de regras de seleção é um objeto JSON com uma única `rules` matriz. Cada entrada na matriz é uma regra, e cada regra deve conter todos os campos a seguir.


| Parâmetro | Valor | Description | 
| --- | --- | --- | 
| rule-type | selection | Um valor que identifica o tipo de regra. Para todas as regras de seleção, defina isso comoselection. Parâmetro necessário. | 
| rule-id | Um valor numérico (inteiro). | Um identificador numérico exclusivo para a regra. Parâmetro necessário. | 
| rule-name | Um valor alfanumérico. | Um nome exclusivo para identificar a regra. Parâmetro necessário. | 
| rule-action | explicit, include ou exclude | Um valor que determina como o localizador de objetos é interpretado. Consulte [Ações de regra](#dms-sc-selection-rule-actions). Parâmetro necessário. | 
| object-locator | Um objeto JSON contendo chaves localizadoras específicas do mecanismo. | Um objeto que identifica os objetos do banco de dados aos quais a regra se aplica. Consulte [Hierarquia do localizador de objetos](#dms-sc-selection-rule-object-locator). Parâmetro necessário. | 

O exemplo mínimo a seguir tem como alvo um esquema em um servidor de origem.

```
{
  "rules": [
    {
      "rule-type": "selection",
      "rule-id": "1",
      "rule-name": "{{rule_name}}",
      "rule-action": "explicit",
      "object-locator": {
        "server-name": "{{source_server}}",
        "schema-name": "{{schema_name}}"
      }
    }
  ]
}
```

**nota**  
Ao usar a AWS CLI, você pode passar as regras de seleção das seguintes maneiras. Esse é um recurso AWS CLI padrão que funciona com qualquer parâmetro de string.  
Em linha: `--selection-rules '{"rules":[...]}'` (use aspas simples para evitar escapar das aspas duplas do JSON)
Caminho relativo: `--selection-rules file://example-rules.json`
Caminho absoluto: `--selection-rules file:///tmp/example-rules.json`

Todos os valores de campo dentro `object-locator` devem ser cadeias de caracteres não vazias. Uma string vazia (por exemplo,`"schema-name": ""`) é rejeitada com o erro.

**nota**  
A `database-name` chave é válida somente para fontes do Microsoft SQL Server e do SAP ASE (Sybase ASE). O envio `database-name` de um localizador para qualquer outro mecanismo de origem é rejeitado como uma chave não suportada.

## Regras de escrita
<a name="dms-sc-writing-rules"></a>

### Hierarquia do localizador de objetos
<a name="dms-sc-selection-rule-object-locator"></a>

O `object-locator` identifica um ou mais objetos do banco de dados por meio de uma hierarquia de chaves específicas do mecanismo. Cada chave restringe o escopo; omita uma chave de nível inferior para ampliar o escopo. A hierarquia depende do mecanismo de origem:
+ **Microsoft SQL Server e SAP ASE (Sybase ASE)** — chave em `server-name` ` → ` `database-name` ` → ` `schema-name` ` → ` nível de objeto (por exemplo,). `table-name` Esses mecanismos têm um `database-name` nível extra entre o servidor e o esquema.
+ **Todos os outros mecanismos** (Oracle, IBM Db2 for e todos os mecanismos de destino: PostgreSQL z/OS, Aurora PostgreSQL, MySQL, Aurora MySQL e IBM Db2 LUW) — chave em nível de objeto. `server-name` ` → ` `schema-name` ` → ` Esses motores não têm `database-name` nível; o esquema é o contêiner superior diretamente abaixo`server-name`.

O exemplo a seguir seleciona uma tabela específica do Microsoft SQL Server.

```
{
  "rules": [
    {
      "rule-type": "selection",
      "rule-id": "1",
      "rule-name": "{{rule_name}}",
      "rule-action": "explicit",
      "object-locator": {
        "server-name": "{{source_server}}",
        "database-name": "{{database_name}}",
        "schema-name": "{{schema_name}}",
        "table-name": "{{table_name}}"
      }
    }
  ]
}
```

Para ampliar o escopo para todo o esquema, omita a chave no nível da folha. A regra então se aplica a todos os tipos de objetos endereçáveis nesse esquema, incluindo tabelas, visualizações, procedimentos, funções, sequências e quaisquer outros objetos que o mecanismo de origem exponha.

```
{
  "rules": [
    {
      "rule-type": "selection",
      "rule-id": "1",
      "rule-name": "{{rule_name}}",
      "rule-action": "explicit",
      "object-locator": {
        "server-name": "{{source_server}}",
        "database-name": "{{database_name}}",
        "schema-name": "{{schema_name}}"
      }
    }
  ]
}
```

As teclas localizadoras que você pode usar dependem do mecanismo de origem ou de destino. Para obter a referência chave completa por motor, consulte[Chaves de localização de objetos por banco de dados](#dms-sc-selection-rule-locator-keys).

### Regras de origem e regras de destino
<a name="dms-sc-selection-rule-source-vs-target"></a>

Nenhum `rule-type` campo explícito marca uma regra como “origem” ou “destino”. Você controla a distinção inteiramente por meio do `server-name` valor em`object-locator`: se `server-name` corresponder ao seu provedor de dados de **origem**, a regra tem como alvo a árvore de metadados de origem; se corresponder ao seu provedor de dados de **destino**, a regra tem como alvo a árvore de metadados de destino.

Pois `server-name` você pode usar:
+ O valor **do nome do servidor** configurado no provedor de dados. Normalmente, é um nome de host ou endereço IP, mas deve corresponder exatamente ao valor armazenado no provedor de dados — não a um nome DNS ou IP diferente que seja resolvido na mesma máquina.
+ O **ID do recurso** do provedor de dados — o último segmento de seu ARN (por exemplo, se o ARN for`arn:aws:dms:us-east-1:111122223333:data-provider:EXAMPLEABCDEFGHIJKLMNOPQRS`, o ID do recurso será). `EXAMPLEABCDEFGHIJKLMNOPQRS`

### Ações de regra
<a name="dms-sc-selection-rule-actions"></a>

Use o `rule-action` campo para especificar como a Conversão de Esquema do DMS interpreta os valores dentro do localizador de objetos. Você pode usar curingas somente com `include` e. `exclude`


| Valor | Comportamento | Quando usar | 
| --- | --- | --- | 
| `"include"` | Seleciona todos os objetos cujos nomes correspondem ao padrão. Suporta `%` (qualquer sequência de zero ou mais caracteres) e `_` (qualquer caractere único) como curingas. Use `[_]` para combinar um sublinhado literal e `[%]` para corresponder a um caractere de porcentagem literal. | Use para combinar um grupo de objetos com um padrão de nomenclatura compartilhado. | 
| `"exclude"` | Remove objetos do conjunto já selecionado pelas `include` regras anteriores. Uma `exclude` regra sem precedente não `include` tem efeito. | Use para extrair exceções de uma mais ampla. `include` | 
| `"explicit"` | Seleciona exatamente o objeto nomeado. Cada valor do localizador, incluindo `schema-name``database-name`, e qualquer chave de folha, como `table-name` ou`scalar-function-name`, é correspondido como uma string literal. Caracteres curinga como`%`,, `_``[`, e não `]` têm nenhum significado especial abaixo`explicit`. | Use quando você souber o nome exato de cada objeto sobre o qual deseja agir. | 

**nota**  
Algumas operações aceitam apenas `"explicit"` regras e não suportam `"include"` ou`"exclude"`. Verifique a [Referência AWS da API](https://docs.aws.amazon.com/dms/latest/APIReference/API_Operations.html) da operação específica para confirmar quais ações de regras ela suporta.

## Referência do localizador de objetos
<a name="dms-sc-locator-reference"></a>

### Chaves de localização de objetos por banco de dados
<a name="dms-sc-selection-rule-locator-keys"></a>

As guias a seguir mostram as chaves de localização para cada banco de dados compatível.

------
#### [ SQL Server ]


| Chave | Seleciona | 
| --- | --- | 
| `server-name` | O servidor. | 
| `database-name` | Um banco de dados no servidor. | 
| `schema-name` | Um esquema dentro do banco de dados. | 
| `table-name` | Uma tabela por padrão ou uma exibição quando usada com`"table-type": "view"`. | 
| `table-type` | `"table"`(padrão) ou`"view"`. | 
| `procedure-name` | Um procedimento armazenado. | 
| `scalar-function-name` | Uma função com valor escalar. | 
| `table-valued-function-name` | Uma função com valor de tabela. | 
| `inline-function-name` | Uma função embutida. | 
| `aggregate-function-name` | Uma função agregada. | 
| `synonym-name` | Um sinônimo. | 
| `sequence-name` | Uma sequência. | 
| `type-name` | Um tipo. | 
| `table-type-name` | Um tipo de tabela. | 
| `user-defined-type-name` | Um tipo definido pelo usuário. | 
| `xml-schema-collection-name` | Uma coleção de esquemas XML. | 
| `category-name` | Uma classe de objeto. Use para atingir uma categoria inteira de objetos; consulte[Nomes de categorias por motor](#dms-sc-category-names). | 

------
#### [ Oracle ]


| Chave | Seleciona | 
| --- | --- | 
| `server-name` | O servidor. | 
| `schema-name` | Um esquema (usuário Oracle). | 
| `table-name` | Uma tabela por padrão ou uma exibição quando usada com`"table-type": "view"`. | 
| `table-type` | `"table"`(padrão) ou`"view"`. | 
| `procedure-name` | Um procedimento armazenado. | 
| `function-name` | Uma função do . | 
| `package-name` | Um pacote. | 
| `sequence-name` | Uma sequência. | 
| `synonym-name` | Um sinônimo. | 
| `type-name` | Um tipo definido pelo usuário. | 
| `materialized-view-name` | Uma visão materializada. | 
| `category-name` | Uma classe de objeto. Use para atingir uma categoria inteira de objetos; consulte[Nomes de categorias por motor](#dms-sc-category-names). | 

------
#### [ SAP ASE (Sybase ASE) ]


| Chave | Seleciona | 
| --- | --- | 
| `server-name` | O servidor. | 
| `database-name` | Um banco de dados no servidor. | 
| `schema-name` | Um esquema dentro do banco de dados. | 
| `table-name` | Uma tabela por padrão ou uma exibição quando usada com`"table-type": "view"`. | 
| `table-type` | `"table"`(padrão) ou`"view"`. | 
| `materialized-view-name` | Uma visão materializada. | 
| `procedure-name` | Um procedimento armazenado. | 
| `scalar-function-name` | Uma função com valor escalar. | 
| `table-valued-function-name` | Uma função com valor de tabela. | 
| `user-defined-type-name` | Um tipo definido pelo usuário. | 
| `default-name` | Um padrão definido pelo usuário. Acessível somente por meio `Describe*` de. | 
| `category-name` | Uma classe de objeto. Use para atingir uma categoria inteira de objetos; consulte[Nomes de categorias por motor](#dms-sc-category-names). | 

------
#### [ PostgreSQL ]


| Chave | Seleciona | 
| --- | --- | 
| `server-name` | O servidor. | 
| `schema-name` | Um esquema. | 
| `table-name` | Uma tabela ou uma exibição; use `table-type` para distinguir. | 
| `function-name` | Uma função do . | 
| `procedure-name` | Um procedimento armazenado. | 
| `sequence-name` | Uma sequência. | 
| `materialized-view-name` | Uma visão materializada. | 
| `type-name` | Um tipo definido pelo usuário. | 
| `domain-name` | Um domínio. | 
| `category-name` | Uma classe de objeto. Use para atingir uma categoria inteira de objetos; consulte[Nomes de categorias por motor](#dms-sc-category-names). | 

------
#### [ MySQL ]


| Chave | Seleciona | 
| --- | --- | 
| `server-name` | O servidor. | 
| `schema-name` | Um esquema. | 
| `table-name` | Uma tabela ou uma exibição; use `table-type` para distinguir. | 
| `procedure-name` | Um procedimento armazenado. | 
| `function-name` | Uma função do . | 
| `event-name` | Um evento. | 
| `category-name` | Uma classe de objeto. Use para atingir uma categoria inteira de objetos; consulte[Nomes de categorias por motor](#dms-sc-category-names). | 

------
#### [ IBM Db2 for z/OS ]


| Chave | Seleciona | 
| --- | --- | 
| `server-name` | O servidor. | 
| `schema-name` | Um esquema. | 
| `table-name` | Uma tabela, exibição ou tabela temporária global; use `table-type` para distinguir. | 
| `table-type` | `"table"`(padrão) ou`"view"`. | 
| `procedure-name` | Um procedimento armazenado ou um procedimento externo. | 
| `function-name` | Uma função (embutida, escalar, de origem, tabela ou função externa). | 
| `sequence-name` | Uma sequência. | 
| `alias-name` | Um pseudônimo. Sem modelo de destino do PostgreSQL; use com. `StartMetadataModelExportAsScript` `Origin: SOURCE` | 
| `mqtable-name` | Uma tabela de consulta materializada (MQT). Nenhum modelo de destino do PostgreSQL. | 
| `type-name` | Um tipo definido pelo usuário (tipo distinto ou tipo estruturado). Nenhum modelo de destino do PostgreSQL. | 
| `category-name` | Uma classe de objeto. Use para atingir uma categoria inteira de objetos; consulte[Nomes de categorias por motor](#dms-sc-category-names). | 

------
#### [ IBM Db2 LUW ]


| Chave | Seleciona | 
| --- | --- | 
| `server-name` | O servidor. | 
| `schema-name` | Um esquema. | 
| `table-name` | Uma tabela ou uma exibição; use `table-type` para distinguir. | 
| `procedure-name` | Um procedimento armazenado. | 
| `function-name` | Uma função (função escalar, de origem ou de tabela). | 
| `sequence-name` | Uma sequência. | 
| `module-name` | Um módulo. | 
| `category-name` | Uma classe de objeto. Use para atingir uma categoria inteira de objetos; consulte[Nomes de categorias por motor](#dms-sc-category-names). | 

------

## Nomes de categorias por motor
<a name="dms-sc-category-names"></a>

O `category-name` valor em uma regra de seleção tem como alvo uma classe de objeto inteira em vez de objetos individuais. Os nomes das categorias são específicos do mecanismo e diferenciam maiúsculas de minúsculas. A aceitação de uma operação `category-name` depende da operação — verifique a [Referência da AWS API](https://docs.aws.amazon.com/dms/latest/APIReference/API_Operations.html) da operação que você está usando. As guias abaixo abrangem os mecanismos de origem e de destino.

**Importante**  
Enviar um nome de categoria de um mecanismo para um projeto configurado para um mecanismo diferente retorna um erro. 

------
#### [ SQL Server ]

Os nomes das categorias a seguir se aplicam às fontes do Microsoft SQL Server.


| Valor do `category-name` | O que ele agrupa | 
| --- | --- | 
| `Tables` | Tabelas de base. | 
| `Views` | Visualizações. | 
| `Procedures` | Procedimentos armazenados. | 
| `SQL scalar functions` |  T-SQL Funções escalares. | 
| `SQL table-valued functions` | Multi-statement funções com valor de tabela. | 
| `SQL inline functions` | Funções embutidas com valor de tabela. | 
| `Aggregate functions` | User-defined funções agregadas. | 
| `Synonyms` | T-SQL sinônimos. | 
| `Sequences` | Objetos de sequência. | 
| `Types` | Coleções de esquemas XML e tipos de colunas. | 
| `Table types` | Table-typed declarações de parâmetros. | 
| `User-Defined Types` | Tipos de alias e CLR definidos pelo usuário. | 
| `XML Schema Collections` | Coleções de esquemas XML. | 

------
#### [ Oracle ]

Os nomes das categorias a seguir se aplicam às fontes da Oracle.


| Valor do `category-name` | O que ele agrupa | 
| --- | --- | 
| `Tables` | Mesas. | 
| `External Tables` | Tabelas externas. | 
| `Views` | Visualizações. | 
| `Packages` | PL/SQL especificações e corpos da embalagem. | 
| `Procedures` | Procedimentos armazenados. | 
| `Functions` | Todas as funções do usuário, incluindo escalar e canalizada. | 
| `User Defined Types` | Tipos de objetos. | 
| `Collection Types` | Tipos VARRAY e tabela aninhada. | 
| `Sequences` | Sequências. | 
| `Materialized Views` | Visões materializadas. | 
| `Materialized View Logs` | Materialized-view registros de alterações. | 
| `Synonyms` | Sinônimos públicos e privados. | 
| `Clusters` | Clusters de índice e hash. | 
| `Database Links` | Links de banco de dados. | 

------
#### [ SAP ASE (Sybase ASE) ]

Os nomes das categorias a seguir se aplicam às fontes do SAP ASE (Sybase ASE).


| Valor do `category-name` | O que ele agrupa | 
| --- | --- | 
| `Tables` | Tabelas de base. | 
| `Views` | Visualizações. | 
| `Procedures` | Procedimentos armazenados. | 
| `Scalar Functions` |  T-SQL Funções escalares. | 
| `Table Valued Functions` | Table-valued funções. | 
| `Materialized Views` | Visões materializadas. | 
| `User Defined Types` | Tipos de aliases definidos pelo usuário. | 
| `Defaults` | Objetos padrão vinculados. Describe-only; não pode ser convertido de forma independente. | 

------
#### [ PostgreSQL ]

Os nomes de categoria a seguir se aplicam aos destinos PostgreSQL e Aurora PostgreSQL.


| Valor do `category-name` | O que ele agrupa | 
| --- | --- | 
| `Tables` | Tabelas de base. | 
| `Views` | Visualizações. | 
| `Functions` | Funções. | 
| `Procedures` | Procedimentos armazenados. | 
| `Sequences` | Sequências. | 
| `Materialized Views` | Visões materializadas. | 
| `Types` | User-defined tipos. | 
| `Domains` | Domínios. | 

------
#### [ MySQL ]

Os nomes das categorias a seguir se aplicam aos destinos do MySQL e do Aurora MySQL.


| Valor do `category-name` | O que ele agrupa | 
| --- | --- | 
| `Tables` | Tabelas de base. | 
| `Views` | Visualizações. | 
| `Functions` | Funções. | 
| `Procedures` | Procedimentos armazenados. | 
| `Events` | Eventos. | 

------
#### [ IBM Db2 for z/OS ]

Os seguintes nomes de categorias se aplicam ao IBM Db2 para z/OS fontes.


| Valor do `category-name` | Chave localizadora | O que ele agrupa | 
| --- | --- | --- | 
| `Tables` | `table-name` \+ `"table-type": "table"` | Tabelas de base. | 
| `Global Temporary Tables` | `table-name` \+ `"table-type": "table"` | Tabelas temporárias globais. Nenhum modelo de destino do PostgreSQL. | 
| `Materialized Query Tables` | `mqtable-name` | Tabelas de consulta materializadas (MQTs). Nenhum modelo de destino do PostgreSQL. | 
| `Views` | `table-name` \+ `"table-type": "view"` | Visualizações. | 
| `Aliases` | `alias-name` | Pseudônimos. Nenhum modelo de destino do PostgreSQL. | 
| `Procedures` | `procedure-name` | Procedimentos armazenados. | 
| `Functions` | `function-name` | Todos os subtipos de função: escalar, tabela, embutida, originada. | 
| `Sequences` | `sequence-name` | Sequências. | 
| `User Defined Types` | `type-name` | Tipos distintos e tipos estruturados. Nenhum modelo de destino do PostgreSQL. | 
| `External Routines` | `function-name` / `procedure-name` | Funções externas e procedimentos externos. | 

------
#### [ IBM Db2 LUW ]

Os nomes de categoria a seguir se aplicam aos destinos do IBM Db2 LUW.


| Valor do `category-name` | O que ele agrupa | 
| --- | --- | 
| `Tables` | Tabelas de base. | 
| `Views` | Visualizações. | 
| `Functions` | Funções (escalares, de origem, tabela). | 
| `Procedures` | Procedimentos armazenados. | 
| `Sequences` | Sequências. | 
| `Modules` | Módulos. | 

------

## Exemplos de regras de seleção
<a name="dms-sc-selection-rule-examples"></a>

Os exemplos a seguir mostram como criar regras de seleção para cenários comuns de migração. Cada exemplo usa o valor do `--selection-rules` parâmetro que você passaria para as operações da API de conversão de esquema do DMS, como `StartMetadataModelConversion` ou. `StartMetadataModelAssessment`

### Selecionar uma única tabela (Microsoft SQL Server)
<a name="dms-sc-selection-rule-example-single-table"></a>

Selecione uma tabela específica para conversão de uma fonte do Microsoft SQL Server. O Microsoft SQL Server requer`database-name`, além de`schema-name`.

```
{
  "rules": [
    {
      "rule-type": "selection",
      "rule-id": "1",
      "rule-name": "{{rule_name}}",
      "rule-action": "explicit",
      "object-locator": {
        "server-name": "{{source_server}}",
        "database-name": "{{database_name}}",
        "schema-name": "{{schema_name}}",
        "table-name": "{{table_name}}"
      }
    }
  ]
}
```

### Selecionar um esquema inteiro (Oracle)
<a name="dms-sc-selection-rule-example-whole-schema"></a>

Selecione todos os objetos em um esquema Oracle omitindo a chave no nível do objeto. O Oracle não tem `database-name` nível; o esquema é o contêiner superior abaixo`server-name`.

```
{
  "rules": [
    {
      "rule-type": "selection",
      "rule-id": "1",
      "rule-name": "{{rule_name}}",
      "rule-action": "explicit",
      "object-locator": {
        "server-name": "{{source_server}}",
        "schema-name": "{{schema_name}}"
      }
    }
  ]
}
```

### Selecione uma visualização (Oracle)
<a name="dms-sc-selection-rule-example-view"></a>

As visualizações do Oracle são tratadas usando `table-name` com`"table-type": "view"`. Não há `view-name` chave separada.

```
{
  "rules": [
    {
      "rule-type": "selection",
      "rule-id": "1",
      "rule-name": "{{rule_name}}",
      "rule-action": "explicit",
      "object-locator": {
        "server-name": "{{source_server}}",
        "schema-name": "{{schema_name}}",
        "table-name": "{{view_name}}",
        "table-type": "view"
      }
    }
  ]
}
```

### Selecione um procedimento armazenado (IBM Db2 for z/OS)
<a name="dms-sc-selection-rule-example-procedure-db2"></a>

Selecione um procedimento armazenado específico de um IBM Db2 para z/OS origem. O IBM Db2 é z/OS usado `procedure-name` e vai diretamente de `server-name` para, `schema-name` sem nenhum `database-name` nível.

```
{
  "rules": [
    {
      "rule-type": "selection",
      "rule-id": "1",
      "rule-name": "{{rule_name}}",
      "rule-action": "explicit",
      "object-locator": {
        "server-name": "{{source_server}}",
        "schema-name": "{{schema_name}}",
        "procedure-name": "{{procedure_name}}"
      }
    }
  ]
}
```

### Selecionar todos os procedimentos em um esquema (SAP ASE)
<a name="dms-sc-selection-rule-example-all-procedures"></a>

Selecione cada procedimento em um esquema SAP ASE (Sybase ASE) usando `%` como curinga para. `procedure-name` O SAP ASE (Sybase ASE) requer `database-name` entre `server-name` e. `schema-name`

```
{
  "rules": [
    {
      "rule-type": "selection",
      "rule-id": "1",
      "rule-name": "{{rule_name}}",
      "rule-action": "include",
      "object-locator": {
        "server-name": "{{source_server}}",
        "database-name": "{{database_name}}",
        "schema-name": "dbo",
        "procedure-name": "%"
      }
    }
  ]
}
```

### Selecionar tabelas por padrão curinga (Microsoft SQL Server)
<a name="dms-sc-selection-rule-example-wildcard"></a>

Use `%` para combinar várias tabelas por prefixo. Este exemplo seleciona todas as tabelas cujos nomes começam com`Fact_`.

```
{
  "rules": [
    {
      "rule-type": "selection",
      "rule-id": "1",
      "rule-name": "{{rule_name}}",
      "rule-action": "include",
      "object-locator": {
        "server-name": "{{source_server}}",
        "database-name": "{{database_name}}",
        "schema-name": "dbo",
        "table-name": "Fact_%"
      }
    }
  ]
}
```

### Incluir um esquema e excluir objetos por prefixo (Oracle)
<a name="dms-sc-selection-rule-example-include-exclude"></a>

Inclua todos os objetos em um esquema Oracle e, em seguida, exclua todas as tabelas cujos nomes comecem com`TMP_`. As regras são avaliadas em `rule-id` ordem; têm `exclude` precedência quando coincidem.

```
{
  "rules": [
    {
      "rule-type": "selection",
      "rule-id": "1",
      "rule-name": "{{rule_name}}",
      "rule-action": "include",
      "object-locator": {
        "server-name": "{{source_server}}",
        "schema-name": "{{schema_name}}"
      }
    },
    {
      "rule-type": "selection",
      "rule-id": "2",
      "rule-name": "{{rule_name}}",
      "rule-action": "exclude",
      "object-locator": {
        "server-name": "{{source_server}}",
        "schema-name": "{{schema_name}}",
        "table-name": "TMP_%"
      }
    }
  ]
}
```

### Selecione vários procedimentos explícitos (Microsoft SQL Server)
<a name="dms-sc-selection-rule-example-multi-explicit"></a>

Use várias `explicit` regras em um único documento para selecionar um conjunto específico de procedimentos por nome.

```
{
  "rules": [
    {
      "rule-type": "selection",
      "rule-id": "1",
      "rule-name": "{{rule_name}}",
      "rule-action": "explicit",
      "object-locator": {
        "server-name": "{{source_server}}",
        "database-name": "{{database_name}}",
        "schema-name": "dbo",
        "procedure-name": "PROC_A"
      }
    },
    {
      "rule-type": "selection",
      "rule-id": "2",
      "rule-name": "{{rule_name}}",
      "rule-action": "explicit",
      "object-locator": {
        "server-name": "{{source_server}}",
        "database-name": "{{database_name}}",
        "schema-name": "dbo",
        "procedure-name": "PROC_B"
      }
    },
    {
      "rule-type": "selection",
      "rule-id": "3",
      "rule-name": "{{rule_name}}",
      "rule-action": "explicit",
      "object-locator": {
        "server-name": "{{source_server}}",
        "database-name": "{{database_name}}",
        "schema-name": "dbo",
        "procedure-name": "PROC_C"
      }
    }
  ]
}
```

### Incluir por prefixo, excluir por nome (Microsoft SQL Server)
<a name="dms-sc-selection-rule-example-include-exclude-proc"></a>

Use uma `include` regra para corresponder a cada procedimento cujo nome comece com e`PROC_`, em seguida, uma `exclude` regra para `PROC_TEST` remover desse conjunto. Uma `exclude` regra deve seguir uma `include` regra; uma regra autônoma não `exclude` tem efeito.

```
{
  "rules": [
    {
      "rule-type": "selection",
      "rule-id": "1",
      "rule-name": "{{rule_name}}",
      "rule-action": "include",
      "object-locator": {
        "server-name": "{{source_server}}",
        "database-name": "{{database_name}}",
        "schema-name": "dbo",
        "procedure-name": "PROC_%"
      }
    },
    {
      "rule-type": "selection",
      "rule-id": "2",
      "rule-name": "{{rule_name}}",
      "rule-action": "exclude",
      "object-locator": {
        "server-name": "{{source_server}}",
        "database-name": "{{database_name}}",
        "schema-name": "dbo",
        "procedure-name": "PROC_TEST"
      }
    }
  ]
}
```