ใช้ Function Search Replace แล้วค้นหาตัวอักษร ^p ต่อ Enter จบรรทัด หนึ่งตัว
ถ้าติดกันสองตัว หรือ Enter สองครั้ง ก็ใช้ ^p^p
วันศุกร์ที่ 14 กันยายน พ.ศ. 2561
วันพุธที่ 12 กันยายน พ.ศ. 2561
ปัญหาไม่สามารถใช้คำสั่ง User.IsInRole ใน .Net Core 2.1 ได้
เป็นปัญหาจากการ Design ของ .Net Core เอง ดูได้จาก คู่มือของ Microsoft ดังนี้
ซึ่งเกิดจากการใช้ AddDefaultIdentity ใน ASP.NET Core 2.1 แต่ ฟังก์ชั่นนี่จะได้รับการแก้ไขใน ASP.NET Core 2.2 ซึ่่งขณะนี้ยังเป็นสถานะ preview อยู่
แต่ก็มี work around โดยการกลับมาใช้ function เดิม คือ การกลับมาใช้ services.AddIdentity<ApplicationUser, IdentityRole>() แบบเดิม
ดังภาพ
แต่การกลับมาทำแบบนี้ จะทำให้มีปัญหาเกิดขึ้นอีกอย่าง คือ การ redirect และ การส่งอีเมล์จากฟังก์ชั่นยืนยันตนสองขั้นตอน จาก function ของ AddDefaultIdentity เนื่องจากหายไป เพราะการใช้ AddIdentity
ทำให้ต้องมีการ config เพิ่มในสองส่วนนี้ (สาม ถ้าต้องส่ง SMS ด้วย)
อย่างแรก แก้ปัญหาการ redirect ผิดหน้า เนื่องจาก AddIdentity เดิม จะอ้าง Controller เดิม ซึ่งไม่มี Area ทำให้หาไม่พบ เนื่องจาก .Net Core 2.1 ได้มีการเพิ่ม Area สำหรับ Function Identity เพิ่มเข้ามาแทน
ตัวอย่างเช่น Function ConfigureServices ใน StartUp.cs
เราจะใช้ Function services.ConfigureApplicationCookie ในการดำเนินการ ดังตัวอย่าง
เท่านี้ การ Redirect เมื่อยังไม่เข้าระบบหรือถูกปฏิเสธิสิทธิ์การเข้าถึงก็จะใช้งานได้ ต่อไป การจัดการเกี่ยวกับการส่งอีเมล เนื่องจาก ถ้าคลิกเข้าหน้า Manage หรือ หน้าที่มีการ injection IEmailSender จะ Error เนื่องจากไม่ได้ตั้งค่าไว้ ก็ให้สร้าง class ใหม่ สืบทอดจาก IEmailSender
แล้วก็ไปเพิ่ม option ในส่วนของ services ว่า
services.AddTransient<IEmailSender, EmailSender>();
ก่อนเรียก mvc จะได้ประมาณนี้ครับ
เท่านี้ ก็น่าจะใช้ได้แล้ว สำหรับการใช้ User.IsInRole หรือการจัดการ Role ใน Controller ต่าง ๆ
ซึ่งเกิดจากการใช้ AddDefaultIdentity ใน ASP.NET Core 2.1 แต่ ฟังก์ชั่นนี่จะได้รับการแก้ไขใน ASP.NET Core 2.2 ซึ่่งขณะนี้ยังเป็นสถานะ preview อยู่
แต่ก็มี work around โดยการกลับมาใช้ function เดิม คือ การกลับมาใช้ services.AddIdentity<ApplicationUser, IdentityRole>() แบบเดิม
ดังภาพ
แต่การกลับมาทำแบบนี้ จะทำให้มีปัญหาเกิดขึ้นอีกอย่าง คือ การ redirect และ การส่งอีเมล์จากฟังก์ชั่นยืนยันตนสองขั้นตอน จาก function ของ AddDefaultIdentity เนื่องจากหายไป เพราะการใช้ AddIdentity
ทำให้ต้องมีการ config เพิ่มในสองส่วนนี้ (สาม ถ้าต้องส่ง SMS ด้วย)
อย่างแรก แก้ปัญหาการ redirect ผิดหน้า เนื่องจาก AddIdentity เดิม จะอ้าง Controller เดิม ซึ่งไม่มี Area ทำให้หาไม่พบ เนื่องจาก .Net Core 2.1 ได้มีการเพิ่ม Area สำหรับ Function Identity เพิ่มเข้ามาแทน
ตัวอย่างเช่น Function ConfigureServices ใน StartUp.cs
เราจะใช้ Function services.ConfigureApplicationCookie ในการดำเนินการ ดังตัวอย่าง
services.ConfigureApplicationCookie(options =>
{
// Cookie settings
options.Cookie.HttpOnly = true;
options.ExpireTimeSpan = TimeSpan.FromMinutes(5);
options.LoginPath = "/Identity/Account/Login";
options.AccessDeniedPath = "/Identity/Account/AccessDenied";
options.SlidingExpiration = true;
});
เท่านี้ การ Redirect เมื่อยังไม่เข้าระบบหรือถูกปฏิเสธิสิทธิ์การเข้าถึงก็จะใช้งานได้ ต่อไป การจัดการเกี่ยวกับการส่งอีเมล เนื่องจาก ถ้าคลิกเข้าหน้า Manage หรือ หน้าที่มีการ injection IEmailSender จะ Error เนื่องจากไม่ได้ตั้งค่าไว้ ก็ให้สร้าง class ใหม่ สืบทอดจาก IEmailSender
public class EmailSender : IEmailSender
{
public EmailSender()
{
}
public Task SendEmailAsync(string email, string subject, string message)
{
return Execute("", subject, message, email);
}
public Task Execute(string apiKey, string subject, string message, string email)
{
SmtpClient client = new SmtpClient("mysmtpserver");
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential("username", "password");
MailMessage mailMessage = new MailMessage();
mailMessage.From = new MailAddress("whoever@me.com");
mailMessage.To.Add("receiver@me.com");
mailMessage.Body = "body";
mailMessage.Subject = "subject";
return client.SendMailAsync(mailMessage);
}
}
แล้วก็ไปเพิ่ม option ในส่วนของ services ว่า
services.AddTransient<IEmailSender, EmailSender>();
ก่อนเรียก mvc จะได้ประมาณนี้ครับ
เท่านี้ ก็น่าจะใช้ได้แล้ว สำหรับการใช้ User.IsInRole หรือการจัดการ Role ใน Controller ต่าง ๆ
วันพุธที่ 2 พฤษภาคม พ.ศ. 2561
ปัญหาไม่สามารถลบ (Remove) Keyboard Layout ใน Windows 10 Build 17134 ได้
ปกติ ผมจะใช้อยู่สองภาษา คือ English (US) กับ Thai แต่พอ Update ทีไร จะได้ English (UK) ติดมาด้วยทุกที ซึ่งปกติ ก็ลบออกได้นะ แต่รอบนี้ลบออกไม่ได้ เนื่องจากปุ่ม Remove มีลักษณะเป็นสีเทา (Gray) ทำให้กดไม่ได้
ซึ่งเคยทำให้เหลือแค่ English (UK) กับ Thai ได้ แต่มีปัญหาอีกว่า เวลาใช้พวก Single quote หรือ Double quote ตัว English (UK) มันจะแปลก ๆ คือมันจะไม่ Display ขึ้นมาทันที ต้องกดอีกที ถึงจะเห็น ก็ค่อนข้างจะสร้างความรำคาญมากกว่าความสะดวก เลยต้องพยายามเอาภาษาหรือ Layout นี้ออกไป
เอาละพูดถึงการย้อนเวอร์ชั่นก่อน
ซึ่งจะอยู่ในหัวข้อ Recovery (ใช้ Search หาเอาได้ครับ หลังจากอัพเดท หากมีปัญหานี้)
โดยเราจะใช้หัวข้อ Go back to the previous version of Windows 10 เพื่อทำการย้อนเวอร์ชั่น
หลังจากนั้น เราจะใช้ language ทำการ Remove ทุกภาษาที่ไม่ใช้ออกไป แล้วทำการตรวจสอบภาษาด้วยคำสั่งดังนี้
เปิด Command Prompt ด้วยสิทธิ์ ของ Administrator และใช้คำสั่ง
dism /online /get-intl
ซึ่งสาระสำคัญ จะอยู่ที่ Default system UI Language และ Language Packs
ซึ่งเดิม OS ผมจะใช้ en-GB เป็น Default system UI language ทำให้การอัพเดททุกครั้ง จะได้ภาษาและ Keyboard Layout English (UK) ติดมาเสมอเลย
แต่ทั้งนี้ เราสามารถเปลี่ยน Default system UI language ได้ครับ เพียงแต่ จะต้องลง Language Pack เอาไว้ก่อนด้วย ถึงจะเปลี่ยนได้ เพราะมีผลกระทบกับ Display language ซึ่งหลังจากที่ผมพยายามจะติดตั้ง Language pack ก็ไม่สามารถทำได้ จะขึ้นข้อความ A language pack isn't available ตลอดเลย
แต่ใน build 16299 - 1709 นั้นสามารถโหลด language pack เพื่อมาติดตั้งได้เอง ที่นี่
English (US) 64 bit
Thai 64 bit
ทั้งนี้ ใครที่ต้องการภาษาอื่น ก็ไปที่ https://www.itechtics.com/windows-10-version-1709-language-packs-direct-download-links ได้เลยครับ มีให้โหลดครบเลย ทั้ง 32bit และ 64bit
ตัวไฟล์ที่ได้มาจะเป็น cab files ซึ่งสามารถติดตั้งด้วยคำสั่ง lpksetup ใน Command prompt ครับ
พอติดตั้งเสร็จแล้ว จะได้ Display language มาด้วย ก็ให้เราปรับปรุงระบบของเราให้เหลือแต่ภาษาที่จะใช้ครับ โดยเช็คได้จาก Copy settings ครับ ดังภาพ
ซึ่งจะต้องเหลือแค่ภาษาที่เราใช้จริง ๆ หลังจากตั้งค่าเรียบร้อยแล้ว ก็ทำการเปลี่ยน Default system language ด้วย Regedit กันครับ
โดยพุ่งเป้าไปที่
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Nls\Language
โดยให้มองหาค่า Default และ InstallLanguage ครับ
ซึ่งอ้างอิงจาก โพสต์ที่แล้ว ค่า 0809 จะเป็นค่า English - UK ครับ ก็ทำการเปลี่ยนค่า Default ให้เป็น 0409 ซึ่งเป็นของ English - US แล้ว Restart เครื่องครับ
เท่านี้ ก็เรียบร้อยสำหรับการเตรียมพร้อมเครื่องเพื่อการอัพเดท โดยไม่มี Keyboard Layout อื่นมากวนใจแล้วครับ
ทังนี้ทั้งนั้นต้องขอบคุณต้นทาง ที่ทำให้ผมหาทางแก้ไขปัญหานี้ได้สำเร็จ คือที่
https://www.tenforums.com/tutorials/30656-see-default-system-language-windows-10-a.html
ครับ
ซึ่งเคยทำให้เหลือแค่ English (UK) กับ Thai ได้ แต่มีปัญหาอีกว่า เวลาใช้พวก Single quote หรือ Double quote ตัว English (UK) มันจะแปลก ๆ คือมันจะไม่ Display ขึ้นมาทันที ต้องกดอีกที ถึงจะเห็น ก็ค่อนข้างจะสร้างความรำคาญมากกว่าความสะดวก เลยต้องพยายามเอาภาษาหรือ Layout นี้ออกไป
เอาละพูดถึงการย้อนเวอร์ชั่นก่อน
ซึ่งจะอยู่ในหัวข้อ Recovery (ใช้ Search หาเอาได้ครับ หลังจากอัพเดท หากมีปัญหานี้)
โดยเราจะใช้หัวข้อ Go back to the previous version of Windows 10 เพื่อทำการย้อนเวอร์ชั่น
เปิด Command Prompt ด้วยสิทธิ์ ของ Administrator และใช้คำสั่ง
dism /online /get-intl
ซึ่งสาระสำคัญ จะอยู่ที่ Default system UI Language และ Language Packs
ซึ่งเดิม OS ผมจะใช้ en-GB เป็น Default system UI language ทำให้การอัพเดททุกครั้ง จะได้ภาษาและ Keyboard Layout English (UK) ติดมาเสมอเลย
แต่ทั้งนี้ เราสามารถเปลี่ยน Default system UI language ได้ครับ เพียงแต่ จะต้องลง Language Pack เอาไว้ก่อนด้วย ถึงจะเปลี่ยนได้ เพราะมีผลกระทบกับ Display language ซึ่งหลังจากที่ผมพยายามจะติดตั้ง Language pack ก็ไม่สามารถทำได้ จะขึ้นข้อความ A language pack isn't available ตลอดเลย
แต่ใน build 16299 - 1709 นั้นสามารถโหลด language pack เพื่อมาติดตั้งได้เอง ที่นี่
English (US) 64 bit
Thai 64 bit
ทั้งนี้ ใครที่ต้องการภาษาอื่น ก็ไปที่ https://www.itechtics.com/windows-10-version-1709-language-packs-direct-download-links ได้เลยครับ มีให้โหลดครบเลย ทั้ง 32bit และ 64bit
ตัวไฟล์ที่ได้มาจะเป็น cab files ซึ่งสามารถติดตั้งด้วยคำสั่ง lpksetup ใน Command prompt ครับ
พอติดตั้งเสร็จแล้ว จะได้ Display language มาด้วย ก็ให้เราปรับปรุงระบบของเราให้เหลือแต่ภาษาที่จะใช้ครับ โดยเช็คได้จาก Copy settings ครับ ดังภาพ
ซึ่งจะต้องเหลือแค่ภาษาที่เราใช้จริง ๆ หลังจากตั้งค่าเรียบร้อยแล้ว ก็ทำการเปลี่ยน Default system language ด้วย Regedit กันครับ
โดยพุ่งเป้าไปที่
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Nls\Language
โดยให้มองหาค่า Default และ InstallLanguage ครับ
ซึ่งอ้างอิงจาก โพสต์ที่แล้ว ค่า 0809 จะเป็นค่า English - UK ครับ ก็ทำการเปลี่ยนค่า Default ให้เป็น 0409 ซึ่งเป็นของ English - US แล้ว Restart เครื่องครับ
เท่านี้ ก็เรียบร้อยสำหรับการเตรียมพร้อมเครื่องเพื่อการอัพเดท โดยไม่มี Keyboard Layout อื่นมากวนใจแล้วครับ
ทังนี้ทั้งนั้นต้องขอบคุณต้นทาง ที่ทำให้ผมหาทางแก้ไขปัญหานี้ได้สำเร็จ คือที่
https://www.tenforums.com/tutorials/30656-see-default-system-language-windows-10-a.html
ครับ
วันพุธที่ 3 มกราคม พ.ศ. 2561
การใช้งาน NLog ใน Core 2.0
1. ใช้ NuGet ลง "NLog.Web.AspNetCore" Version 4.5.x ขึ้นไป (ในตอนนี้ยังเป็นตัว Prerelease อยู่)
2. สร้างไฟล์ "nlog.config" ใน Root folder project.
แล้วใส่ข้อมูลตามนี้
<?xml version="1.0" encoding="utf-8"?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
autoReload="true"
internalLogLevel="info"
internalLogFile="c:\temp\internal-nlog.txt">
<!-- the targets to write to -->
<targets>
<!-- write logs to file -->
<target xsi:type="File" name="allfile" fileName="c:\temp\nlog-all-${shortdate}.log"
layout="${longdate}|${event-properties:item=EventId.Id}|${uppercase:${level}}|${logger}|${message} ${exception}" />
<!-- another file log, only own logs. Uses some ASP.NET core renderers -->
<target xsi:type="File" name="ownFile-web" fileName="c:\temp\nlog-own-${shortdate}.log"
layout="${longdate}|${event-properties:item=EventId.Id}|${uppercase:${level}}|${logger}|${message} ${exception}|url: ${aspnet-request-url}|action: ${aspnet-mvc-action}" />
<!-- write to the void aka just remove -->
<target xsi:type="Null" name="blackhole" />
</targets>
<!-- rules to map from logger name to target -->
<rules>
<!--All logs, including from Microsoft-->
<logger name="*" minlevel="Trace" writeTo="allfile" />
<!--Skip Microsoft logs and so log only own logs-->
<logger name="Microsoft.*" minlevel="Trace" writeTo="blackhole" final="true" />
<logger name="*" minlevel="Trace" writeTo="ownFile-web" />
</rules>
</nlog>
3. แก้ไข Program.cs ใน Root ในส่วนของ BuildWebHost โดยเพิ่ม UseNLog() เข้าไป
เป็น
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseNLog() // NLog: setup NLog for Dependency injection
.Build();
โดยใช้ using NLog.Web;
4. สำหรับการใช้งานใน Controller ก็ทำ injection โดยใช้รูปแบบ ดัง Code ต่อไปนี้
using Microsoft.Extensions.Logging;
namespace xxxHome.Controllers
{
public class HomeController : Controller
{
private readonly ILogger<HomeController> _logger;
public HomeController(ILogger<HomeController> logger)
{
_logger = logger;
}
public IActionResult Index()
{
_logger.LogInformation("Index page says hello");
return View();
}
}
}
ref :// https://github.com/NLog/NLog.Web/wiki/Getting-started-with-ASP.NET-Core-2
2. สร้างไฟล์ "nlog.config" ใน Root folder project.
แล้วใส่ข้อมูลตามนี้
<?xml version="1.0" encoding="utf-8"?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
autoReload="true"
internalLogLevel="info"
internalLogFile="c:\temp\internal-nlog.txt">
<!-- the targets to write to -->
<targets>
<!-- write logs to file -->
<target xsi:type="File" name="allfile" fileName="c:\temp\nlog-all-${shortdate}.log"
layout="${longdate}|${event-properties:item=EventId.Id}|${uppercase:${level}}|${logger}|${message} ${exception}" />
<!-- another file log, only own logs. Uses some ASP.NET core renderers -->
<target xsi:type="File" name="ownFile-web" fileName="c:\temp\nlog-own-${shortdate}.log"
layout="${longdate}|${event-properties:item=EventId.Id}|${uppercase:${level}}|${logger}|${message} ${exception}|url: ${aspnet-request-url}|action: ${aspnet-mvc-action}" />
<!-- write to the void aka just remove -->
<target xsi:type="Null" name="blackhole" />
</targets>
<!-- rules to map from logger name to target -->
<rules>
<!--All logs, including from Microsoft-->
<logger name="*" minlevel="Trace" writeTo="allfile" />
<!--Skip Microsoft logs and so log only own logs-->
<logger name="Microsoft.*" minlevel="Trace" writeTo="blackhole" final="true" />
<logger name="*" minlevel="Trace" writeTo="ownFile-web" />
</rules>
</nlog>
3. แก้ไข Program.cs ใน Root ในส่วนของ BuildWebHost โดยเพิ่ม UseNLog() เข้าไป
เป็น
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseNLog() // NLog: setup NLog for Dependency injection
.Build();
โดยใช้ using NLog.Web;
4. สำหรับการใช้งานใน Controller ก็ทำ injection โดยใช้รูปแบบ ดัง Code ต่อไปนี้
using Microsoft.Extensions.Logging;
namespace xxxHome.Controllers
{
public class HomeController : Controller
{
private readonly ILogger<HomeController> _logger;
public HomeController(ILogger<HomeController> logger)
{
_logger = logger;
}
public IActionResult Index()
{
_logger.LogInformation("Index page says hello");
return View();
}
}
}
ref :// https://github.com/NLog/NLog.Web/wiki/Getting-started-with-ASP.NET-Core-2
วันพุธที่ 27 ธันวาคม พ.ศ. 2560
ปัญหาลบ Keyboard Layout แล้วไม่ยอมหายไป
เรื่องมีอยู่ว่า ผมใช้คีย์บอร์ด Eng (us) และ Thai แต่หลังจากอัพเดทที่ผ่านมา จะมี Keyboard Layout ที่สามโผล่มา คือ Eng (Uk) ซึ่ง Layout มันใช่แบบที่ใช้ปกติ ทำงานยากมาก ลบออกก็ไม่ได้ ไม่มีใน Setting แล้ว แรก ๆ ทำการลบคือ ไปเพิ่มเข้ามา แล้วลบออก มันก็จะออกไป แต่ปิดเครื่องเปิดมา ก็กลับมาอีก ลองดูวิธีนี้นะ
ใช้ regedit มาเช็คที่ Computer\HKEY_USERS\.DEFAULT\Keyboard Layout\Preload
จะพบว่า มีข้อมูลอยู่สามแถว (ไม่นับ Default) โดยจะพบรหัสคีย์บอร์ดดังนี้
409 - us
809 - uk
41e - th
ก็ลบที่ไม่ต้องการออก ในที่นี้คือ uk อย่าลบผิดนะ การแก้ไข registry ควรทำอย่างรอบคอบมาก ๆ
ได้ข้อมูลมาจากกระทู้ถามตอบจาก Website นี้
https://answers.microsoft.com/en-us/windows/forum/windows_10-start-winpc/cant-remove-a-keyboard-layout-in-windows-10/058acf33-16d9-47f4-a24b-245b8823d90e
ซึ่งจะมีวิธีป้องกันการแก้ไขข้อมูล Layout Keyboard ด้วยครับ
หลังจาก Update มาเป็น Version Build 17134 ปัญหานี้ ก็กลับมาอีกครั้ง แถมรุนแรงกว่าเก่าตรงลบออกไม่ได้ด้วย ส่วนวิธีแก้ ผมเตรียมเอาไว้แล้วครับ ซึ่งเบื้องต้นคือ ต้องย้อนเวอร์ชั่นกลับไปก่อน เพื่อทำการ Remove ภาษาที่ไม่ใช่ออก ให้เหลือเพียงสองภาษาหลักที่ใช้ ก่อนทำการอัพเดทครับ ที่โพสต์นี้
ใช้ regedit มาเช็คที่ Computer\HKEY_USERS\.DEFAULT\Keyboard Layout\Preload
จะพบว่า มีข้อมูลอยู่สามแถว (ไม่นับ Default) โดยจะพบรหัสคีย์บอร์ดดังนี้
409 - us
809 - uk
41e - th
ก็ลบที่ไม่ต้องการออก ในที่นี้คือ uk อย่าลบผิดนะ การแก้ไข registry ควรทำอย่างรอบคอบมาก ๆ
ได้ข้อมูลมาจากกระทู้ถามตอบจาก Website นี้
https://answers.microsoft.com/en-us/windows/forum/windows_10-start-winpc/cant-remove-a-keyboard-layout-in-windows-10/058acf33-16d9-47f4-a24b-245b8823d90e
ซึ่งจะมีวิธีป้องกันการแก้ไขข้อมูล Layout Keyboard ด้วยครับ
หลังจาก Update มาเป็น Version Build 17134 ปัญหานี้ ก็กลับมาอีกครั้ง แถมรุนแรงกว่าเก่าตรงลบออกไม่ได้ด้วย ส่วนวิธีแก้ ผมเตรียมเอาไว้แล้วครับ ซึ่งเบื้องต้นคือ ต้องย้อนเวอร์ชั่นกลับไปก่อน เพื่อทำการ Remove ภาษาที่ไม่ใช่ออก ให้เหลือเพียงสองภาษาหลักที่ใช้ ก่อนทำการอัพเดทครับ ที่โพสต์นี้
วันพุธที่ 25 ตุลาคม พ.ศ. 2560
การ Select แบบจับคู่ โดยยกเว้นตัวเอง
เช่น ข้อมูล มี A, B, C
ต้องการจับคู่โดยยกเว้นตัวเอง
select t1.txt, t2.txt
from test as t1
join test t2 on t2.txt > t1.txt
ต้องการจับคู่โดยยกเว้นตัวเอง
select t1.txt, t2.txt
from test as t1
join test t2 on t2.txt > t1.txt
วันพุธที่ 13 กันยายน พ.ศ. 2560
Oracle Manage DB
เครื่องหมาย ไม่เท่ากับ
<>
!=
^=
character set
memory
user admin
sys
system
dbsnmp
sysman
ตั้ง Memory และ Character set
Choose from the list of character sets :
TH8TISASCII - Thai Industrial Standard 620-2533-ASCII
Username : sys
password : xxx
Connection Type Basic Role SYSDBA
Hostname : localhost
Port : 1521
SID : xxxdb
ex.
login by sys in sqlDeveloper
grant read, write on directory data_pump_dir to [hr];
// set for use with DB
set ORACLE_SID=xxxx
// and use
expdp hr/hr directory=data_pump_dir
// In New DB by sys do this
grant connect, resource to [newuser] identified by [newuserpwd];
grant read,write on directory data_pump_dir2 to [newuser];
set ORACLE_SID=[newDB]
ใช้ DBA Tools สร้าง Tablespaces
Name:
FILE_SPECIFICATION1 NAME:"EXAMPLE01.DBF"
File Size: 100
checkAuto Extend On
impdp [newuser]/[newuserpwd] directory_pump_dir2 remap_schema=[olduser]:[newuser]
// give dba to user
grant dba to hr;
select * from v$session
--auto backup--
create bat file for windows
set oracle_sid=orcl
expdp hr/hr directory=data_pump_dir dumpfile=exp_file_%date:~10,4%_%date:~7,2%_%date:~4,2%.dmp logfile=exp_file_%date:~10,4%_%date:~7,2%_%date:~4,2%.log reuse_dumpfiles=y
-- for test import or check whatever in dmp file --
impdp hr/hr directory=data_pump_dir dumpfile=EXPDATE.DMP SQLFILE=sql.txt
<>
!=
^=
character set
memory
user admin
sys
system
dbsnmp
sysman
ตั้ง Memory และ Character set
Choose from the list of character sets :
TH8TISASCII - Thai Industrial Standard 620-2533-ASCII
Username : sys
password : xxx
Connection Type Basic Role SYSDBA
Hostname : localhost
Port : 1521
SID : xxxdb
ex.
login by sys in sqlDeveloper
grant read, write on directory data_pump_dir to [hr];
// set for use with DB
set ORACLE_SID=xxxx
// and use
expdp hr/hr directory=data_pump_dir
// In New DB by sys do this
grant connect, resource to [newuser] identified by [newuserpwd];
grant read,write on directory data_pump_dir2 to [newuser];
set ORACLE_SID=[newDB]
ใช้ DBA Tools สร้าง Tablespaces
Name:
FILE_SPECIFICATION1 NAME:"EXAMPLE01.DBF"
File Size: 100
checkAuto Extend On
impdp [newuser]/[newuserpwd] directory_pump_dir2 remap_schema=[olduser]:[newuser]
// give dba to user
grant dba to hr;
select * from v$session
--auto backup--
create bat file for windows
set oracle_sid=orcl
expdp hr/hr directory=data_pump_dir dumpfile=exp_file_%date:~10,4%_%date:~7,2%_%date:~4,2%.dmp logfile=exp_file_%date:~10,4%_%date:~7,2%_%date:~4,2%.log reuse_dumpfiles=y
-- for test import or check whatever in dmp file --
impdp hr/hr directory=data_pump_dir dumpfile=EXPDATE.DMP SQLFILE=sql.txt
สมัครสมาชิก:
บทความ (Atom)












