Bonjour tout le monde.
Mon nom est Pierre Monsieur.
Je suis avec Janssen Pharmaceutique,
et aujourd'hui Je suis en allant à parler à toi
à propos comment combinant JMP et Oracle peut plomb à un heureux mariage.
je travail pour Janssen R&D.
Étaient un entièrement- filiale détenue de Johnson et Johnson,
et notre charte est à découvrir et développer
innovant médicaments et solutions que transformer personnes vies
et résoudre le la plupart important médical non satisfait besoins de notre temps.
Dans que monde,
Je suis dans le Mondial Médical Sécurité Département,
et notre charte est à protéger les patients par conduite
robuste médical sécurité excellence et avantage -risque évaluation.
Et alors dans que département,
Je suis dans un groupe appelé Méthodes et Analyse,
et notre but est à développer et mettre en œuvre analytique outils
à augmenter efficacité et analytique aptitude
à détecter et évaluer sécurité signaux.
Encore, mon nom est Pierre Mroz et j'ai a été un JMP utilisateur depuis 2007.
Standard Clause de non-responsabilité.
Ces sont mon vues
et faire pas impliquer n'importe lequel approbation de n'importe lequel produit par Janssen ou J. &J.
Voici notre ordre du jour pour aujourd'hui.
Je suis en allant à donner un introduction
et alors Bien saut droite dans Oracle des choses.
Bien parler à propos ODBC, configuration le Oracle client,
le ODBC connexion chaîne, apportant données depuis Oracle dans JMP,
et alors en écrivant données dos à Oracle depuis JMP,
alors rapide données insertion, plus rapide données chargement,
alors exécution un Oracle PL /SQL procédures,
cache le mots de passe, erreur le piégeage,
bâtiment DANS les listes,
et saupoudré tout au long de, j'ai a obtenu quelques divers conseils.
Donc mon département est appelé Mondial Médical Sécurité,
et nous collecter, processus, et rapport et analyser négatif événement données
pour le médicinal des produits que nous produire.
Ils sont surtout spontané cas,
bien que là sont quelques clinique procès cas.
Ces sont appelé poste -commercialisation.
Ils sont un homme ou femme dans le rue, marche vers le bas le rue,
et toi expérience quelques trier de médicament côté effet,
et toi appel il dans notre appel centre
et nous courir il à travers notre processus et magasin il dans Oracle.
Notre volume est à propos 5 000 cas un jour, et un cas consiste de un personne...
Ils sont pas un patient, ils sont pas dans un clinique procès.
C'est un personne, le drogues ils a pris,
le événements ils expérimenté, le côté effets ils expérimenté,
peut être quelques médical histoire, et nous magasin quelque chose appelé un narratif.
Et voici un exemple, patient narratif.
S sujet avait cancer,
lequel était diagnostiqué dans Juin 1998, et cetera, et cetera.
C'est un longue histoire à propos le patient et le côté effets,
et ce est très important pour notre surveillance médecins
et autre scientifiques à regarder à.
Ce est stocké comme un [inaudible 00:02:52] dans Oracle, par le chemin.
JMP, comme nous tous savoir,
est super à statistique analyse et visualisation.
Oracle est super à données stockage et transactionnel traitement.
Notre utilisateurs vouloir à analyser et visualiser données depuis Oracle en utilisant JMP.
Principalement, nous regarder à tabulaire rapports de sécurité données,
résumé information, patient narratif percer des bas,
et nous faire quelques visualisation de sécurité données
via tendance ou forêt des parcelles.
Avec tous que,
JMP et Oracle ensemble faire un heureux mariage.
Bien commencer par parler à propos ODBC,
lequel des stands pour Ouvrir Base de données Connectivité.
ODBC Conducteurs accéder le base de données en utilisant SQL.
SQL des stands pour Structuré Requête langue.
Donc le ODBC conducteur permet un JMP client logiciel
à communiquer avec le Oracle base de données.
Le d'abord chose toi avoir à faire est installer le Oracle client sur le PC.
Ce est un exercice gauche à le lecteur.
C'est pas un Didacticiel sur installation ce, donc toi peut Google il.
Cependant, une fois vous avez installée il,
là sont un couple de des choses toi besoin à fournir pour le Oracle client.
Toi besoin à définir deux environnement variables.
Un est ORACLE_ MAISON, le autre est TNS _ADMIN.
Donc ORACLE_HOME points à un dossier où le client est en fait installée.
Ici, c'est dans C,Oracle , 19 , client _1.
Et alors toi vouloir à inclure le poubelle annuaire
dans le chemin environnement variable.
Donc dans ce cas, c'est le ORACLE_HOME avec le bac à barres obliques.
Le TNS_ADMIN points à le emplacement de NOMS TNS. ORA,
-Je vais expliquer quoi que est dans un deuxième-
et c'est typiquement situé
dans le réseau administrateur chemin dessous le ORACLE_HOME .
Voici un indice;
toi peut indiquer ce TNS_ADMIN variable à un déposer partager emplacement
donc plusieurs utilisateurs peut tous indiquer à ce déposer
et c'est Plus facile à maintenir un version de TNSNAMES.ORA.
Quoi exactement est TNSNAMES.ORA?
C'est un configuration déposer.
C'est comme un secrète décodeur anneau,
il traduit entre un base de données alias et information nécessaire
par le Oracle client à parler à ton base de données.
Voici mon exemple; mon alias est MYDEVDB,
et alors voici mon description
pour comment à connecter MYDEVDB à mon Oracle base de données.
Avec que complété,
maintenant nous besoin à déterminer un ODBC connexion chaîne,
et le le plus simple chemin à faire ce est à Cliquez sur le les fenêtres bouton et taper ODBC,
et nous vouloir à correspondre le trappe.
Pour 64 -peu JMP, nous vouloir le 64 bits ODBC données sources.
Pour 32 -peu JMP, nous vouloir le 32- peu ODBC données sources.
je avoir 64 bits JMP,
donc je cliqué que et je apporter en haut ce écran ici,
et je Cliquez sur sur le Conducteurs languette,
et ici sont le Conducteurs pour ODBC que sont installée sur mon système.
je avoir trois Oracle clients et un SQL Serveur.
je avoir le Oracle client version 11, 12, et 19,
donc je vais cliquer sur ce Oracle version 19 conducteur,
et toi vouloir à faire note de ce; Oracle dans Ora Client19 Maison 1.
C'est tous toi besoin à savoir.
Maintenant nous avoir notre ODBC connexion chaîne.
Nous combiner que comme donc avec conducteur équivaut à que chaîne,
DBQ équivaut à notre base de données alias.
UID équivaut à ton nom d'utilisateur, Personne handicapée équivaut à ton mot de passe.
Donc voici un pleinement -formé ODBC connexion chaîne.
Conducteur équivaut à mon Oracle 19 conducteur. DBQ est MYDEVDB,
nom d'utilisateur est MON NOM D'UTILISATEUR, mot de passe est MON MOT DE PASSE.
D'accord, maintenant que étaient tous configuré, nous peut apporter données dans JMP.
Là sont plusieurs façons à obtenir Oracle données dans JMP.
Là e Ouvrir Base de données, Exécuter SQL , Nouveau SQL Requête, et Requête Constructeur,
lequel est sous le Déposer Base de données menu.
Ce parler volonté se concentrer exclusivement sur Exécuter SQL
parce que toi peut créer un base de données connexion
et alors toi peut exécuter
plusieurs SQL commandes avec Exécuter SQL et alors fermer le base de données connexion.
Si toi comparer que à Ouvrir Base de données, Ouvrir Base de données dans un appel,
ouvre le connexion,
court un SQL commande, se ferme le connexion.
Donc si toi avoir 20 SQL déclarations,
tu es ouverture et fermeture le connexion 20 fois,
alors que avec Exécuter SQL, toi seulement ouvrir il une fois,
exécuter ton 20 commandes avec 20 exécuter SQL commandes,
et alors fermer le base de données connexion, donc il vitesses des choses en haut.
Dans le script indice, ce est quoi Exécuter SQL regards comme.
Il prend le suivant arguments;
il y a un base de données connexion poignée lequel est là,
défini par ton connexion chaîne.
Il y a soit un SÉLECTIONNER déclaration ou un SQLFILE est égal à déclaration,
ou un SQL DÉPOSER équivaut à un aiguille à un déposer contenant ton SQL commandes.
Un invisible mot-clé, si toi fournir un tableau Nom,
c'est équivalent à en disant SÉLECTIONNER étoile depuis tableau Nom,
et alors un sortir Tableau Nom fournit le nom pour le JMP données ensemble
et Exécuter SQL Retour, aiguille à un tableau
si tu es délivrance un SÉLECTIONNER déclaration , lequel Retour un données ensemble.
Voici un exemple;
je avoir mon connexion chaîne, conducteur équivaut à Oracle dans Ora Client19 Maison 1,
MYDEVDB, mon nom d'utilisateur, mon mot de passe.
Je suis l'appeler créer base de données connexion avec ce chaîne.
j'ai a obtenu mon SQL déclaration ici,
Je suis sélection quelques Colonnes depuis un tableau appelé eba_sales _VRP,
et Je suis qui passe mon connexion, mon SQL déclaration,
et alors un titre pour le tableau à exécuter SQL,
alors Je suis fermeture le base de données connexion.
Voici mon tableau je rendu depuis Oracle.
Il est sept heures Colonnes, 20 Lignes.
Voici le d'abord conseil,
et que est si toi avoir un chaîne avec un célibataire citation à l'intérieur il,
dans commande à utiliser il avec Oracle,
toi avoir à remplacer que célibataire citation avec deux célibataire citations comme ce.
Ici, mon SQL déclaration est SÉLECTIONNER étoile depuis mon _tableau moi,
où m nom équivaut à O'Malley,
et depuis ce est à l'intérieur le chaîne, je avoir à remplacer il avec deux citations.
Voici le deuxième conseil;
utiliser colonne pseudonymes pour lisibilité.
Ces sont mon colonne pseudonymes, donc voici mon colonne,
et alors dans double citations, j'ai a obtenu un alias.
Toi avis c'est mixte cas,
là sont les espaces dans là, il fait du il plus lisible.
Voici mon tableau avec le plus lisible colonne en-têtes.
Le autre chose à propos ce est,
Je suis en utilisant barre oblique inverse ouvrir carré support, fermer carré support barre oblique inverse
à éviter le besoin à s'échapper mon double citations.
Toi avis j'ai a obtenu double citation ici,
alors j'ai a obtenu mon barre oblique inverse ouverte carré support,
et alors j'ai a obtenu double citations,
et alors je fermer il dehors ici donc il regards un parcelle nettoyeur.
Quoi si toi vouloir à écrire données dos à Oracle?
Toi peut problème un MISE À JOUR déclaration ou un INSÉRER déclaration.
Ici est mon MISE À JOUR déclaration, et Je suis simplement définition que,
qui passe à un variable, et alors qui passe à Exécuter SQL.
je mets à jour le tableau,
paramètre le dernier nom à Forgeron où le d'abord nom est Suédois.
Ou ici Je suis insertion un nouveau enregistrer dans ce tableau
et Je suis paramètre le valeur de ces des champs à le valeurs montré ici.
Un chose à note à propos MISE À JOUR et INSÉRER
est Exécuter SQL fait un implicite COMMETTRE pour ces commandes,
donc toi ne le faites pas besoin à faire un COMMETTRE toi-même.
Un chose à propos INSÉRER,
si toi avoir plusieurs INSÉRER déclarations à exécuter,
ils peut être lent,
donc je trouvé un alternative lequel est INSÉRER TOUT.
Voici un exemple où Je suis insertion dans ce tableau.
Le colonne est appelé échantillon _nombre
et Je suis insertion dix valeurs tous à une fois avec un déclaration.
Le seulement bizarre chose est,
toi avoir à mettre quelque chose comme SÉLECTIONNER 1 DEPUIS DOUBLE
à le fin de il et alors il travaux.
Allons voir que dans action.
je vouloir à insérer 100 Lignes un par un et comparez-le à 100 Lignes tous à une fois.
je avoir un petit exemple ici, allons aller devant et courir il.
Donc il a pris 8 secondes à faire un à un temps contre 0,15 pour INSÉRER TOUT,
et donc il était 52 fois plus rapide.
Allons regarder à le code un petit peu.
Nous avoir fabrication un connexion, troncature un tableau.
Voici mon un à un temps.
je avoir mon Exécuter SQL à l'intérieur mon boucle,
et par le chemin, Je suis boucle un cent fois.
Ici, Exécuter SQL est à l'intérieur le boucle, et vers le bas ici pour INSÉRER TOUT,
Je suis départ avec INSÉRER TOUT
et je garder ajouter dans le tableau, des champs, valeurs.
Garder ajouter que,
et alors je seulement courir un SQL commande.
Et si je regarder à ce commande, tu peux voir que c'est joli lourd.
Voici mon SQL déclaration.
C'est très long, mais il a pris 0 .15 secondes à courir.
INSÉRER TOUT dans TEST IMPORTER,
champ des noms, valeurs, dans, dans, dans.
D'accord.
Allons aller dos à glisser mode.
Quoi si toi avoir
plus que un millier Lignes à insérer dans ton base de données?
Quoi si toi avoir 10 000 Lignes ou 50 000 Lignes?
Toi peut utiliser un outil depuis Oracle appelé Chargeur SQL pour plus rapide données chargement.
Chargeur SQL a besoin un données déposer lequel peut être virgule séparé,
languette -délimité, fixé format, et un contrôle déposer.
Le contrôle déposer décrit
le structure de le données déposer et le cible tableau,
et étaient en allant à ajouter un autre couche sur ce
parce que étaient en allant à faire tous ce depuis dans JSL.
Je suis en allant à créer un commande déposer
lequel court Chargeur SQL dans un commande fenêtre.
Il aussi génère le contrôle et commande des dossiers en utilisant JSL,
et Je vais utiliser courir programme à exécuter le déposer.
Voici mon déposer.
C'est très passionnant,
c'est six Colonnes, quatre Lignes et c'est languette délimité.
Ici Je suis montrant le révéler code, donc ce est mon languette personnage,
et voici mon exemple.
j'ai a obtenu paramètre quelques variables,
et ici Je suis créer mon contrôle déposer
et Je suis en utilisant évaluer insérer à faire ces variables,
-entouré par le petit carets— convertir à leur valeurs en haut ici.
Importer _déposer nom volonté être test_import.txt, dest_table volonté être TEST_IMPORT.
Des champs sont terminé par languette, en fait enfermé par double citations.
Voici mon six des champs,
et Je suis ajouter un couple de autre des champs, date _chargé et nom d'utilisateur _chargé.
Date _chargé volonté être le système date.
Le nom d'utilisateur _chargé volonté être le compte nom
de le personne en cours d'exécution il.
Je suis économie ce déposer dehors à le annuaire
et Je suis créer un commande déposer à courir Chargeur SQL.
Paramètre mon conduire à le C conduire, ensemencement dans ce annuaire,
et puis voici mon commande;
Chargeur SQL utilisateur IDENTIFIANT équivaut à mon informations d'identification à mon base de données nom,
et voici mon contrôle déposer, mon enregistrer déposer.
Et si toi avis,
je avait à ajouter ces barre oblique inverse point d'exclamation capital N.
Ces sont dur Retour.
Pour quelques raison, il n'a pas travail sans ces dans là,
donc je avait à ajouter ceux dans pour le commande déposer à travail.
Je sauve il,
et alors Je suis en cours d'exécution il ici avec courir programme.
Alors Je suis vérification le résultats.
Si il fait pas contenir rangée avec succès chargé dans le sortir,
alors je afficher un erreur message et afficher le sortir depuis exécuter SQL charger.
Si il était réussi,
alors je charger le enregistrer déposer dans et afficher que.
Voici mon enregistrer déposer.
J'en ai environ quatre Lignes avec succès chargé dans 1,5 secondes.
je vouloir à faire un démo de six Colonnes avec 30 000 les enregistrements,
et allons courir que un.
Je suis chargement dans le même tableau, je tronque le tableau,
et Je suis en cours d'exécution Chargeur SQL, charger le données déposer.
C'est le même contrôle déposer.
Quand c'est tous fait,
c'est en allant à afficher le sortir depuis le enregistrer déposer.
Voici le sortir.
j'ai a obtenu 30 000 Lignes avec succès chargé.
Non Lignes étaient pas chargé exigible à données les erreurs et il a pris 16 secondes.
Que était 30 000 Lignes, et nous peut regarder à que données.
Ici je suis dans un outil appelé PL/SQL Développeur.
SÉLECTIONNER étoile depuis le tableau et voici mon valeurs,
voici mon date chargé, lequel est aujourd'hui,
mon nom d'utilisateur,
et c'est en allant à sélectionner tous le Lignes.
Je laisserai que courir.
D'accord, donc voici un regarder à le données déposer, et voici le enregistrer ou précédent courir.
Il a pris 25 secondes.
Tous droite, en mouvement sur.
Maintenant, quoi si toi vouloir à exécuter un Oracle PL /SQL procédure?
PL /SQL des stands pour De procédure Langue Rallonges à SQL,
et c'est un trier de un 3GL, 4GL langue Oracle les usages
à faire les fonctions, procédures et le comme.
Si toi avoir un procédure,
toi simplement entourer il avec commencer et fin et alors passer il à Exécuter SQL.
Voici COMMENCER, c'est mon schéma nom.
Ce est un emballer appelé emballer utile, et alors à l'intérieur là,
il y a un procédure appelé envoyer e-mail avec un argument succès ,
et alors je ajouter le FIN à le fin.
Donc quand toi faire ce,
il court il et contrôle volonté retour à JMP quand le procédure est fait,
donc Bien attendez.
D'accord, allons parler à propos quelques sécurité des choses.
Quand toi tirer données depuis Oracle,
par défaut, il y a un source propriété dans le données ensemble,
et que volonté montrer toi
le nom d'utilisateur et mot de passe et connexion chaîne,
et toi pourrait pas vouloir à montrer que à tous ton utilisateurs.
Si toi courir ce commande,
il volonté cacher le connexion chaîne dans le données ensemble c'est revenu.
je aller un couple de pas au-delà que.
je créer un connexion dans un crypté JSL fonction.
Ce fonction contient un base de données nom, le nom d'utilisateur, et le mot de passe,
et il Retour un base de données connexion
et défaut locale assure que fonction variables sont pas visible.
Allons avoir un regarder à que.
Voici un petit fonction appelé mon _dbc,
et ce est le non crypté version.
Voici mon défaut locale.
je vérifier environnement variables.
Voici mon connexion chaîne.
Ce est le un que toi ne le faites pas vouloir personnes à voir.
Voici mon conducteur, mon base de données, mon nom d'utilisateur , mon mot de passe.
je créer un base de données connexion avec que chaîne
et alors juste retour mon base de données connexion.
Aller à Crypter le scénario,
toi Cliquez sur sur modifier, Crypter scénario, entrer un décrypter mot de passe.
-JE ne le faites pas utiliser courir mots de passe—
et alors Cliquez sur Oui ici.
Voici mon crypté scénario,
et alors Je suis en allant à sauvegarder il comme mon_dbc .jsl.
À utiliser il, je inclure que scénario,
que crypté scénario dans mon JSL code, et que définit que fonction pour moi.
Alors je appel mon _dbc à obtenir un base de données connexion,
SÉLECTIONNER étoile depuis ce tableau
exécuter SQL, fermer base de données connexion,
donc voici mon tableau.
Et si toi regarder à DBC dans le enregistrer,
tous il montre est base de données et alors ton Oracle client conducteur.
Beaucoup fois quand toi courir SQL commandes dans JMP,
toi courir dans les erreurs, et c'est pas très facile à déboguer ce,
donc je a écrit un fonction appelé log_execute_ SQL,
lequel exécute SQL commandes et pièges n'importe lequel ODBC les erreurs trouvé dans le enregistrer.
Si ça trouve les erreurs, il affiche un avertissement message à le utilisateur
le long de avec le SQL, et le long avec le erreur.
Si toi ensemble un mondial variable à un, il affiche un SQL avant exécution il.
Ce a devenir très pratique pour développement et débogage SQL.
Le fonction les usages enregistrer capturer à inspecter le enregistrer pour les erreurs.
Ce est le syntaxe pour enregistrer capturer, chaîne équivaut à enregistrer capturer expression,
et ce est peu importe commandes toi vouloir réalisé et capturé,
et rien que normalement aller à enregistrer volonté aller dans chaîne,
et alors toi peut inspecter la chaîne.
Enregistrer _exécuter _sql prend cinq arguments: le nom de le appel programme,
un base de données connexion, un SQL déclaration,
un invisible drapeau, et un tableau nom à retour,
et ici sont deux exemples.
Un travaux et un n'a pas travail.
Ce a SÉLECTIONNER SYSDATE DEPUIS DOUBLE,
lequel est un standard Oracle commande à obtenir le actuel système date,
et ce a un intentionnel erreur dans il, double X,
lequel je savoir n'a pas exister.
Quand nous courir le d'abord SQL déclaration, nous obtenir le date du système.
Très bien.
Quand nous courir le deuxième déclaration, nous obtenir un erreur message.
Appel le programme est répertorié ici, le erreur le message est ici.
Ce est très important,
le long de avec ce code, ORA-00942,
et alors voici ton SQL déclaration,
et ce entier message est à l'intérieur de un texte modifier boîte,
donc toi peut copie et pâte il.
Voici un exemple pour déboguer sortir.
je tourner sur mon déboguer drapeau et quand je courir mon déclaration,
je obtenir un informatif message
-C'est pas un erreur, c'est juste informatif—
montrant le appel programme, base de données connexion,
si c'est invisible ou pas, le tableau nom, et le SQL État,
et alors je peut Cliquez sur ce case à cocher
si je vouloir à tourner désactivé subséquent déboguer sortir.
Donc voici enregistrer _exécuter _sql, il y a un description,
une description de le arguments,
un couple de exemple appels, et alors voici le fonction lui-même.
Voici mon arguments, je vérifier le base de données connexion,
je vérifier le SQL déclaration, je vérifie le déboguer drapeau.
Si le déboguer drapeau est sur, je faire un petit fenêtre
et je afficher le actuel SQL dans un texte modifier boîte,
et alors je donner le utilisateur le option à tourner désactivé subséquent déboguer sortir.
Si ils Cliquez sur que, je réinitialiser le drapeau à zéro.
Alors voici le viande de ce fonction
je forcer tous les erreurs à aller à le enregistrer avec lot interactif un,
alors je appel enregistrer capturer
avec soit un invisible drapeau sur ou non- invisible drapeau sur
pour exécuter SQL,
et alors je tourner lot interactif, ensemble il dos à zéro,
alors je vérifier le enregistrer fenêtre pour ODBC les erreurs,
je regarder pour Oracle ODBC ou le mot erreur et je ensemble un drapeau,
et alors je utiliser mots et le [inaudible 00:25:02]
pour me rappeler à analyser le sortir de le enregistrer dans séparé lignes.
Alors le erreur message est toujours sur doubler un de ce message.
Si nous trouvé un erreur, alors il affiche le erreur.
je avoir un exemple ici encore.
Donc voici un exemple où il dit DEPUIS mot-clé pas trouvé où attendu.
Si nous regarder à le SQL,
je arriver à savoir il y a un virgule manquant ici.
Allons parler à propos bâtiment DANS listes.
Le Oracle DANS opérateur détermine si un valeur allumettes n'importe lequel valeurs dans un liste.
Voici un exemple.
SÉLECTIONNER étoile, DEPUIS ABE _VENTES_ VENTES REPRÉSENTANTS,
où le dernier nom est dans un de ces valeurs,
et c'est similaire à le JSL contient fonction
où ici Je suis en disant fait ce liste contenir le mot Raj ?
Dans ce cas il était vers le bas à position deux.
Il y a un mise en garde avec le DANS opérateur.
Il y a un limite de un millier valeurs.
De cours, je a écrit mon propre fonction, get_sql _dans _liste,
lequel obtient autour que limitation.
Et quoi il fait,
il construit un dans la liste depuis le liste fourni.
Si là sont plus que 1000 articles sur le liste,
il sépare eux dans 1 000 élément morceaux
connecté via syndicat à éviter le limite de un millier articles.
Et si le éléments sont de taper chaîne,
n'importe lequel célibataire citations à l'intérieur le cordes volonté être remplacé avec deux célibataire citations,
et célibataire citations volonté être mettre autour chaque article.
Donc il y a deux arguments.
D'abord un est article liste.
C'est le liste de articles à créer un sans fin DEPUIS,
et alors un préambule,
lequel est un SQL chaîne à préface le Dans la liste avec,
donc Bien voir quoi ces signifier dans ce exemple.
Voici un exemple où je avoir un numérique liste,
et mon préambule est sélectionner ce IDENTIFIANT depuis schéma Info,
où le les pièces d'identité dans ouvrir parenthèses.
Donc voici mon appel à obtenir _sql_in _liste, mon liste_id, préambule
et le sortir regards comme ce;
SÉLECTIONNER étoile depuis mon tableau m.
Le IDENTIFIANT est dans ici.
Sélectionner IDENTIFIANT depuis schéma Info où IDENTIFIANT est dans un de ces Nombres.
Si toi regarder à un chaîne exemple, voici quatre éléments dans ce liste.
Le d'abord un et le troisième un a un célibataire citation à l'intérieur eux,
et voici mon préambule.
Quand je appel obtenir _sql_in_list et combiner il dans mon SQL déclaration,
ce est mon résultat.
SÉLECTIONNER étoile depuis mon tableau moi,
où le produit nom est DANS et ici c'est mon préambule,
où alerte nom est DANS, A, B, C, ou D.
Et tu vas avis pour UN et C
il remplacé le célibataire citations avec deux citations,
et il aussi converti ces double citations à célibataire citations ici.
Voici un extrait de un long exemple où je avait un millier de ces IDENTIFIANT valeurs,
et donc voici le d'abord mille, et alors un syndicat déclaration,
et alors le suivant mille et donc sur et donc en avant.
Tous droite, voici conseil nombre trois.
Que est à utiliser un intégré développement environnement
pour développement ton SQL déclarations.
Ces avoir un Interface graphique devant fin
et ils laisser toi développer et déboguer SQL et PL/SQL.
Ces sont quelques populaire outils que Je suis conscient de.
je utiliser PL/SQL Développeur.
C'est de Tous rond Automatisations.
Il y a un outil appelé SQL Développeur depuis Oracle c'est un cadeau,
et CRAPAUD vient depuis Quête.
Beaucoup personnes sont familier avec CRAPAUD.
Allons avoir un regarder à PL/SQL Développeur.
Nous scie il plus tôt quand je choisi depuis ce tableau.
je peut faire des choses comme souligner ces,
copie avec entête, dos à JMP,
créer un vide données ensemble et Cliquez sur sur Modifier,
pâte avec colonne des noms.
Boom, il y a mon données.
D'accord.
Et je peut parcourir les fonctions, procédures, paquets, les tables, et cetera, et cetera.
Voici un petit plus
sur que débogage exemple que nous scie plus tôt,
et encore, un virgule manquant ici.
C'est juste un autre plus explicite montrant de que erreur message.
Donc toi prendre ce, copie il, regarder à il, et retravailler il.
Un autre conseil, ce est un doux conseil,
et que est à éviter en ligne commentaires en utilisant tiret- tiret
comme il peut embrouiller le analyseur.
Ces sont commentaires où le tiret -tiret dit
tout après ce sur ce doubler est un commentaire.
Parfois, quelques situations,
le analyseur obtient confus
et n'a pas traiter ces propriétés comme commentaires,
donc c'est mieux à utiliser slash-étoile-étoile-slash.
j'ai juste vu un couple de fois où il n'a pas travail
et je tracé il vers le bas à ces commentaires.
Un plus conseil, et que est à utiliser
ce Oracle SYSTÈME _CONTEXTE fonction à obtenir utile information.
Il y a un espace de noms appelé U SERENV dans Oracle
et toi peut obtenir le PI adresse, le client ordinateur,
le programme fabrication le ODBC appel,
le en fonctionnement système identifiant pour le client,
le actuel session,
en fonctionnement système nom d'utilisateur, et le base de données nom.
Il y a beaucoup plus.
Si toi Google il, là c'est beaucoup plus paramètres,
mais ces sont le ceux que je utiliser.
Ici Je suis en disant sélectionner IP adresse, module, Terminal,
en fonctionnement système utilisateur et service nom.
Voici mon appel à SYS_CONTEXT,
et Je suis juste sélection il depuis DOUBLE, syndicalisation ces ensemble,
et le résultats regarder comme ce vers le bas ici.
Voici mon IP adresse.
Je suis appel depuis JMP .exe, Non surprendre là.
Mon nom d'utilisateur, mon base de données, et alors mon ordinateur nom.
C'est tous je avoir aujourd'hui.
Le conclusions Je vais dessiner,
ou si toi configurer le Oracle client correctement,
obtenir le ODBC connexion chaîne
et utiliser Exécuter SQL JMP dans Oracle peut faire super des choses.
Donc une fois encore, JMP et Oracle équivaut à un heureux mariage.
Remercier toi, sont là n'importe lequel des questions?