2010-10-23 4 views
4

This est un article wiki très intéressant sur les programmes qui impriment leur propre code source sans aucun accès au fichier source physique (dans le système de fichiers). Les exemples dans les articles incluent des programmes C et Scheme quine (oui, il semble qu'ils s'appellent comme ça). Je me souviens de quelqu'un qui me demandait depuis longtemps (environ 5 ans) si je pouvais écrire une requête SQL qui "se retourne". Je l'avais peu réfléchi à l'époque (pour être parfaitement honnête, je n'y avais pas réfléchi du tout). Mais après avoir lu cet article, j'ai rappelé cette chose. Maintenant, je tiens à dire que la personne qui a posé ce problème n'est pas crédible à 100%, car il est pratiquement possible qu'il n'ait aucune idée de ce dont il parlait. Mais peut-être que c'est possible? Donc, est-ce que quelqu'un sait s'il existe des requêtes SQL quine, quoi que "se retourner" puisse signifier dans ce contexte. Merci.quine (auto-production) requête SQL

+0

Wiki de la communauté ... – fredley

+0

@fredley: Maintenant, c'est la communauté wiki nit. C'est une question de programmation qui a une réponse correcte. Soit "non, ce n'est pas possible (espérons avec un lien vers la preuve)" ou "oui, il existe une requête quine." Ici, c'est: "... –

+1

Google a des exemples. Vous devriez utiliser Google de temps en temps. C'est très utile pour ce genre de chose. http://blogs.msdn.com/b/khen1234/archive/2005/10/26/485477.aspx –

Répondre

7

version SQL Server, de here:

SELECT REPLACE(REPLACE('SELECT REPLACE(REPLACE("$",CHAR(34),CHAR(39)),CHAR(36),"$") AS Quine',CHAR(34),CHAR(39)),CHAR(36),'SELECT REPLACE(REPLACE("$",CHAR(34),CHAR(39)),CHAR(36),"$") AS Quine') AS Quine

2

Oracle version:

SELECT REPLACE(REPLACE('SELECT REPLACE(REPLACE("$",CHR(34),CHR(39)),CHR(36),"$") AS Quine FROM dual',CHR(34),CHR(39)),CHR(36),'SELECT REPLACE(REPLACE("$",CHR(34),CHR(39)),CHR(36),"$") AS Quine FROM dual') AS Quine FROM dual