Nicolas Goaziou <m...@nicolasgoaziou.fr> writes:
Hi Nicolas,
> ...
> It looks good.
>
> I added two spaces at the end of sentences and pushed it.
> ...

I'm sorry I did a mistake in the previous patch. There is an
inconsistency between  the code in `org-babel-sql-dbstring-oracle' and
the example provided in the ORG-NEWS file.

So I attached two patches:
- the first (0001-ORG-NEWS-...) correct the example in order to match to the 
code,
- the second (0001-ob-sql.el...) correct the codein order to match to the 
example.

Personnaly I prefer the last as it match better with the habits of
thoses who uses Oracle's products (We talk almost ever in term of
database than in term of servers).

But it's up to you.

>From e04cbea0ac40cd54f3973c3824b7c82c4d4246f3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pierre=20T=C3=A9choueyres?= <pierre.techouey...@free.fr>
Date: Thu, 15 Mar 2018 19:20:23 +0100
Subject: [PATCH] ORG-NEWS: Correct Oracle connection and usage for ob-sql.

* etc/ORG-NEWS: match exemple with code in lisp/ob-sql.el
Use :host instead of :database in call.
---
 etc/ORG-NEWS | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS
index 01a9361df..c19a0dfe1 100644
--- a/etc/ORG-NEWS
+++ b/etc/ORG-NEWS
@@ -212,7 +212,7 @@ parameters.  See example bellow.
   ,#+END_SRC
 
   or the alias defined in your TNSNAMES file
-  ,#+BEGIN_SRC sql :engine oracle :dbuser me :dbpassword my_insecure_password :database my_tns_alias
+  ,#+BEGIN_SRC sql :engine oracle :dbuser me :dbpassword my_insecure_password :host my_tns_alias
   select sysdate from dual;
   ,#+END_SRC
 #+END_SRC
-- 
2.14.3

>From fd4ae337ac3a38bc9c9a422628482d6f46599bac Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pierre=20T=C3=A9choueyres?= <pierre.techouey...@free.fr>
Date: Thu, 15 Mar 2018 19:15:14 +0100
Subject: [PATCH] ob-sql.el: Improve Oracle connection and usage for ob-sql.

* lisp/ob-sql.el (org-babel-sql-dbstring-oracle): Permit to omit host
and port to allow use of alias defined in Oracle's TNSNAMES files.
This now allow two way calling it :
<user>/<password>@<host>:<port>/<database ID>
or
<user>/<password>@<database alias>
---
 lisp/ob-sql.el | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/lisp/ob-sql.el b/lisp/ob-sql.el
index f44bf5674..d030cf528 100644
--- a/lisp/ob-sql.el
+++ b/lisp/ob-sql.el
@@ -112,10 +112,13 @@ Pass nil to omit that arg."
 
 (defun org-babel-sql-dbstring-oracle (host port user password database)
   "Make Oracle command line arguments for database connection.
-If PORT and DATABASE are nil then don't pass them.  This allows
-you to use names defined in your \"TNSNAMES\" file."
-  (concat (format "%s/%s@%s" user password host)
-	  (and port database (format ":%s/%s" port database))))
+If HOST and PORT are nil then don't pass them.  This allows
+you to use names defined in your \"TNSNAMES\" file.
+So you can connect with <user>/<password>@<host>:<port>/<database> or
+<user>/<password>@<database> using it's alias."
+  (cond ((and user password database (not (and host port))) (format "%s/%s@%s" user password database))
+	((and user password database host port) (format "%s/%s@%s:%s/%s" user password host port database))
+	(t (user-error "Missing information to connect to database."))))
 
 (defun org-babel-sql-dbstring-mssql (host user password database)
   "Make sqlcmd command line args for database connection.
-- 
2.14.3

Reply via email to