Bonjour tout le monde.
Mon nom est Pierre Mroz.
Je suis avec Janssen Pharmaceutique,
et aujourd'hui Je suis en allant pour parler pour toi
à propos comment combiner JMP et Oracle peut mener pour un content mariage.
je travail pour Janssen R&D.
Étaient un entièrement- filiale détenue de Johnson et Johnson,
et notre charte est pour découvrir et développer
innovant médicaments et solutions ce transformer personnes vies
et résoudre le la plupart important médical non satisfait besoins de notre temps.
Dans ce monde,
Je suis dans le Mondial Médical Sécurité Département,
et notre charte est pour protéger les patients par conduite
robuste médical sécurité excellence et avantage -risque évaluation.
Et alors dans ce département,
Je suis dans un groupe appelé Méthodes et Analyse,
et notre but est pour développer et mettre en œuvre analytique outils
pour augmenter efficacité et analytique aptitude
pour 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 quel approbation de n'importe quel produit par Janssen ou J & J.
Voici notre ordre du jour pour aujourd'hui.
Je suis en allant pour donner un introduction
et alors Bien saut droite dans Oracle 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 pour 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 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 ce nous produire.
Ils sont principalement 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 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 récit.
Et voici un exemple, patient récit.
S sujet avait cancer,
qui é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 pour 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 pour analyser et visualiser données depuis Oracle en utilisant JMP.
Principalement, nous regarder à tabulaire rapports de sécurité données,
résumé information, patient récit percer bas,
et nous faire quelques visualisation de sécurité données
via tendance ou forêt parcelles.
Avec tous ce,
JMP et Oracle ensemble faire un content mariage.
Bien commencer par en parlant à propos ODBC,
qui des stands pour Ouvrir Base de données Connectivité.
ODBC Conducteurs accès le base de données en utilisant SQL.
SQL des stands pour Structuré Mettre en doute langue.
Donc le ODBC conducteur permet un JMP client logiciel
pour communiquer avec le Oracle base de données.
Le d'abord chose toi ont pour faire est installer le Oracle client sur le PC.
Ce est un exercer gauche pour 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 choses toi besoin pour fournir pour le Oracle client.
Toi besoin pour définir deux environnement variables.
Un est ORACLE_ MAISON, le autre est TNS _ADMIN.
Donc ORACLE_HOME points pour un dossier où le client est en fait installée.
Ici, c'est dans C, oracle , 19 , client _1.
Et alors toi vouloir pour inclure le poubelle annuaire
dans le chemin environnement variable.
Donc dans ce cas, c'est le ORACLE_HOME avec le bac à slash.
Le TNS_ADMIN points pour le emplacement de TNSNAMES. ORA,
-Je vais expliquer quoi ce est dans un deuxième-
et c'est typiquement situé
dans le réseau administrateur chemin sous le ORACLE_HOME .
Voici un indice;
toi peut indiquer ce TNS_ADMIN variable pour un déposer partager emplacement
donc plusieurs utilisateurs peut tous indiquer pour ce déposer
et c'est Plus facile pour maintenir un version de TNSNAMES.ORA.
Quoi exactement est TNSNAMES.ORA ?
C'est un configuration déposer.
C'est comme un secret décodeur anneau,
il traduit entre un base de données alias et information nécessaire
par le Oracle client pour parler pour ton base de données.
Voici mon exemple; mon alias est MYDEVDB,
et alors voici mon description
pour comment pour connecter MYDEVDB pour mon Oracle base de données.
Avec ce complété,
maintenant nous besoin pour déterminer un ODBC connexion chaîne,
et le le plus simple chemin pour faire ce est pour Cliquez sur le les fenêtres bouton et taper ODBC,
et nous vouloir pour correspondre le éclore.
Pour 64 -bit JMP, nous vouloir le 64 bits ODBC données sources.
Pour 32 -bit JMP, nous vouloir le 32- bit ODBC données sources.
je ont 64 bits JMP,
donc je cliqué ce et je apporter en haut ce filtrer ici,
et je Cliquez sur sur le Conducteurs languette,
et ici sont le Conducteurs pour ODBC ce sont installée sur mon système.
je ont trois Oracle clients et un SQL Serveur.
je ont le Oracle client version 11, 12, et 19,
donc je vais cliquer sur ce Oracle version 19 conducteur,
et toi vouloir pour faire note de ce; Oracle dans Ora Client19 Maison 1.
C'est tous toi besoin pour savoir.
Maintenant nous ont notre ODBC connexion chaîne.
Nous combiner ce comme donc avec conducteur équivaut à ce 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 ce étaient tous configuré, nous peut apporter données dans JMP.
Là sont plusieurs façons pour obtenir Oracle données dans JMP.
Là e Ouvrir Base de données, Exécuter SQL , Nouveau SQL Mettre en doute, et Mettre en doute Constructeur,
qui est sous le Déposer Base de données menu.
Ce parler sera 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 ce pour Ouvrir Base de données, Ouvrir Base de données dans un appel,
s'ouvre le connexion,
court un SQL commande, se ferme le connexion.
Donc si toi ont 20 SQL déclarations,
tu es ouverture et fermeture le connexion 20 fois,
alors que avec Exécuter SQL, toi seul 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 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 gérer qui 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 pour un déposer contenant ton SQL commandes.
Un invisible mot-clé, si toi fournir un tableau Nom,
c'est équivalent pour 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 pour un tableau
si tu es émission un SÉLECTIONNER déclaration , qui Retour un données ensemble.
Voici un exemple;
je ont 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 pour exécuter SQL,
alors Je suis fermeture le base de données connexion.
Voici mon tableau je rendu depuis Oracle.
C'est sept Colonnes, 20 Lignes.
Voici le d'abord conseil,
et ce est si toi ont un chaîne avec un seul citation à l'intérieur il,
dans commande pour utiliser il avec Oracle,
toi ont pour remplacer ce seul citation avec deux seul devis 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 ont pour remplacer il avec deux devis.
Voici le deuxième conseil;
utiliser colonne pseudonymes pour lisibilité.
Ces sont mon colonne pseudonymes, donc voici mon colonne,
et alors dans double devis, 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
pour éviter le besoin pour s'échapper mon double devis.
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 devis,
et alors je fermer il dehors ici donc il regards un parcelle nettoyeur.
Quoi si toi vouloir pour écrire données dos pour 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 ce,
qui passe pour un variable, et alors qui passe pour Exécuter SQL.
je mets à jour le tableau,
paramètre le dernier nom pour Forgeron où le d'abord nom est Suède.
Ou ici Je suis insertion un nouveau enregistrer dans ce tableau
et Je suis paramètre le valeur de ces des champs pour le valeurs montré ici.
Un chose pour 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 pour faire un COMMETTRE toi-même.
Un chose à propos INSÉRER,
si toi ont plusieurs INSÉRER déclarations pour exécuter,
ils peut être lent,
donc je trouvé un alternative qui est INSÉRER TOUT.
Voici un exemple où Je suis insertion dans ce tableau.
Le colonne est appelé goûter _nombre
et Je suis insertion dix valeurs tous à une fois avec un déclaration.
Le seul bizarre chose est,
toi ont pour mettre quelque chose comme SÉLECTIONNER 1 DEPUIS DOUBLE
à le fin de il et alors il travaux.
Allons voir ce dans action.
je vouloir pour insérer 100 Lignes un par un et comparez-le pour 100 Lignes tous à une fois.
je ont un petit exemple ici, allons aller devant et courir il.
Donc il a pris 8 secondes pour faire un à un temps contre 0,15 pour TOUT INSÉRER,
et donc il était 52 fois plus rapide.
Allons regarder à le code un petit bit.
Nous ont fabrication un connexion, tronquer un tableau.
Voici mon un à un temps.
je avoir mon exécution 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 bas ici pour TOUT INSÉRER,
Je suis départ avec INSÉRER TOUT
et je donjon ajouter dans le tableau, des champs, valeurs.
Donjon ajouter ce,
et alors je seul courir un SQL commande.
Et si je regarder à ce commande, vous pouvez voir que c'est joli lourd.
Voici mon SQL déclaration.
C'est très long, mais il a pris 0 .15 secondes pour courir.
INSÉRER TOUT dans TEST IMPORTER,
champ des noms, valeurs, dans, dans, dans.
D'accord.
Allons aller dos pour glisser mode.
Quoi si toi ont
plus que un millier Lignes pour insérer dans ton base de données?
Quoi si toi ont 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 qui 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 pour ajouter un autre couche sur ce
parce que étaient en allant pour faire tous ce depuis dans JSL.
Je suis en allant pour créer un commande déposer
qui 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 pour 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 eval insérer pour faire ces variables,
-entouré par le petit carets— convertir pour leur valeurs en haut ici.
Importer _déposer nom sera être test_import.txt, table_dest sera être TEST_IMPORT.
Des champs sont résilié par languette, en fait enfermé par double devis.
Voici mon six des champs,
et Je suis ajouter un couple de autre des champs, date _chargé et nom d'utilisateur _chargé.
Date _chargé sera être le système date.
Le nom d'utilisateur _chargé sera être le compte nom
de le personne en cours il.
Je suis économie ce déposer dehors pour le annuaire
et Je suis créer un commande déposer pour courir Chargeur SQL.
Paramètre mon conduire pour le C conduire, ensemencement dans ce annuaire,
et puis voici mon commande;
Chargeur SQL utilisateur IDENTIFIANT équivaut à mon crédits à mon base de données nom,
et voici mon contrôle déposer, mon enregistrer déposer.
Et si toi avis,
je avait pour 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 pour ajouter ceux dans pour le commande déposer pour travail.
Je sauve il,
et alors Je suis en cours il ici avec courir programme.
Alors Je suis vérification le résultats.
Si il fait pas contenir ligne 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 ce.
Voici mon enregistrer déposer.
j'en ai environ quatre Lignes avec succès chargé dans 1.5 secondes.
je vouloir pour faire un démo de six Colonnes avec 30 000 enregistrements,
et allons courir ce un.
Je suis chargement dans le même tableau, je tronque le tableau,
et Je suis en cours 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 pour 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 pour données les erreurs et il a pris 16 secondes.
Ce était 30 000 Lignes, et nous peut regarder à ce 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é, qui est aujourd'hui,
mon nom d'utilisateur,
et c'est en allant pour sélectionner tous le Lignes.
Je laisserai ce 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 pour exécuter un Oracle PL /SQL procédure?
PL /SQL des stands pour De procédure Langue Rallonges pour SQL,
et c'est un trier de un 3GL, 4GL langue Oracle les usages
pour faire les fonctions, procédures et le comme.
Si toi ont un procédure,
toi simplement entourer il avec commencer et fin et alors passer il pour 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 sera retour pour JMP quand le procédure est fait,
donc Bien attendez.
D'accord, allons parler à propos quelques sécurité choses.
Quand toi tirer données depuis Oracle,
par défaut, il y a un source propriété dans le données ensemble,
et ce sera montrer toi
le nom d'utilisateur et mot de passe et connexion chaîne,
et toi pourrait pas vouloir pour montrer ce pour tous ton utilisateurs.
Si toi courir ce commande,
il sera cacher le connexion chaîne dans le données ensemble c'est revenu.
je aller un couple de pas au-delà ce.
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 local assure ce fonction variables sont pas visible.
Allons ont un regarder à ce.
Voici un petit fonction appelé mon _dbc,
et ce est le non crypté version.
Voici mon défaut local.
je vérifier environnement variables.
Voici mon connexion chaîne.
Ce est le un ce toi ne le faites pas vouloir personnes pour 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 ce chaîne
et alors juste retour mon base de données connexion.
Aller pour 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 pour sauvegarder il comme my_dbc .jsl.
Pour utiliser il, je inclure ce scénario,
ce crypté scénario dans mon JSL code, et ce définit ce fonction pour moi.
Alors je appel mon _dbc pour 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 pour déboguer ce,
donc je écrit un fonction appelé log_execute_ sql,
qui exécute SQL commandes et pièges n'importe quel ODBC les erreurs trouvé dans le enregistrer.
Si ça trouve les erreurs, il affiche un avertissement message pour le utilisateur
le long de avec le SQL, et le long avec le erreur.
Si toi ensemble un mondial variable pour 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 capture pour inspecter le enregistrer pour les erreurs.
Ce est le syntaxe pour enregistrer capture, chaîne équivaut à enregistrer capture expression,
et ce est peu importe commandes toi vouloir réalisé et capturé,
et quoi que ce soit ce normalement aller pour enregistrer sera aller dans chaîne,
et alors toi peut inspecter la ficelle.
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 pour retour,
et ici sont deux exemples.
Un travaux et un n'a pas travail.
Ce a SÉLECTIONNER SYSDATE DEPUIS DOUBLE,
qui est un standard Oracle commande pour obtenir le actuel système date,
et ce a un intentionnel erreur dans il, double X,
qui 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 listé ici, le erreur 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 ensemble 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 pour 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 pour tourner désactivé subséquent déboguer sortir.
Si ils Cliquez sur ce, je réinitialiser le drapeau pour zéro.
Alors voici le viande de ce fonction
je force tous les erreurs pour aller pour le enregistrer avec grouper interactif un,
alors je appel enregistrer capture
avec soit un invisible drapeau sur ou non- invisible drapeau sur
pour exécuter SQL,
et alors je tourner grouper interactif, ensemble il dos pour 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 pour 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 ont 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 pour 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 quel valeurs dans un liste.
Voici un exemple.
SÉLECTIONNER étoile, DEPUIS ABE _VENTES_ VENTES REPS,
où le dernier nom est dans un de ces valeurs,
et c'est similaire pour le JSL contient fonction
où ici Je suis en disant fait ce liste contenir le mot Raj?
Dans ce cas il était 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 écrit mon posséder fonction, get_sql _dans _liste,
qui obtient autour ce 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 pour éviter le limite de un millier articles.
Et si le éléments sont de taper chaîne,
n'importe quel seul devis à l'intérieur le cordes sera être remplacé avec deux seul devis,
et seul devis sera être mettre autour chaque article.
Donc il y a deux arguments.
D'abord un est article liste.
C'est le liste de articles pour créer un sans fin DEPUIS,
et alors un préambule,
qui est un SQL chaîne pour préface le Dans la liste avec,
donc Bien voir quoi ces moyenne dans ce exemple.
Voici un exemple où je ont un numérique liste,
et mon préambule est sélectionner ce IDENTIFIANT depuis schéma Info,
où le ID dans ouvrir parenthèses.
Donc voici mon appel pour obtenir _sql_in _liste, mon id_list, 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 seul 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 seul devis avec deux devis,
et il aussi converti ces double devis pour seul devis 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 de suite.
Tous droite, voici conseil nombre trois.
Ce est pour utiliser un intégré développement environnement
pour développement ton SQL déclarations.
Ces ont un interface graphique devant fin
et ils laisser toi développer et déboguer SQL et PL/SQL.
Ces sont quelques populaire outils ce Je suis conscient de.
je utiliser PL/SQL Développeur.
C'est de Tous rond Automatismes.
Il y a un outil appelé SQL Développeur depuis Oracle c'est un gratuité,
et CRAPAUD vient depuis Quête.
Beaucoup personnes sont familier avec CRAPAUD.
Allons ont un regarder à PL/SQL Développeur.
Nous scie il plus tôt quand je choisi depuis ce tableau.
je peut faire choses comme souligner ces,
copie avec entête, dos pour 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 ce débogage exemple ce nous scie plus tôt,
et encore, un virgule manquant ici.
C'est juste un autre plus explicite montrant de ce erreur message.
Donc toi prendre ce, copie il, regarder à il, et retravailler il.
Un autre conseil, ce est un doux conseil,
et ce est pour éviter en ligne commentaires en utilisant se précipiter- se précipiter
comme il peut embrouiller le analyseur.
Ces sont commentaires où le se précipiter -se précipiter 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 pour utiliser slash-étoile-étoile-slash.
j'ai juste vu un couple de fois où il n'a pas travail
et je tracé il bas pour ces commentaires.
Un plus conseil, et ce est pour utiliser
ce Oracle SYS _CONTEXTE fonction pour obtenir utile information.
Il y a un espace de noms appelé tu SERENV dans Oracle
et toi peut obtenir le IP 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 ce je utiliser.
Ici Je suis en disant sélectionner IP adresse, module, Terminal,
en fonctionnement système utilisateur et service nom.
Voici mon appel pour SYS_CONTEXT,
et Je suis juste sélection il depuis DOUBLE, union ces ensemble,
et le résultats regarder comme ce 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 ont 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 choses.
Donc une fois encore, JMP et Oracle équivaut à un content mariage.
Remercier toi, sont là n'importe quel des questions?