如下原始数据在oracle的table a中,如何通过换行隔开的name值查询age和address,然后再insert到mysql的table b中?
```php
//oracle中查询table a
$name= $_POST['name']; //前端传来的多个name值,是用换行隔开的数据,如何批量查询?
require './connect_oracle.php';
$sql ="SELECT * from (select name,age, address,to_char(input_time,'YYYY-MM-DD HH:MM:SS')as newtime from table a where name in ($name)";
//insert到mysql table b
require './connect_mysql.php';
$sql ="insert into table b (name,age,address,newtime) values (????)";
?>
```
该回答通过自己思路及引用到各个渠道搜索,得到内容具体如下:
可以使用Oracle中的REGEXP_SUBSTR函数将换行隔开的name值拆分为多个值,然后使用IN子句进行批量查询,最后将查询结果插入到MySQL的table b中。
<?php
// 从前端接收多个name值,并用换行隔开
$name = $_POST['name'];
// 将name值用逗号分隔,组成SQL语句中的IN子句
$name_clause = "'" . str_replace("\n", "','", $name) . "'";
// 在Oracle中查询数据
require './connect_oracle.php';
$sql = "SELECT name, age, address, TO_CHAR(input_time, 'YYYY-MM-DD HH:MM:SS') AS newtime FROM table_a WHERE name IN ($name_clause)";
$result = oci_parse($conn, $sql);
oci_execute($result);
// 将查询结果插入到MySQL的table b中
require './connect_mysql.php';
while ($row = oci_fetch_assoc($result)) {
$name = $row['NAME'];
$age = $row['AGE'];
$address = $row['ADDRESS'];
$newtime = $row['NEWTIME'];
$sql = "INSERT INTO table_b (name, age, address, newtime) VALUES ('$name', $age, '$address', '$newtime')";
mysqli_query($conn, $sql);
}
?>
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢