public void SetDateTime(OciHandle handle, OciErrorHandle errorHandle, short year, byte month, byte day, byte hour, byte min, byte sec, uint fsec, string timezone) { // Get size of buffer ulong rsize = 0; UIntPtr rsizep = new UIntPtr(rsize); int status = OciCalls.OCIUnicodeToCharSet(handle, null, timezone, ref rsizep); // Fill buffer rsize = rsizep.ToUInt64(); byte[] bytes = new byte[rsize]; if (status == 0 && rsize > 0) { OciCalls.OCIUnicodeToCharSet(handle, bytes, timezone, ref rsizep); } if (fsec > 0) { fsec = fsec * 1000000; } uint timezoneSize = (uint)bytes.Length; OciCalls.OCIDateTimeConstruct(handle, errorHandle, this.Handle, year, month, day, hour, min, sec, fsec, bytes, timezoneSize); //uint valid = 0; //int result = OciCalls.OCIDateTimeCheck (handle, // errorHandle, this.Handle, out valid); }