Bonjour tout le monde.
Mon nom est Pierre Mroz.
Je suis avec Janssen Pharmaceutique,
et aujourd'hui Je suis en allant à parler à toi
à propos comment combinant JMP et Oracle peut plomb à a heureux mariage.
I travail pour Janssen Recherche et développement.
Étaient a entièrement- filiale détenue de Johnson et Johnson,
et notre charte est à découvrir et développer
novateur médicaments et solutions que transformer individus vies
et résoudre le la plupart important besoins médicaux non satisfaits besoins de notre temps.
Dans que monde,
Je suis dans le Mondial Médical Sécurité Département,
et notre charte est à protéger patients par conduite
robuste médical sécurité excellence et avantage -risque évaluation.
Et alors dans que département,
Je suis dans a groupe appelé Méthodes et Analyse,
et notre but est à développer et mettre en œuvre analytique outils
à augmenter efficacité et analytique capacité
à détecter et évaluer sécurité signaux.
Encore, mon nom est Pierre Mroz et J'ai a été a 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,
dissimulation le mots de passe, erreur 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 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 a 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 a jour, et a cas consiste de a personne...
Ils sont pas a patient, ils sont pas dans a clinique procès.
C'est a 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é a narratif.
Et voici un exemple, patient narratif.
S sujet avait cancer,
lequel était diagnostiqué dans Juin 1998, et etc., et etc.
C'est a 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 a [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 bas,
et nous faire quelques visualisation de sécurité données
via tendance ou forêt parcelles.
Avec tous que,
JMP et Oracle ensemble faire a heureux mariage.
Bien commencer par parler à propos ODBC,
lequel stands pour Ouvrir Base de données Connectivité.
ODBC conducteurs accéder le base de données en utilisant SQL.
SQL stands pour Structuré Requête langue.
Donc le ODBC conducteur permet a 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 a tutoriel sur installation ce, donc toi peut Google il.
Cependant, une fois tu as installé il,
là sont a 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 à a dossier où le client est en fait installé.
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 poubelle.
Le TNS_ADMIN points à le emplacement de NOMS TNS. ORA,
-Je vais expliquer quoi que est dans a deuxième-
et c'est typiquement situé
dans le réseau administrateur chemin dessous le ORACLE_HOME .
Voici a indice;
toi peut indiquer ce TNS_ADMIN variable à a déposer partager emplacement
donc multiple 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 a configuration déposer.
C'est comme a secrète décodeur anneau,
il traduit entre a 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 MADB DEV,
et alors voici mon description
pour comment à connecter MADB DEV à 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 le Windows 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.
I avoir 64 bits JMP,
donc I cliqué que et I apporter en haut ce écran ici,
et I cliquez sur le conducteurs languette,
et ici sont le conducteurs pour ODBC que sont installé sur mon système.
I avoir trois Oracle clients et un SQL Serveur.
I 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 Non Client19 Maison 1.
C'est tous toi besoin à savoir.
Maintenant nous avoir notre ODBC connexion chaîne.
Nous combiner que comme donc avec conducteur est égal à que chaîne,
DBQ est égal à notre base de données alias.
UID est égal à ton nom d'utilisateur, Personnes handicapées est égal à ton mot de passe.
Donc voici a pleinement -formé ODBC connexion chaîne.
Conducteur est égal à mon Oracle 19 conducteur. DBQ est MADB DEV,
nom d'utilisateur est MONNOM 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 manières à 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 a 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,
courses a SQL commande, ferme le connexion.
Donc si toi avoir 20 SQL déclarations,
tu es ouverture et clôture 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 scripts indice, ce est quoi Exécuter SQL apparence comme.
Il prend le suivant arguments;
il y a a base de données connexion poignée lequel est ici,
défini par ton connexion chaîne.
Il y a soit a SÉLECTIONNER déclaration ou un SQLFILE est égal à déclaration,
ou un SQL DÉPOSER est égal à a aiguille à a déposer contenant ton SQL commandes.
Un invisible mot-clé, si toi fournir a tableau Nom,
c'est équivalent à adage 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 retours, aiguille à a tableau
si tu es émission a SÉLECTIONNER déclaration , lequel retours a données ensemble.
Voici un exemple;
I avoir mon connexion chaîne, conducteur est égal à Oracle dans Non Client19 Accueil1,
MADB DEV, 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 a tableau appelé eba_sales _représentants commerciaux,
et Je suis passage mon connexion, mon SQL déclaration,
et alors a titre pour le tableau à exécuter SQL,
alors Je suis clôture le base de données connexion.
Voici mon tableau I rendu depuis Oracle.
C'est sept colonnes, 20 rangées.
Voici le d'abord conseil,
et que est si toi avoir a chaîne avec a 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 m,
où m nom est égal à O'Malley,
et depuis ce est à l'intérieur le chaîne, I avoir à remplacer il avec deux citations.
Voici le deuxième conseil;
utiliser colonne alias pour lisibilité.
Ces sont mon colonne alias, donc voici mon colonne,
et alors dans double citations, J'ai a obtenu un alias.
Toi avis c'est mixte cas,
là sont espaces dans là, il fait 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 I fermer il dehors ici donc il apparence a 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éfinir que,
passage à a variable, et alors passage à Exécuter SQL.
Je mets à jour le tableau,
paramètre le dernier nom à Forgeron où le d'abord nom est Suède.
Ou ici Je suis insertion a nouveau enregistrer dans ce tableau
et Je suis paramètre le valeur de ces 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 a COMMETTRE toi-même.
Un chose à propos INSÉRER,
si toi avoir multiple INSÉRER déclarations à exécuter,
ils peut être lent,
donc I 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-y voir que dans action.
I vouloir à insérer 100 rangées un par un et comparez-le à 100 rangées tous à une fois.
I avoir a petit exemple ici, allons aller devant et courir il.
Donc il a pris 8 secondes à faire un à a temps contre 0,15 pour INSÉRER TOUT,
et donc il était 52 fois plus rapide.
Allons-y regarder à le code a petit peu.
Nous avoir fabrication a connexion, tronquant a tableau.
Voici mon un à a temps.
I avoir mon Exécuter SQL à l'intérieur mon boucle,
et par le chemin, Je suis boucle a 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 I garder ajout dans le tableau, champs, valeurs.
Garder ajout que,
et alors I seulement courir un SQL commande.
Et si I 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 noms, valeurs, dans, dans, dans.
D'accord.
Allons-y aller dos à glisser mode.
Quoi si toi avoir
plus que mille rangées à insérer dans ton base de données ?
Quoi si toi avoir 10 000 rangées ou 50 000 des rangées ?
Toi peut utiliser a outil depuis Oracle appelé Chargeur SQL pour plus rapide données chargement.
Chargeur SQL nécessite a données déposer lequel peut être virgule séparé,
languette -délimité, fixé format, et a 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 a commande déposer
lequel courses Chargeur SQL dans a commande fenêtre.
Il aussi génère le contrôle et commande fichiers 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 rangées 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éation 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.
Champs sont terminé par languette, en fait ci-joint par double citations.
Voici mon six champs,
et Je suis ajout a couple de autre 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éation a commande déposer à courir Chargeur SQL.
Paramètre mon conduire à le C conduire, semis dans ce annuaire,
et puis voici mon commande;
Chargeur SQL utilisateur IDENTIFIANT est égal à 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,
I avait à ajouter ces barre oblique inverse point d'exclamation capital N.
Ces sont dur retours.
Pour quelques raison, il n'a pas travail sans ces dans là,
donc I avait à ajouter ceux dans pour le commande déposer à travail.
J'économise 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 I afficher un erreur message et afficher le sortir depuis exécuter SQL charger.
Si il était réussi,
alors I charger le enregistrer déposer dans et afficher que.
Voici mon enregistrer déposer.
J'en ai environ quatre rangées avec succès chargé dans 1,5 secondes.
I vouloir à faire a démo de six colonnes avec 30 000 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 rangées avec succès chargé.
Non rangées étaient pas chargé exigible à données erreurs et il a pris 16 secondes.
Que était 30 000 rangées, et nous peut regarder à que données.
Ici I suis dans a outil appelé PL/SQL Promoteur.
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 rangées.
Je vais laisser que courir.
D'accord, donc voici a regarder à le données déposer, et voici le enregistrer ou précédent courir.
Il a pris 25 secondes.
Tous droite, mobile sur.
Maintenant, quoi si toi vouloir à exécuter un Oracle PL /SQL procédure?
PL /SQL stands pour De procédure Langue Extensions à SQL,
et c'est a trier de a 3GL, 4GL langue Oracle utilisations
à faire fonctions, procédures et le comme.
Si toi avoir a 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 a emballer appelé emballer utile, et alors à l'intérieur là,
il y a a procédure appelé envoyer e-mail avec un argument succès ,
et alors I ajouter le FIN à le fin.
Donc quand toi faire ce,
il courses 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 a 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 retourné.
I aller a couple de mesures au-delà que.
I créer a connexion dans un crypté JSL fonction.
Ce fonction contient a base de données nom, le nom d'utilisateur, et le mot de passe,
et il retours a base de données connexion
et défaut locale assure que fonction variables sont pas visible.
Allons-y avoir a regarder à que.
Voici a petit fonction appelé mon _dbc,
et ce est le non crypté version.
Voici mon défaut locale.
I 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.
I créer a 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 modifier, crypter scénario, entrer a décrypter mot de passe.
-JE ne le faites pas utiliser courir mots de passe—
et alors cliquez oui ici.
Voici mon crypté scénario,
et alors Je suis en allant à sauvegarder il comme mon_dbc .jsl.
À utiliser il, I inclure que scénario,
que crypté scénario dans mon JSL code, et que définit que fonction pour moi.
Alors I appel mon _dbc à obtenir a 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 spectacles est base de données et alors ton Oracle client conducteur.
Beaucoup fois quand toi courir SQL commandes dans JMP,
toi courir dans erreurs, et c'est pas très facile à déboguer ce,
donc I a écrit a fonction appelé log_execute_ SQL,
lequel exécute SQL commandes et pièges n'importe lequel ODBC erreurs trouvé dans le enregistrer.
Si c'est découvertes erreurs, il affichages a avertissement message à le utilisateur
le long de avec le SQL, et le long avec le erreur.
Si toi ensemble a mondial variable à un, il affichages a SQL avant exécution il.
Ce a devenir très pratique pour développement et débogage SQL.
Le fonction utilisations enregistrer capturer à inspecter le enregistrer pour erreurs.
Ce est le syntaxe pour enregistrer capturer, chaîne est égal à enregistrer capturer expression,
et ce est peu importe commandes toi vouloir exécuté et capturé,
et rien que normalement aller à enregistrer volonté aller dans chaîne,
et alors toi peut inspecter la corde.
Enregistrer _exécuter _sql prend cinq arguments: le nom de le appel programme,
a base de données connexion, a SQL déclaration,
un invisible drapeau, et a 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 a standard Oracle commande à obtenir le actuel système date,
et ce a un intentionnel erreur dans il, double X,
lequel I 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 a texte modifier boîte,
donc toi peut copie et coller il.
Voici un exemple pour déboguer sortir.
I tourner sur mon déboguer drapeau et quand I courir mon déclaration,
I 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 I peut cliquez ce case à cocher
si I vouloir à tourner désactivé ultérieur déboguer sortir.
Donc voici enregistrer _exécuter _sql, il y a a description,
une description de le arguments,
a couple de exemple appels, et alors voici le fonction elle-même.
Voici mon arguments, I vérifier le base de données connexion,
I vérifier le SQL déclaration, Je vérifie le déboguer drapeau.
Si le déboguer drapeau est sur, I faire a petit fenêtre
et I afficher le actuel SQL dans a texte modifier boîte,
et alors I donner le utilisateur le option à tourner désactivé ultérieur déboguer sortir.
Si ils cliquez que, I réinitialiser le drapeau à zéro.
Alors voici le viande de ce fonction
I forcer tous erreurs à aller à le enregistrer avec lot interactif un,
alors I appel enregistrer capturer
avec soit un invisible drapeau sur ou non- invisible drapeau sur
pour exécuter SQL,
et alors I tourner lot interactif, ensemble il dos à zéro,
alors I vérifier le enregistrer fenêtre pour ODBC erreurs,
I regarder pour Oracle ODBC ou le mot erreur et I ensemble a drapeau,
et alors I 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 affichages le erreur.
I avoir un exemple ici encore.
Donc voici un exemple où il dit DEPUIS mot-clé pas trouvé où attendu.
Si nous regarder à le SQL,
I arriver à savoir il y a a virgule manquant ici.
Allons-y parler à propos bâtiment DANS listes.
Le Oracle DANS opérateur détermine si a valeur matchs n'importe lequel valeurs dans a liste.
Voici un exemple.
SÉLECTIONNER étoile, DEPUIS EBA _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 adage fait ce liste contenir le mot Raj?
Dans ce cas il était vers le bas à position deux.
Il y a a mise en garde avec le DANS opérateur.
Il y a a limite de mille valeurs.
De cours, I a écrit mon propre fonction, obtenir_sql _dans _liste,
lequel obtient autour que limitation.
Et quoi il fait,
il construit un liste d'inscription 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 union à éviter le limite de mille 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 a préambule,
lequel est a SQL chaîne à préface le Liste IN avec,
donc Bien voir quoi ces signifier dans ce exemple.
Voici un exemple où I avoir a numérique liste,
et mon préambule est sélectionner ce IDENTIFIANT depuis schéma informations,
où le identifiants dans ouvrir parenthèses.
Donc voici mon appel à obtenir _sql_in _liste, mon liste_d'identifiants, préambule
et le sortir apparence comme ce;
SÉLECTIONNER étoile depuis mon tableau m.
Le IDENTIFIANT est dans ici.
Sélectionner IDENTIFIANT depuis schéma informations où IDENTIFIANT est dans un de ces Nombres.
Si toi regarder à a chaîne exemple, voici quatre éléments dans ce liste.
Le d'abord un et le troisième un a a célibataire citation à l'intérieur eux,
et voici mon préambule.
Quand I appel obtenir _sql_in_list et combiner il dans mon SQL déclaration,
ce est mon résultat.
SÉLECTIONNER étoile depuis mon tableau m,
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 A 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 a long exemple où I avait mille de ces IDENTIFIANT valeurs,
et donc voici le d'abord mille, et alors a union 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 a 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.
I utiliser PL/SQL Promoteur.
C'est de Tous rond Automatismes.
Il y a a outil appelé SQL Promoteur depuis Oracle c'est a cadeau,
et CRAPAUD vient depuis Quête.
Beaucoup personnes sont familier avec CRAPAUD.
Allons-y avoir a regarder à PL/SQL Promoteur.
Nous scie il plus tôt quand I choisi depuis ce tableau.
I peut faire des choses comme souligner ces,
copie avec en-tête, dos à JMP,
créer un vide données ensemble et cliquez sur Modifier,
coller avec colonne noms.
Boom, il y a mon données.
D'accord.
Et I peut parcourir fonctions, procédures, paquets, tables, et etc., et etc.
Voici a petit plus
sur que débogage exemple que nous scie plus tôt,
et encore, a 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 a 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 a commentaire.
Parfois, quelques situations,
le analyseur obtient confus
et n'a pas traiter ces propriétés comme commentaires,
donc c'est mieux à utiliser barre oblique-étoile-étoile-barre oblique.
J'ai juste vu a couple de fois où il n'a pas travail
et I tracé il vers le bas à ces commentaires.
Un plus conseil, et que est à utiliser
ce Oracle SYS _CONTEXTE fonction à obtenir utile information.
Il y a a espace de noms appelé U SERENV dans Oracle
et toi peut obtenir le propriété intellectuelle 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à 's beaucoup plus paramètres,
mais ces sont le ceux que I utiliser.
Ici Je suis adage sélectionner propriété intellectuelle 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 propriété intellectuelle 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 I 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 est égal à a heureux mariage.
Remercier toi, y a-t-il n'importe lequel des questions?