X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=db-oracle%2Foracle-objects.lisp;h=3e5a6b713e8866d828c9a062915b5c19cff7118d;hb=c5ecb63ab302383d9a95043c0b3e35c1a1b8918e;hp=a5583ee4ea6c142dfa318541add6833af6f3973b;hpb=d4bb1303dea9ba6734b86abc34e904edb3e36f6f;p=clsql.git diff --git a/db-oracle/oracle-objects.lisp b/db-oracle/oracle-objects.lisp index a5583ee..3e5a6b7 100644 --- a/db-oracle/oracle-objects.lisp +++ b/db-oracle/oracle-objects.lisp @@ -4,8 +4,6 @@ ;;;; ;;;; Name: oracle-objects.lisp ;;;; -;;;; $Id$ -;;;; ;;;; This file is part of CLSQL. ;;;; ;;;; CLSQL users are granted the rights to distribute and use this software @@ -17,62 +15,67 @@ (defmethod database-get-type-specifier (type args database (db-type (eql :oracle))) (declare (ignore type args database)) - (format nil "VARCHAR2(~D)" *default-varchar-length*)) + (format nil "VARCHAR2(~D)" *default-string-length*)) -(defmethod database-get-type-specifier ((type (eql 'integer)) args - database (db-type (eql :oracle))) +(defmethod database-get-type-specifier ((type (eql 'integer)) args + database (db-type (eql :oracle))) (declare (ignore database)) (if args (format nil "NUMBER(~A,~A)" - (or (first args) 38) (or (second args) 0)) + (or (first args) 38) (or (second args) 0)) "INTEGER")) (defmethod database-get-type-specifier ((type (eql 'bigint)) args - database (db-type (eql :oracle))) - (declare (ignore args database)) + database (db-type (eql :oracle))) + (declare (ignore args database)) "CHAR(20)") (defmethod database-get-type-specifier ((type (eql 'universal-time)) args - database (db-type (eql :oracle))) - (declare (ignore args database)) + database (db-type (eql :oracle))) + (declare (ignore args database)) "CHAR(20)") (defmethod database-get-type-specifier ((type (eql 'string)) args - database (db-type (eql :oracle))) - (declare (ignore database)) + database (db-type (eql :oracle))) + (declare (ignore database)) (if args (format nil "CHAR(~A)" (car args)) - (format nil "VARCHAR2(~D)" *default-varchar-length*))) + (format nil "VARCHAR2(~D)" *default-string-length*))) (defmethod database-get-type-specifier ((type (eql 'varchar)) args - database (db-type (eql :oracle))) - (declare (ignore database)) + database (db-type (eql :oracle))) + (declare (ignore database)) (if args (format nil "VARCHAR2(~A)" (car args)) - (format nil "VARCHAR2(~D)" *default-varchar-length*))) + (format nil "VARCHAR2(~D)" *default-string-length*))) (defmethod database-get-type-specifier ((type (eql 'float)) args - database (db-type (eql :oracle))) - (declare (ignore database)) + database (db-type (eql :oracle))) + (declare (ignore database)) (if args (format nil "NUMBER(~A,~A)" (or (first args) 38) (or (second args) 38)) "DOUBLE PRECISION")) (defmethod database-get-type-specifier ((type (eql 'long-float)) args - database (db-type (eql :oracle))) - (declare (ignore database)) + database (db-type (eql :oracle))) + (declare (ignore database)) (if args (format nil "NUMBER(~A,~A)" - (or (first args) 38) (or (second args) 38)) + (or (first args) 38) (or (second args) 38)) "DOUBLE PRECISION")) (defmethod database-get-type-specifier ((type (eql 'boolean)) args - database (db-type (eql :oracle))) + database (db-type (eql :oracle))) + (declare (ignore args database)) + "CHAR(1)") + +(defmethod database-get-type-specifier ((type (eql 'generalized-boolean)) args + database (db-type (eql :oracle))) (declare (ignore args database)) "CHAR(1)") (defmethod read-sql-value (val type - database (db-type (eql :oracle))) + database (db-type (eql :oracle))) ;;(format t "value is \"~A\" of type ~A~%" val (type-of val)) (declare (ignore type database)) (etypecase val @@ -82,38 +85,44 @@ nil))) (defmethod read-sql-value (val (type (eql 'integer)) - database (db-type (eql :oracle))) + database (db-type (eql :oracle))) (declare (ignore database)) val) (defmethod read-sql-value (val (type (eql 'float)) - database (db-type (eql :oracle))) + database (db-type (eql :oracle))) (declare (ignore database)) val) (defmethod read-sql-value (val (type (eql 'boolean)) - database (db-type (eql :oracle))) + database (db-type (eql :oracle))) + (declare (ignore database)) + (when (char-equal #\t (schar val 0)) + t)) + +(defmethod read-sql-value (val (type (eql 'generalized-boolean)) + database (db-type (eql :oracle))) (declare (ignore database)) (when (char-equal #\t (schar val 0)) t)) (defmethod read-sql-value (val (type (eql 'bigint)) - database (db-type (eql :oracle))) + database (db-type (eql :oracle))) (declare (ignore database)) (parse-integer val)) (defmethod read-sql-value (val (type (eql 'universal-time)) - database (db-type (eql :oracle))) + database (db-type (eql :oracle))) (declare (ignore database)) (parse-integer val)) (defmethod database-get-type-specifier ((type (eql 'wall-time)) args - database (db-type (eql :oracle))) + database (db-type (eql :oracle))) (declare (ignore args database)) "DATE") (defmethod database-get-type-specifier ((type (eql 'duration)) args - database (db-type (eql :oracle))) + database (db-type (eql :oracle))) (declare (ignore args database)) "NUMBER(38)")