2016-12-16 1 views
0

Je dois modifier la largeur de champ SQL pour les colonnes des tables système _aud-audit-data et _aud-audit-data-value. Est-ce possible dans l'interface du dictionnaire de données?OpenEdge SQL Field Width sur les tables système

Ou y a-t-il une autre façon de faire cela?

Répondre

0

Avant 11.6, utiliser dbtool est la méthode standard pour ajuster la largeur SQL. Il est rapide, sûr et efficace:

http://knowledgebase.progress.com/articles/Article/P24496

Vous pouvez également utiliser le dictionnaire de données ou le code SQL pour mettre à jour le champ de largeur SQL dans le schéma méta directement, mais non recommandé.

À partir de la version OpenEdge 11.6 un nouveau paramètre de démarrage de la base de données a été introduite:

-SQLWidthUpdate SUR

qui peut corriger automatiquement la largeur SQL de caractères types de données (pas pour les types de données numériques).

Plus d'informations sur cette nouvelle fonctionnalité est disponible ici:

https://community.progress.com/community_groups/openedge_rdbms/f/18/t/19534

+0

Merci pour la réponse Tom - un long paramètre en retard à mes yeux ... Savez-vous si je devrais être en mesure de modifier la largeur du champ SQL pour les tables système? – Drammy

+0

Je ne sais pas désinvolte. D'une part je ne vois pas pourquoi pas. D'un autre côté, j'ai du mal à comprendre pourquoi vous voulez. Et d'une part, j'hésite généralement à modifier les tables système. –

+0

Je souhaite augmenter la largeur de l'événement-détail dans la table de données d'audit afin qu'il puisse gérer les valeurs de taille nvarchar (max) avant que l'application que j'audite (très rapidement) souffle la limite de champ après l'activation de l'audit. – Drammy

0

Il y a beaucoup d'informations à ce sujet dans le Knowledgebase.

Vous pouvez le faire par SQL:

http://knowledgebase.progress.com/articles/Article/P128368

Il y a un utilitaire appelé "DBTool" que vous pouvez peut-être utiliser. http://knowledgebase.progress.com/articles/Article/P24496

Note: vous pourriez avoir à préfixer les tables avec PUB-à-dire:

ALTER TABLE PUB.<table name> 
    ALTER COLUMN <column name> 
    SET PRO_SQL_WIDTH <value>; 

(code pris à partir du lien ci-dessus, non testé).

+0

Oui, je l'ai dit que je l'ai lu le bien informé et ont échoué à mettre à jour la largeur du champ sql sur les tables système. Et DBTool ne fonctionne que si une colonne a déjà débordé - je veux éviter de ne pas réagir ... – Drammy

+0

Peut-être que la réponse de Toms peut aider? – Jensd