我想更改oracle表中列的数据类型(varchar2到number),并且该列不为空.所以我想我会做的是,创建一个新列,将数据从一列复制到另一列.禁用/删除上一列并重命名新列.
要在相同列之间复制数据,我可以使用:
UPDATE TABLE_NAME SET NEW_COLUMN = TO_NUMBER(OLD_COLUMN);
Run Code Online (Sandbox Code Playgroud)
但是在做这个之前我想要确认的是,我是否需要指定哪一行的数据在哪里?或者它将被复制到列中的相邻行?我的意思是,我是否需要做以下事情:
UPDATE (SELECT TO_NUMBER(OLD_COLUMN) AS OLDISH, NEW_COLUMN AS NEWISH FROM TABLE_NAME A, TABLE_NAME B WHERE A.ID = B.ID) SET NEWISH = OLDISH;
Run Code Online (Sandbox Code Playgroud) 正则表达对我来说一直是火箭科学.任何人都可以告诉我如何编写preg_replace将2013-12-12 12-00-00转换为2013-12-12 12:00:00.我试过用
preg_replace("/-(?=\s)/", ":", $string)
Run Code Online (Sandbox Code Playgroud)
而且我知道它不正确,因为它没有提供所需的输出.
我是 Golang 新手。
当我尝试它时,出现编译错误:
cannot use a.B (type []*C) as type []Z in field value
Run Code Online (Sandbox Code Playgroud)
代码:
package main
type A struct {
B []*C
}
type C struct {
char string
}
type X struct {
Y []Z
}
type Z struct {
char string
}
func doSomething(r interface{}) X {
a := r.(*A)
return X{
Y: a.B, // cannot use a.B (type []*C) as type []Z in field value
}
}
func main() {
something := &C{"abc"}
somewhere := …Run Code Online (Sandbox Code Playgroud) 我是golang的新手,我正在尝试创建map [string] interface {}类型的地图.
但是当我尝试创建一个不存在的新密钥时,我得到一个运行时错误"恐慌:分配到nil map中的条目".任何人都可以告诉我,我做错了吗?
去PlayGround:https://play.golang.org/p/vIEE0T11yl
这是我的代码:
package main
func main() {
buffer := Buffer{}
buffer.AddRecord("myKey", 12345)
}
type Buffer struct {
records map[string][]interface{}
}
// ProcessRecord adds a message to the buffer.
func (buffer *Buffer) AddRecord(key string, record interface{}) {
_, ok := buffer.records[key]
if !ok {
buffer.records[key] = make([]interface{}, 0)
}
buffer.records[key] = append(buffer.records[key], record)
}
Run Code Online (Sandbox Code Playgroud)