Teradata: Est-il un moyen de générer de DDL à partir d'une vue ou d'une instruction select?

Je suis à l'aide d'une application globale de compte d'utilisateur pour accéder à la base de données A. Ce compte d'utilisateur n'a pas les autorisations pour modifier la base de données du schéma (c'est à dire, créer des tables, modifier des tables, etc). Cet utilisateur a également accès à la base de données B, mais seulement des points de vue. J'ai besoin d'exécuter SQL pour flux de données à partir d'une vue de la base de données B dans une table de la base de données A.

Dans un monde parfait, je serais en mesure d'utiliser cette SQL:

create database_a.mytable as (select * from database_b) with no data

Cependant, l'utilisateur ne peut pas créer des tables dans la base de données A. Si je pouvais obtenir le DDL de l'instruction select puis, j'ai pu connecter sous mon compte personnel (qui n'ont pas accès à la base de données B) et exécutez le DDL dans Une base de données pour créer la table.

La seule autre option est d'écrire manuellement le SQL, mais je ne veux pas le faire, surtout depuis ce point de vue, je suis désireux de copie a beaucoup de colonnes de divers types de données et de tailles.

Edit: j'ai peut-être se rapprocher. Je viens expérimenté ce:

show (select * from database_b.myview)

Cependant, il a généré la DLL de chaque table qui est utilisée dans la vue elle-même, ainsi que la définition de la vue. Ce n'est pas vraiment m'aider car je veux juste le schéma de l'instruction select. En d'autres termes, j'ai besoin de ce que pourrait être générée si je devais utiliser le create table as déclaration mentionnée ci-dessus.

Modifier pour Rob: peut-être de "DDL" était pas le bon terme à utiliser. À l'aide de show view db.myview montre juste la définition de la vue, de ne pas le schéma qu'il représente. Dans mon exemple ci-dessus de create table as, je montre comment vous pouvez créer un tableau qui reproduit le schéma d'un ensemble de résultats retournés dans un select. Elle génère le DDL sur le back-end pour la création d'une table, puis l'exécute DDL pour créer le tableau. Vous pouvez ensuite dire show table db.newtable et de voir la nouvelle table DDL. Je veux obtenir que DDL directement à partir d'une instruction select pour que je puisse le copier, le journal de l'app compte, dans mon compte personnel, puis d'exécuter le script DDL pour créer la table.

Ce n'est que pour m'épargner les maux de tête d'avoir à taper le DDL manuellement en main pour gagner du temps et de réduire les erreurs de frappe, surtout depuis la vue de la source a donc de nombreuses colonnes. Cela dit, je pense que de frapper le DBA ou l'écriture de certains snazzy procédure stockée pour faire dynamique choses devraient être un peu plus haut pour mes besoins. Je pense qu'il doit y avoir moyen de le DDL pour la création d'un schéma de table directement à partir d'une instruction select.

OriginalL'auteur oscilatingcretin | 2012-10-16